비밀번호 입력 두 번은 MFA가 아니다: VPN 로그인이 검증하는 것
두 번째 비밀번호 필드, 강한 암호, 기기 인증서는 각각 무언가를 증명한다. 하나의 계정에 묶인 서로 다른 요소만 다중 요소로 계산된다.
로그인 페이지가 비밀번호를 묻고 이어서 두 번째 비밀을 묻자, 그 배포는 곧바로 다중 요소라고 설명된다. 실제로 그럴 때도 있다. 그러나 흔히 그것은 두 값 모두 같은 사람이 같은 기억이나 같은 메모에서 입력한 지식이기에 같은 요소를 두 번 수집한 것이다. 강한 터널 암호도, 제품 이름에 들어간 „보안“이라는 단어도 이 점을 바꾸지 않는다.
주장과 메커니즘을 분리하려면 각 단계가 무엇을, 누구에게 증명하는지 묻는 질문 하나면 된다.
요소는 증명이지 입력란이 아니다
다중 요소 인증은 같은 계정에 대해 한 가지가 아닌 서로 다른 종류의 증명, 곧 사용자가 아는 것과 가지고 있는 것, 그 자체인 것이 검증된다는 뜻이다. 기억한 문자열을 수집하는 입력란이 둘이라면 그것은 같은 종류의 증명을 두 번 요구한 것이다. 독립적인 비밀 두 개는 하나보다 추측하기 어려우므로 유용한 통제일 수는 있지만, 용어가 가리키는 것은 아니며 위험 평가에서 그렇게 계산해서는 안 된다.
검증하는 쪽은 수집하는 쪽만큼 중요하다. 기기에서 생성된 코드가 그 기기에 대한 통제를 증명하려면, 서버가 이 계정에 묶인 비밀과 대조하고 재사용을 거부해야 한다. 모든 사람에게 통하는 공유 코드, 횟수 제한이 없는 코드, 무엇을 승인하는지 보여 주지 않는 기기에서 승인하는 프롬프트는 모두 라벨이 시사하는 것보다 약하다.
그러므로 VPN에 MFA가 있는지 묻는다면, 두 번째 단계가 무엇을 증명하고 서버가 그것을 어떻게 묶는지 물어야 한다. 답이 „같은 디렉터리의 두 번째 비밀번호“라면 요소는 하나이고 정책에 관한 대화가 되는 것이지, 두 번째 요소가 아니다.
인증서의 경우는 추정하지 말고 읽어야 한다
클라이언트 인증서와 비밀번호의 조합은 인증서가 저장소나 토큰에 보관되고 비밀번호가 기억된다는 점에서 두 요소처럼 보이고 실제로 그럴 수 있다. 그러나 인증서 파일이 저장된 비밀번호와 같은 프로필 디렉터리에 보호 없이 놓여 있거나, 여러 사람이 개인 책임 없이 공유하는 기기에 인증서가 발급되었다면 하나의 요소일 뿐이다.
정해야 할 것은 그 인증서가 누구를, 또는 무엇을 식별하는가이다. 기기 인증서는 관리되는 기기가 있음을 증명한다. 사용자 인증서는 신원을 증명한다. 노트북마다 인증서 하나를 발급하고 그 존재를 사람의 증명으로 취급한다면, 두 번째 요소는 조용히 노트북을 가진 누구나 물려받는 하드웨어 속성이 되어 버린다.
그렇다고 인증서가 나쁜 생각이 되는 것은 아니다. 기기 보증과 사용자 보증을 구분해 적어 둘 가치가 있다는 뜻이며, 둘은 다른 질문에 답하므로 이 둘을 하나로 세는 준수 표는 보호되는 범위를 과대평가한다.
게이트웨이에 대한 신뢰와 사용자에 대한 신뢰는 별개의 문제다
두 번째 요소가 있어도 검증하지 않은 종단점에 자격 증명을 입력하는 것이 안전해지지는 않는다. 클라이언트는 의도한 게이트웨이를 인식해야 하며, 서버 인증서와 클라이언트의 신뢰 구성이 그 역할을 한다. 피싱은 로그인을 공격자가 통제하는 서버로 옮기는 방식으로 작동하며, 거기 입력된 올바른 일회용 코드는 실시간으로 그대로 실제 서비스에 전달된다.
그래서 결과를 바꾸는 것은 프롬프트의 문구보다 방식의 선택이다. 사람이 입력하는 코드는 설득력 있는 페이지를 보여 줄 수 있는 누구나 전달할 수 있다. 반면 인증을 특정 오리진과 세션에 묶는 암호 방식은 설계상 그 전달을 견디며, 어느 쪽인지는 방식의 성질이지 대화상자의 단계 수가 아니다.
비밀번호 필드에 군더더기 프롬프트를 덧붙이는 대신 공급자가 지원하는 등록과 클라이언트 흐름을 따르라. 직접 만든 두 번째 단계는 대개 중간 어딘가에 머물며, 요소를 의미 있게 만드는 결속 없이 마찰만 더한다.
복구는 두 번째 정문이다
강한 로그인에는 인증 수단을 잃었을 때 돌아오는 길이 있고, 바로 그 길이 설계에서 가장 약한 지점이 되기 쉽다. 지원 담당자가 등록된 번호로 전화를 받은 뒤 두 번째 요소를 초기화할 수 있다면, 공격자에게 가장 싼 경로는 로그인 페이지가 아니라 헬프데스크다.
교체가 어떻게 작동하고, 누가 승인하며, 어떤 증거를 요구하는지 물어라. 그다음 백업 코드 같은 복구 자료가 한 번의 침해로 둘 다 넘어가지 않도록 기본 자격 증명과 분리되어 보관되는지 확인하라. NIST의 디지털 아이덴티티 지침은 검증자 결속과 인증 수단의 수명 주기를 요구 사항의 일부로 다루며, 운영상의 나중 생각으로 보지 않는다.
평가에 무엇을 쓸 것인가
요소를 종류별로 기술하고, 각각이 무엇을 증명하는지 밝히고, 계정에 어떻게 묶여 있는지 서술하라. 방식이 전달을 견디는지 적고, 복구 경로도 로그인만큼 세심하게 서술하라.
그런 다음 그 정의에 따라 다중 요소인지 분명히 말하라. „비밀번호 두 개와 기기 인증서 한 장“은 정직한 문장이며, „예“라고 답하는 체크박스보다 독자에게 훨씬 많은 것을 알려 준다.