보안/뉴스

비밀번호는 안전하지 않다. 그럼 현실적으로 어떻게 해야 하는가?

수달정보보호 2023. 12. 15. 09:08

NIST는 20여년 전에 강력한 비밀번호에 대한 규칙을 정의했다. 최소 8자로 구성하고, 대문자나 소문자, 숫자, 특수문자를 섞어 구성하는 것이다. 그러나 이런 규칙을 고수한다 하더라도, 비밀번호 시스템 자체가 이미 보안에 있어 적절한 것으로 고려되지 않는다. 이용자가 기술 발전을 누리는 동안, 공격자들도 더욱 나은 도구와 기술의 발전을 누릴 수 있기 때문이다. 방어 기술 만큼이나 공격 기술도 언제나 발전하기 때문에 우리는 늘 새로운, 더 강력한 방어를 위한 방안을 고려해야 하지만, 여전히 비밀번호만을 입력해서 인증하는 방식이 많은 사람의 사랑을 받고 있다.

 

비밀번호가 안전하지 않은 이유는 첫째, 수학적 한계에 있다.

위에서 영어 대문자, 영어 소문자, 숫자, 특수문자의 조합을 이야기했는데, 이런 4팩터를 하는 사람도 아마 흔치 않을 것이다. 보통은 3팩터의 비밀번호를 고수할 것이고, 특정 사이트에서 4팩터를 요구하는 경우만 울며 겨자먹기로 기존에 사용하던 소문자를 대문자로 하나 바꾸는 수준이지 않을까 싶다. 사람은 본래 편의성을 추구하니 말이다.

영어 소문자 + 숫자 + 특수기호를 기준으로 한다면, 8자의 경우 Brute Force Attack으로 해독하는 데에 2022년 기준 39분밖에 걸리지 않는다. 이는 그래픽 카드의 성능이 발전할수록 줄어들 것이고 말이다. 2022년 기준이 39분이었으니, 이제는 30분 정도이지 않을까 싶다. 앞서 우리가 보통 3팩터의 비밀번호를 고수한다 했는데, 나의 경험과 내 지인들에게 물어본 결과 보통 10자리의 비밀번호를 구성하는 것이 보편적인 것으로 보였다. 영문 알파벳는 26개이고, 숫자는 0~9로 10개이고, 특수문자는 내 경험상 `!@#$%^&*() 외에는 쓰는 경우를 본 적이 없다. 기껏해야 11개인 것이다. 그렇다면 다 합쳐봤자 45개이고, 45^10= 3경 4,050조 정도가 된다. 여기서 3팩터가 반드시 하나씩은 포함되어야 한다는 전제조건을 삽입한다면, 2경 7,000조 정도로 훨씬 줄어들게 될 것이다. 수백만 개를 크랙하는 데에도 1초도 안 걸린다는 점을 고려하면, 2경 단위는 생각보다 안전하지 않다.

 

비밀번호가 안전하지 않은 이유는 둘째, 이용자의 노력 부족이다.

국내에는 이미 비밀번호 설정과 관련한 권고사항이 존재한다.

1. 연속된 숫자, 생일번호나 전화번호 등 추측하기 쉬운 개인정보와 연관되거나, 아이디와 연관된 비밀번호를 구성하지 않을 것.

2. 4팩터의 경우 8자 이상, 3팩터의 경우 10자 이상의 비밀번호를 구성할 것.

3. 비밀번호를 반기에 최소 1회 이상 수정할 것.

전국에서 비밀번호를 이용하는 이용자들 중 위 3가지 권고사항을 모두 지키는 사람이 몇이나 될까? 여러 사이트에서는 일정 기간이 지나면 로그인 시에 비밀번호를 수정하라는 창이 뜨는데, 보통 그 경우에는 이용자의 선택에 맡기지, 비밀번호 수정을 강제하지는 않는다. 이미 기업에서는 보안 관리에 대해 이용자에게 권고를 했으니, 그걸로 의무를 다한 셈이다.

비밀번호 자체가 안전하지 않음에도 굳이 사용하는 사람이 절대 다수인 상황에서, 우리는 최소한의 노력을 해야만 한다. 그것은 비밀번호의 길이를 압도적으로 늘리는 일이 될 것이다. 비밀번호를 자주 바꾸는 노력도 아니고, 그저 길게 하는 노력이라면 받아들일 수 있는 사람이 꽤나 될 것이라 생각한다.

위의 표는 2022년 기준이다. 지금은 더 짧아졌을 것이고, 앞으로 그 속도는 더욱 가속화될 것이다.

비밀번호 인증을 굳이 사용하고 싶다면, 압도적으로 길이라도 늘리는 것이 방안이 될 수 있다는 것이다. 우리의 비밀번호를 굳이 Brute Force로 뚫는 공격자가 얼마나 될지는 모르겠다만, 일반인 상대로 양자 컴퓨팅을 쓰는 경우는 정말 드물지 않을까 싶다. 우리가 일반적으로 3팩터를 사용한다는 점을 감안하면, 그래서 3팩터의 편의성을 놓치기 싫다면, 적어도 17자 이상으로 하는 수고로움 정도는 매우 쉬운 노력이지 않을까 싶다.

 

비밀번호의 큰 문제점들 중 하나는 공격자가 비밀번호를 알아챈다면, 바로 크리덴셜 스터핑으로 이용할 수 있다는 점이다. 보통은 비밀번호를 다들 비슷한 것을 사용하니 말이다. 크리덴셜 스터핑 공격은 갈수록 늘어나고 있다. 사실 어찌보면 당연한 것일지도 모른다. 비밀번호는 갈수록 공격자들에게는 쉬운 공격 대상이 되어가고 있는데, 그걸 통해서 다양한 인증에 써먹을 수 있다니 공격을 안 하는 게 이상할 지경이다.

 

가장 이상적인 것은 비밀번호를 사용하지 않는 것이다. 하지만, 그것은 우리의 노력만으로는 안되는 영역이기도 하다. 일단 단 우리가 이용하는 각 기업의 인증시스템이 오직 비밀번호 시스템만 갖추고 있다면, 우리는 노력을 할 기회조차 얻을 수 없으니 말이다. 그렇다면 거기서 우리가 할 수 있는 노력은 간단하다. 비밀번호의 난이도를 압도적으로 올리며, 비밀번호에 대한 권고사항을 지키고, 키로거 등의 프로그램에 의해 비밀번호 난이도를 올린 것에 대한 노력이 무색해지지 않게 PC를 비롯한 각종 디바이스의 보안 관리를 철저히 하는 일이다. 

 

끝으로, 개인적으로 정부와 국회는 비밀번호 시스템 자체의 구식을 인정하고, 기업에게 2가지 이상의 인증시스템을 갖출 것을 권고하는 날이 올 수 있길 바란다.

 

 

참고기사 출처: https://www.futurae.com/blog/password-rules-passwordless/

728x90