비밀번호는 사라지지 않습니다
지난해에는 큰 기술 회사들이 비밀번호를 없애기 위해 힘을 모으고 있다는 소식을 보도하는 기사들이 인터넷에 돌았습니다. 일부 스타트업들은 비밀번호가 더 이상 유효하지 않고 구식이라고 선언하기도 했습니다.
지난해에는 큰 기술 회사들이 비밀번호를 없애기 위해 힘을 모으고 있다는 소식을 보도하는 기사들이 인터넷에 돌았습니다. 일부 스타트업들은 비밀번호가 더 이상 유효하지 않고 구식이라고 선언하기도 했습니다.
지난해에는 애플, 구글, 마이크로소프트가 비밀번호를 없애기 위해 힘을 모으고 있다고 주장하는 뉴스 기사들이 인터넷에 돌았습니다. 일부 스타트업들은 비밀번호가 더 이상 쓸모 없고 구식이라고 선언했습니다. 몇 개월 동안 신원 관리 분야에 몰두한 후, 이들 주장의 타당성과 실용성에 대해 의문을 가지게 되었습니다.
처음 보면 답은 명확해 보입니다: 비밀번호는 로그인하고 신원을 확인하는 데 사용됩니다. 그러나 비밀번호가 실제로 당신이 누구인지를 확인할 수 없다는 사실을 고려하면, 저는 다른 견해를 가지고 있습니다:
실제로, 비밀번호의 목적은 무언가의 소유권을 익명으로 증명하는 것입니다: 사용자 계정, 디바이스, 혹은 문에 대한 접근 권한.
앞서 언급한 회사들은 여러 가지 '비밀번호 킬러'를 제안했습니다. 많은 사람들은 사용자가 인증 과정에서 복잡하고 정적인 비밀번호를 기억할 필요가 없는 더 안전한 대안이라고 주장합니다. 그러나 이들 대체 방안의 대부분은 완전히 비밀번호를 없애는 데는 실질적으로 무리가 있습니다.
FIDO (Fast Identity Online) 인증은 공식 문서에서 설명하는 바와 같이, 등록과 로그인에 공개 키 암호화 기법을 사용합니다(WebAuthn은 FIDO2 명세의 핵심 컴포넌트입니다). 표면적으로 보면 과정이 매우 매력적으로 보입니다:
간단하죠? 불행히도, 경계가 있다: 호환성. '식별자와 비밀번호'의 전통적인 조합에 비해 FIDO 인증은 다음을 필요로 합니다:
이 요구 사항 중 하나라도 충족되지 않으면 FIDO 인증을 사용할 수 없게 되어, 다른 방법으로 대체 해야 합니다.
게다가, 모든 조건이 충족되더라도, 디바이스에서 '사용자 친화적인 검증 메커니즘'에 해당하는 것이 무엇일까요? 현재로서는 지문 인식이나 얼굴 인식 같은 생체 인식 방법이 있을 수 있으며, 이것이 PIN 코드 즉, 비밀번호로 대체되는 옵션을 동반하게 됩니다. 결국에는 원점으로 돌아오게 됩니다.
기술적으로 보면, 이것은 '비밀번호 킬러'가 아니라 비밀번호로 보호되는 보다 안전하고 사용자 친화적인 인증 또는 검증 과정입니다.
이름에 '비밀번호'라는 용어가 포함되어 있지만, 일회용 비밀번호 (OTPs)는 동적이기 때문에 전통적인 비밀번호가 아닙니다. 일반적으로 두 가지 유형의 OTPs가 있습니다:
TOTPs는 이름으로 잘 알려져 있지 않을 수 있습니다. 예를 들어, 웹사이트가 MFA를 설정하도록 요청하고 Google Authenticator나 Duo와 같은 앱을 사용하여 QR 코드를 스캔하라고 하면, 보통 TOTP를 사용하게 됩니다. 또한 웹사이트에서는 종종 긴 '복구 코드'를 표시하고, 이 코드는 한 번만 보여주므로 저장해 두어야 한다고 조언합니다. 일부 웹사이트에서는 사용자들이 이를 종이에 인쇄하도록 권장하기도 합니다. 본질적으로, 이 복구 코드는 긴 비밀번호와 같은 기능을 합니다.
SMS/이메일 OTP의 경우, 그것들은 비용이 많이 들며 신뢰할 수 없을 수 있습니다:
SMS 또는 이메일 발신기를 처음부터 구축하기 위해서는 설정이 필요합니다.
이메일 발신기는 발신 가능성을 향상시키기 위해 좋은 "리퓨테이션"을 확립해야 하며, 그렇지 않으면 발신기가 스팸으로 표시 될 수 있습니다.
각 국가마다 자신의 모바일 네트워크 운영자가 있어 SMS 전송 시간이 예측할 수 없고 특히 스타트업들에게는 비용이 많이 들 수 있습니다.
'생체 인식'이라는 용어는 온라인 인증에 생체 인식 방법만을 사용하는 것을 의미합니다. 실제로, 다른 방법들과 비교했을 때 근본적인 차이가 있습니다: 생체 인식 인증은 원래의 '무언가의 소유권을 증명하는' 작업을 '당신이 누구인지 증명하는' 것으로 전환합니다. 개인 정보 보호 문제 때문에, 생체 인식 방법들은 주로 로컬 인증에 사용됩니다.
우리가 볼 수 있듯이, '비밀번호 킬러'들은 본질적으로 비밀번호를 숨기거나 비밀번호를 대체 옵션으로 사용하고 있습니다. 이번 논의를 바탕으로 비밀번호의 장점을 요약해 보면 다음과 같습니다:
접근성과 호환성: 비밀번호는 다양한 시스템에서 사용할 수 있으며, 다양한 사용자에게 접근 가능합니다.
비용 효과성과 완전성: 비밀번호 기반 인증은 일반적으로 다른 방법보다 비용 효율적이며 다양한 상황에 적응할 수 있습니다.
익명성과 개인 정보 보호: 비밀번호는 익명 사용을 가능하게 하며 사용자의 개인 정보를 보호합니다.
하지만 모든 동전에는 양면이 있습니다. 비밀번호에는 장점이 있지만, 인증에만 의존하게 되면 많은 취약점을 초래합니다. 그것들은 최종 사용자들이 관리하기 어려울 수 있고, 웹사이트 소유자들이 적절한 보안 관행을 따르지 않으면 비밀번호가 손상되기 쉽습니다. 위험한 보안 관행에는 다음과 같은 것들이 포함됩니다:
약한 또는 유출된 비밀번호를 허용합니다.
연결에 대해 HTTPS를 강제하지 않습니다.
안전하지 않은 해싱 알고리즘을 사용합니다.
OAuth 또는 OpenID Connect (OIDC)와 같은 전투 검증된 표준을 엄격하게 준수하지 않습니다.
저는 위에서 언급된 인증 방법들을 과소평가하려는 의도는 없습니다. 반대로, Logto를 구축하는 과정에서 그들이 만들어 놓은 놀라운 인증 방법들과 그 뒤에 있는 사람들에 대한 깊은 존경감을 가지게 되었습니다.
그럼에도 불구하고, 100% 보안을 달성하는 것은 불가능한 목표입니다. 우리가 추구할 수 있는 것은 공격 가능성을 줄이는 것입니다. 효과적인 접근 방법 중 하나는 현재의 디바이스나 환경에 기반한 일회용 비밀번호와 비밀번호 기반 인증을 결합하는 것입니다, 이는 보증을 추가하는 데 사용되며 널리 채택되어 왔습니다. 다양한 인증 기법의 장점을 활용함으로써, 우리는 더 강력한 보호를 제공하는 적층적 접근 방식을 만들 수 있습니다.
마지막으로, 실제로 제거되지 않은 상태에서 '비밀번호 킬러'와 같은 유행어에 집중하는 것보다는 보안과 사용자 경험 사이에 균형을 찾는 것에 중점을 두는 것이 더 가치있을 것입니다. 이를 위해 다양한 인증 방법의 장점과 한계를 이해하고 사용자 데이터의 보안 및 원활한 사용자 경험을 보장하는 방식으로 그것들을 구현하는 것이 중요합니다.