강력한 비밀번호 생성하기

 

지난 2009년, 경찰은 전국교직원노동조합 및 전국공무원노동조합 조합원들의 민주노동당 가입 여부를 수사하는 과정에서, PC방에서 89개의 주민등록번호를 이용하여 민주노동당 사이트에 접속하는 방식으로 압수수색 영장을 집행한 바 있다. 민주노동당에서 일괄적으로 당원들의 접속 계정을 설정하면서 주민등록번호가 비밀번호의 역할을 한 것이다. 수사 기관이 압수수색 영장 집행을 당사자의 입회 하에 하지 않은 것은 큰 문제이지만, 이처럼 주민등록번호 등을 비밀번호로 사용할 경우 정부기관이나 해커에 의한 공격에 노출될 수 있다.

한편, 지난 2010년, 약 2900만건의 개인정보(아이디, 비밀번호, 주민번호 등)를 취득한 후 주요 포털에 해당 개인정보로 부정 접속을 시도한 사건이 발생하였다. 총 150만 건이 부정접속에 성공했다고 한다. 이에 방송통신위원회는 개인정보 도용을 막기 위해, 즉시 비밀번호를 변경해줄 것을 요청하였다. 이처럼, 여러 사이트에서 같은 비밀번호를 사용할 경우, 하나의 사이트에서 비밀번호가 유출되면, 다른 사이트까지 피해를 볼 우려가 크다.

서로 다른 많은 비밀번호를 기억하는 것은 힘들기 때문에, 사람들은 보통 몇 개의 비밀번호를 갖고 서로 다른 계정이나 사이트에서 함께 이용한다.

같은 비밀번호를 이용하는 것은 보안에 매우 좋지 않다. 공격자가 하나의 비밀번호를 얻으면, 이것을 이용해서 같은 사람이 이용하는 다른 계정에도 시도를 해볼 것이다. 그 사람이 같은 비밀번호를 이용한다면, 공격자는 여러 개의 계정에 접근할 수 있게 된다. 즉, 이 비밀번호는 그것이 사용된 가장 안전하지 않은 서비스 만큼만 안전하게 된다는 의미이다.

비밀번호의 재사용을 피하는 것은 중요한 보안 요구 사항이지만, 비밀번호가 다를 때 모든 비밀번호를 외우는 것은 불가능하다. 다행히 이를 도와주는 소프트웨어가 있는데, 비밀번호 관리자(혹은 비밀번호 금고라 불린다)는 많은 비밀번호를 안전하게 저장하도록 돕는 애플리케이션이다. 비밀번호 관리자는 당신의 모든 비밀번호를 하나의 ‘마스터 비밀번호’로 보호하므로, 당신은 그것 하나만 기억하면 된다. 비밀번호 관리자를 사용하는 사람은 서로 다른 계정에서 사용되는 비밀번호를 사실 알 필요가 없다. 비밀번호 관리자가 비밀번호를 생성하고 기억하는 전체 과정을 관리해주기 때문이다. 예를 들어 KeePassX는 오픈 소스이며, PC에 보관하는 무료 비밀번호 관리자이다.

구글과 같은 검색엔진에서 “Password Manager”로 검색하면, 다수의 비밀번호 관리자 프로그램이 검색됨을 알 수 있다. (한글로 “비밀번호 관리 프로그램”으로 검색해 보아도, 많은 프로그램을 검색할 수 있다)

비밀번호 관리자를 사용하면, 공격자들이 추측하기 힘든 강력한 비밀번호를 선택할 수 있다. 이것 역시 중요하다. 종종 이용자들은 짧고, 간단한 비밀번호를 사용하는데, 공격자들은 이를 쉽게 추측할 수 있다. 예를 들어 “password1”, “12345”, 생일, 친구나 배우자 혹은 애완동물 이름 등. 비밀번호 관리자는 패턴이나 구조가 없는 임의의 비밀번호, 그래서 추측할 수 없는 비밀번호를 생성하고 이용하도록 돕는다. 예를 들어, “vAeJZ!Q3p$Kdkz/CRHzj0v7” 같은 것들인데, 인간이 기억하거나 추측할 수 없다. 그러나 걱정하지 마시라. 비밀번호 관리자가 당신을 위해서 기억을 해줄 테니까.

2.1 강력한 비밀번호 설정하기

 

여러 개의 기기에서 비밀번호 동기화

당신의 비밀번호를 컴퓨터와 스마트폰 등 하나의 기기 이상에서 사용하고 싶을 수 있다. 많은 비밀번호 관리자가 비밀번호 동기화 기능을 내장하고 있다. 비밀번호 파일을 동기화하면, 모든 기기에서 최근 것으로 업데이트 되므로, 예를 들어 컴퓨터에서 새로운 계정을 추가했을 때 스마트폰에서도 로그인할 수 있게 된다. 다른 비밀번호 관리자는 비밀번호를 “클라우드에”, 즉 원격 서버에 암호화된 형태로 저장하는 기능을 제공하며, 노트북이나 모바일에서 필요할 때, 자동적으로 그것을 가져와서 암호를 풀어주는 기능을 제공한다. 비밀번호 동기화를 위해 자신의 서버에 그것을 저장하는 비밀번호 관리자는 더 편리하기는 하지만, 더 공격에 취약하다는 문제가 있다. 예를 들어, 공격자(정부)가 비밀번호 관리자 업체에 정보를 제공할 것을 요구하는 법적 권한이 있거나, 혹은 그 업체나 인터넷에서 전송되는 과정에서 해킹을 할 수 있다. 또한, 클라우드 서비스를 이용한다면, 비밀번호 관리자 업체는 당신이 언제, 어디서, 어떤 서비스를 사용하는지 알 수 있다.

 

강력한 비밀번호 선택하기

기억할 필요가 있고, 특히 강력해야 할 몇 개의 비밀번호가 있다. 당신의 데이터를 암호화하여 완전히 잠그는 비밀번호가 그렇다. 최소한 당신 기기의 비밀번호, 전체 디스크 암호화와 같은 암호화 비밀번호, 그리고 비밀번호 관리자의 ‘마스터 비밀번호’ 등이다.

최근 컴퓨터들은 10자 정도의 비밀번호는 빠르게 알아낼 만큼 빨라졌다. 즉, 심지어 ‘nQ\m=8*x or !s7e&nUY’와 같은 완전 임의의 비밀번호도 짧은 것들은 암호화에 이용할 만큼 충분히 강하지 않다.

 

강력한 비밀번호의 요소

  길어야 한다 : 길수록 좋다. (물론 너무 길면 기억하기 힘들다.) 최소한 10자 이상이 되도록 한다.

  복잡해야 한다 : 복잡할수록 자동적인 비밀번호 크래킹을 방지하는데 도움이 된다. 대소문자, 숫자나 기호 등을 혼합한다.

  실제적이어야 한다 : 길고 복잡할수록 좋지만, 기억할 수 없으면 안 된다. 여러 개의 단어를 조합해서 사용하는 것도 하나의 방법이다. 기억을 위해, 종이나 문서 파일에 써놓아서는 안 된다. 비밀번호 관리자를 이용하는 것도 하나의 방법이다.

  나와 관계된 단어를 사용하지 않는다 : 이름, 주민등록번호, 전화번호, 아이나 배우자의 이름, 생년월일 등 나와 관계된 단어를 사용하지 않는다.

  다른 사람에게 알려주어서는 안 된다 : 비밀번호를 공유해서는 안 된다. 꼭 필요할 경우에는 임시 비밀번호를 만들어서 공유하고, 이후 다시 바꿔 놓는다. 혹은 공유 목적의 별도의 계정을 만들 수도 있다. 다른 사람이 어깨 너머로 보지 않도록 주의한다.

  같은 비밀번호를 서로 다른 계정에서 사용하지 않는다 : 하나의 계정에서 유출되면, 다른 계정도 위험해진다.

  자주 바꿔주어야 한다 : 최소한 세 달에 한번은 바꾸는 것이 좋다. 당연히 비밀번호 유출이 의심스러운 경우에도 바꿔주어야 한다.

 

강력하고도 기억할 수 있는 ‘비밀번호 문장(passphrase)’을 만드는 몇 가지 방법이 있다. 가장 간단하면서도 확실한 방법은 아놀드 레인홀드의 “다이스웨어(Diceware)”이다.

레인홀드의 방법은 단어 목록에서 몇 개의 단어를 임의로 선택하기 위해 주사위를 사용하는 방법이다. 이렇게 선택된 단어들이 당신의 ‘비밀번호 문장’을 구성한다. 디스크 암호화(및 비밀번호 금고)를 위해, 최소한 6개의 단어를 선택할 것을 권고한다.

비밀번호 관리자를 사용할 때, 비밀번호들과 마스터 비밀번호의 보안은 비밀번호 관리자가 설치되고 이용되는 컴퓨터의 보안에 달려있다. 컴퓨터나 기기가 공격을 받아 스파이웨어가 설치되면, 스파이웨어는 당신이 마스터 비밀번호를 타이핑하는 것을 볼 수 있고, 비밀번호 금고의 콘텐츠를 훔칠 수 있다. 따라서, 비밀번호 관리자를 사용할 때에는 컴퓨터와 다른 기기들이 악성 소프트웨어에 감염되지 않도록 하는 것이 매우 중요하다.

 

비밀번호가 어느 정도 강력한지 알려주는 사이트 https://howsecureismypassword.net/https://passfault.appspot.com/와 같은 사이트에서 어떤 비밀번호가 얼마나 강력한지 테스트해볼 수 있다. 이 비밀번호를 깨는데 얼마나 걸릴지 알려준다. 물론 비밀번호를 깨는데 사용되는 컴퓨터나 소프트웨어에 따라 달라질 것이다. 같은 비밀번호를 넣었을 때, 위의 두 사이트에서 예측한 기간도 다르게 나타난다. 하지만, 어떤 방식의 비밀번호가 얼마나 강력한지는 짐작할 수 있을 것이다. (실제 당신의 비밀번호를 입력하지는 않기를 바란다)

 

비밀번호를 한글 문장으로 할 경우, 영문 자판에서 보면, 의미가 없는 임의의 비밀번호인 것처럼 보인다. (즉, 영문 모드에서 한글 문장을 칠 경우) 그러나 이런 방식의 비밀번호 설정이 특별히 안전하다고 보기는 힘들다. 단순한 한글 단어도 자동적인 비밀번호 크래킹 알고리즘에 이미 포함되고 있기 때문이다. 물론 한글 문장으로 할 경우 기억하기 쉬워질 것이다. 그래도 위의 원칙에 따라 가능한 길고 복잡하게 만들 필요가 있다.

 

“보안 질문”

웹사이트에서 당신이 비밀번호를 잊었을 때 신원 확인을 위해 사용하는 “보안 질문”(“당신 어머니의 이름은 무엇입니까?”나 “당신의 애완동물 이름은?”과 같은)에 대한 주의가 필요하다. 많은 보안 질문에 대한 정직한 답변은 공격자가 쉽게 찾을 수 있는, 공개적으로 발견 가능한 사실들이며, 따라서 당신의 비밀번호를 완전히 우회할 수 있다. 미국 부통령 후보였던 사라 페일린의 야후 계정이 이런 식으로 해킹당했다. 따라서 비밀번호와 같이, 당신만 아는 가상의 답변을 제공해야 한다. 예를 들어, 비밀번호 질의가 당신의 애완동물을 묻는 것일 때, 당신은 “제 귀여운 고양이 스팟 사진이에요”라는 캡션과 함께, 사진 공유 사이트에 사진을 올렸을 수 있다. 따라서 “스팟”을 비밀번호 찾기 대답으로 사용하기 보다는 다른 이름을 사용하는 것이 좋을 것이다. 서로 다른 사이트의 계정에 같은 비밀번호나 보안 질의에 대한 답변을 사용하지 말아야 한다. 물론 거짓 답변을 이용할 경우, 자신이 보안 질문에 대한 답변을 어떻게 설정했는지 나중에 기억하기 힘들 수도 있다. 비밀번호 관리자를 사용한다면, 이를 이용해서 가상적인 답변도 저장할 수 있다.

당신이 보안 질의를 사용한 사이트를 생각해보고, 답변을 바꾸는 것을 고려해보라.

비밀번호 금고의 백업을 반드시 보관해 놓아야 한다! 사고로 비밀번호 금고를 잃어버리면 (혹은 기기를 잃어버릴 경우), 비밀번호들을 복구하기 힘들어질 수 있다. 비밀번호 금고 프로그램은 통상 별도의 백업을 만드는 방법을 제공한다. 혹은 당신이 사용하는 백업 프로그램을 이용할 수 있다.

당신의 등록된 이메일 주소로 비밀번호 복원 이메일을 보내 달라고 서비스에 요청해서 비밀번호를 새로 설정할 수도 있다. 이를 위해서는 그 이메일 계정의 ‘비밀번호’를 기억할 필요가 있다. 이렇게 할 수 있다면, 비밀번호 금고에 의존하지 않고 비밀번호를 새로 설정할 수 있다.

 

다중 인증과 일회용 비밀번호

많은 서비스와 소프트웨어 도구가 ‘이중 인증’(혹은 2단계 인증, 혹은 2단계 로그인)을 제공한다. 즉, 로그인을 하기 위해, 당신은 어떤 물리적인 장치를 보유하고 있어야 한다. 통상 휴대전화가 사용되며, 어떤 경우에는 ‘보안 토큰’이라고 부르는 특별한 기기가 사용된다. ‘이중 인증’을 사용하면, 비밀번호를 해킹 당하거나 잃어버리더라도, 공격자가 보조 장치를 가지고 있거나 통제할 수 없다면, 그래서 보조 장치가 생성하는 특별한 코드가 없다면, 로그인할 수 없게 된다. 즉, 도둑이나 해커가 당신의 계정에 접근하려면, 당신의 비밀번호와 휴대전화 모두를 손에 넣어야 한다는 것이다.

이는 서비스 운영자의 협력을 통해서만 설정이 될 수 있기 때문에, 그러한 기능을 제공하지 않는 서비스를 이용한다면, 당신 혼자서는 할 수 없다.

휴대전화를 이용한 ‘이중 인증’은 두 가지 방법으로 시행된다. 당신이 로그인할 때마다 당신의 휴대전화로 SMS 메시지를 보내주거나, 휴대전화 자체에서 보안 코드를 생성하는 인증 프로그램을 사용하는 방법이다. 이는 공격자가 당신의 비밀번호는 가지고 있지만, 휴대전화에 물리적으로 접근할 수 없을 때 당신의 계정을 보호하는데 도움이 된다.
 

반면, 휴대전화를 이용한 이중 인증은 당신의 휴대전화 번호를 서비스 업체에 제공해야 하는데, 이는 개인의 신원을 의도하지 않게 드러낼 수도 있다. 특히, 한국과 같이 휴대전화 서비스 이용을 위해 신원 확인을 해야만 하는 경우가 그렇다.

 
구글과 같은 어떤 서비스들은 1회용 비밀번호(one-time passwords 혹은 single-use passwords) 목록을 생성하도록 허락한다. 이는 출력하거나 종이에 써서 당신이 갖고 다닐 수 있도록 하기 위한 것이다. (어떤 경우에는 기억할 수도 있다.) 이 비밀번호들은 단 한번만 작동한다. 그래서 당신이 그것을 입력했을 때 스파이웨어에 의해 도난당하더라도, 도둑은 향후에 그것을 이용할 수 없다. 당신이나 단체가 이메일 서버와 같은 커뮤니케이션 인프라를 직접 운영하고 있을 경우, 당신의 시스템에 접근하기 위해 이중 인증을 사용할 수 있도록 하는 소프트웨어도 무료로 구할 수 있다. 공개 표준인 “시간 기반 일회용 비밀번호(Time-Based One-Time Passwords)” 혹은 ‘RFC 6238’을 구현한 소프트웨어를 구하도록 시스템 관리자에게 문의하라.

 

물리적인 폭력과구금의 위협

마지막으로, 공격자가 당신의 비밀번호를 얻을 수 있는 한 가지 방법이 있음을 이해해야 한다. 당신에게 물리적인 폭력 혹은 구금 한다고 직접 위협하는 것이다. 이것이 우려된다면, 자신이 비밀번호를 넘겨주지 않을 거라고 믿는 것보다는, 데이터의 존재 자체 혹은 비밀번호로 보호되는 기기의 존재를 숨기는 방법도 고려해볼 수 있다. 예를 들어, 중요하지 않은 정보들을 갖고 있는, 그리고 비밀번호를 알려줘도 상관없는, 별도의 계정을 이용하는 것이다.

누군가 당신의 비밀번호를 위협한다고 믿을만한 충분한 이유가 있다면, 당신이 보여주는 계정이 ‘진짜’ 계정인 것처럼 당신의 기기를 설정할 필요가 있다. 컴퓨터의 로그인 화면, 혹은 브라우저를 열었을 때, 당신의 진짜 계정이 보이는가? 그렇다면, 당신의 계정이 잘 보이지 않도록 다시 설정할 필요가 있다.

그러나 증거의 의도적인 파괴나 조사 방해는 별개의 범죄가 될 수 있으며, 종종 심각한 결과를 가져올 수 있다. 어떤 경우에는 정부가 원래 조사하던 범죄보다 더 심각한 처벌을 할 수도 있다.

 

이 글은 EFF의 Creating Strong Passwords(2015년 5월 15일 마지막 업데이트)를 기초로 한 것입니다.