보안정보

전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.

[외부 법률 기고] 비밀번호에 !@를 넣는 것이 오히려 취약하다

2025.02.28

43

※ 본 기고는 당사와 법률자문·정보보호 서비스 상호협력 MOU를 체결한 법무법인(유) 화우에서 작성하였습니다.
※ 외부 필자의 기고 및 칼럼 등은 이글루코퍼레이션 콘텐츠의 편집방향과 일치하지 않을 수 있습니다.

웹사이트에 회원가입을 할 때, 혹은 각종 인증서를 만들 때 복잡한 비밀번호를 요구하는 정책은 매우 일상적이고 보편적이다. 비밀번호의 최소 길이를 요구하고, 영문 대소문자와 숫자 또는 특수문자 중 반드시 세 가지 이상을 포함하여 강제로 비밀번호를 만들도록 하는 곳이 흔하다.

이렇게 복잡한 비밀번호를 강제하는 이유는 사실 ‘무차별 대입 공격(brute force attack)’과 사전 공격(Dictionary Attack)을 막기 위함이 가장 크다. 이미 알려진 비밀번호 조합이나 사람들이 자주 사용하는 비밀번호, 또는 잘 알려진 단어의 경우 이러한 공격에 취약해진다. 물론 해시 솔트를 적용하는 bcrypt가 널리 사용되는 요즈음에는 맞지 않을 수도 있지만, 비밀번호가 널리 알려진 단어나 조합이라면 레인보우 테이블에 있을 가능성도 배제할 수 없다.

이를 막기 위해 미국 상무부 산하의 NIST(National Institute of Standards and Technology)에서는 지난 2007년에 NIST SP 800-63-1 지침을 내놓았다. 이 지침에 의하면, 비밀번호는 최소 8자 이상으로 하고 영문 대소문자, 숫자, 특수문자를 포함하여야 하며 90일마다 정기적으로 비밀번호를 변경할 것이 권장된다. 이처럼 복잡하고 추측하기 어려운 비밀번호 조합을 요구하는 것을 보안 취약점을 해결하기 위한 기본적인 방안이 되었을 뿐만 아니라, 현재 많은 웹사이트에서 표준으로 채택되어 있다. 비밀번호를 주기적으로 바꾸고 이전에 사용했던 적이 있는 비밀번호를 다시 쓸 수 없도록 하는 정책도 혹시 모를 유출로부터 사용자를 보호하기 위함이었을 것이다.

그러나 대부분의 사용자들은 주기적으로 비밀번호를 변경하면서 최근에 변경한 패스워드가 떠오르지 않아 곤란해하는 상황을 겪기도 한다. 이를 피하기 위해 사용자들은 설령 비밀번호를 주기적으로 변경하더라도 아주 작은 차이점만 두어 실질적으로는 거의 차이나지 않게 하거나, 비밀번호 분실을 우려하여 기억하기 쉬운 비밀번호를 설정하기도 한다. 안전한 비밀번호를 만들기 위해 세워진 비밀번호 설정 정책이 오히려 사용자들의 보안을 취약하게 만드는 것이다.

이러한 지적은 이미 지난 2014년 HCI 분야에서 가장 권위있는 국제 학술대회중 하나인 CHI(Conference on Human Factors in Computing Systems)에서 논문으로 발표된 바 있다 . 카네기멜론 대학의 연구진들은 사용자들이 16자 이상의 긴 비밀번호를 만드는 것이 영문 대소문자, 숫자, 특수문자를 모두 포함하도록 하는 방식의 복잡성 기반의 비밀번호 정책(comp8)보다 더 우수한 사용성과 안전성을 제공한다고 밝힌 바 있다.

연구진들은 보안성과 사용성간의 상충적인(trade-off) 측면을 비교하기 위해 비밀번호의 길이와 구성의 요구사항을 다양하게 구성한 8가지 비밀번호 정책을 8,000여명의 참가자들을 대상으로 분석하였다. 그 결과, 복잡성 기반의 비밀번호 정책(comp8)이 적은 수의 추측에는 강하지만 대규모 추측 공격에는 취약하며, 참가자들이 실제로 comp8 정책을 안전하다고 인식했던 것과는 달리 실제 보안성은 낮다는 결과가 나왔다. 더 많은 추측 공격 횟수를 견딜 수 있는 것은 긴 비밀번호였으며, ‘1234’, ‘password’ 등의 특정 문자열을 포함하여 크랙될 가능성을 높이지 않는다면 사용성과 보안성을 우수하게 제공할 수 있다는 결과를 얻을 수 있었다.

최근 NIST에서 발표한 새로운 비밀번호 정책인 SP 800-63-4는 이러한 연구 결과를 반영하고 있을 뿐만 아니라, 변화한 디지털 환경과 온라인 위험에 대응할 수 있는 내용을 담고 있다. 비밀번호는 최소 15자 이상이어야 하며, 모든 인쇄 가능한 ASCII 문자와 공백문자를 포함하여야 할 뿐만 아니라 유니코드를 허용하는 것이 권장되어야 한다는 내용이 포함되어 ‘긴 비밀번호’의 사용성과 안전성을 반영한 정책으로 볼 수 있다. 뿐만 아니라 다양한 문자 유형을 혼합하도록 하는 복잡한 요건 및 (침해사고가 없는 한) 주기적으로 비밀번호를 변경하여야 하는 요구사항을 모두 사이버 보안 약점으로 간주하여 금지하고 있다. 이러한 내용은 비밀번호를 변경할 때마다 사용자가 취약한 비밀번호를 선택해버리거나, 단순히 숫자를 덧붙이는 정도로만 주기적인 변경을 해버리는 문제점을 만드는 불필요하고 해로운 보안 요구사항을 없애 보안성을 높인 것으로 평가된다. 아울러 국제화(i18n)을 표방하는 소프트웨어를 위해 임의의 유니코드를 포함할 수 있도록 하여 변화하는 디지털 환경을 반영함과 동시에 ASCII 보다 훨씬 더 많은 엔트로피를 제공하는 것을 적극적으로 반영한 것으로 볼 수 있다.

NIST의 새로운 정책이 국제 표준으로 자리잡으면서, 세계 각국과 산업계는 비밀번호 설정기준을 이에 맞춰 조정하고 있다. ISO 27001:2022와 같은 기존 산업 표준들도 이러한 변화를 반영하여 개정될 것으로 예상된다. 기업들은 이러한 흐름에 맞춰 비밀번호 정책을 개선하는 한편, MFA나 하드웨어 토큰과 같은 추가 인증 기술을 도입하여 보안성과 사용자 편의성을 모두 높이는 방안을 모색해야 한다.