[box type=”info”]지난 2009년, 경찰은 전국교직원노동조합과 전국공무원노동조합 조합원들의 민주노동당 가입 여부를 수사하는 과정에서 피씨방에서 89개의 주민등록번호를 이용하여 민주노동당 사이트에 접속하는 방식으로 압수수색 영장을 집행한 바 있다. 민주노동당에서 일괄적으로 당원들의 접속 계정을 설정하면서 주민등록번호가 비밀번호의 역할을 한 것이다. 수사 기관이 압수수색 영장 집행을 당사자의 입회하에 하지 않은 것은 큰 문제이지만, 이처럼 주민등록번호 등을 비밀번호로 사용할 경우 정부기관이나 해커에 의한 공격에 노출될 수 있다.
한편, 지난 2010년 약 2,900만 건의 개인정보(아이디, 비밀번호, 주민등록번호 등)를 취득한 후 주요 포털에 해당 개인정보로 부정 접속을 시도한 사건이 발생했다. 총 150만 건이 부정접속에 성공했다고 한다. 이에 방송통신위원회는 개인정보 도용을 막기 위해, 즉시 비밀번호를 변경해 달라고 요청하였다. 이처럼 여러 사이트에서 같은 비밀번호를 사용할 경우 하나의 사이트에서 비밀번호가 유출되면, 다른 사이트까지 피해를 볼 우려가 크다.[/box]
서로 다른 많은 비밀번호를 기억하는 것은 힘들기 때문에, 사람들은 보통 몇 개의 비밀번호를 갖고 서로 다른 계정이나 사이트에서 함께 이용한다. 하지만 같은 비밀번호를 이용하는 것은 보안에 매우 좋지 않다. 공격자가 하나의 비밀번호를 얻으면, 이것을 이용해서 같은 사람이 이용하는 다른 계정에도 시도해볼 것이다. 그 사람이 같은 비밀번호를 이용한다면, 공격자는 여러 개의 계정에 접근할 수 있게 된다. 즉, 이 비밀번호는 그것이 사용된 가장 안전하지 않은 서비스만큼만 안전하다는 의미이다.
비밀번호의 재사용을 피하는 것은 중요한 보안 요구 사항이지만, 비밀번호가 다를 때 모든 비밀번호를 외우는 것은 불가능하다. 다행히 이를 도와주는 애플리케이션이 있는데, 비밀번호 관리자(혹은 비밀번호 금고라 불린다)는 많은 비밀번호를 안전하게 저장하도록 돕는 애플리케이션이다.
비밀번호 관리자는 당신의 모든 비밀번호를 하나의 ‘마스터 비밀번호’로 보호하므로, 당신은 그것 하나만 기억하면 된다. 비밀번호 관리자를 사용하는 사람은 서로 다른 계정에서 사용되는 비밀번호를 사실 알 필요가 없다. 비밀번호 관리자가 비밀번호를 생성하고 기억하는 전체 과정을 관리해주기 때문이다. 예를 들어 킵패스엑스(KeePassX)는 오픈 소스이며, PC에 보관하는 무료 비밀번호 관리자이다.
[box type=”note”]구글과 같은 검색엔진에서 “Password Manager”로 검색하면, 다수의 비밀번호 관리자 프로그램이 검색됨을 알 수 있다. 한글로 “비밀번호 관리 프로그램”으로 검색해 보아도, 많은 프로그램을 검색할 수 있다.[/box]
비밀번호 관리자를 사용하면, 공격자들이 추측하기 힘든 강력한 비밀번호를 선택할 수 있다. 이것 역시 중요하다. 종종 이용자들은 짧고, 간단한 비밀번호를 사용하는데, 공격자들은 이를 쉽게 추측할 수 있다. 예를 들어 “password1”, “12345”, 생일, 친구나 배우자 혹은 애완동물 이름 같은 것들 말이다.
비밀번호 관리자는 패턴이나 구조가 없는 임의의 비밀번호, 그래서 추측할 수 없는 비밀번호를 생성하고 이용하도록 돕는다. 예를 들어, “vAeJZ!Q3p$Kdkz/CRHzj0v7” 같은 것들인데, 인간이 기억하거나 추측할 수 없다. 그러나 걱정하지 마시라. 비밀번호 관리자가 당신을 위해서 기억을 해줄 테니까.
[box type=”error”]가디언이 2016년 1월에 보도한 기사를 따르면 사람들이 가장 많이 이용하는 비밀번호 top 5는 다음과 같다.
- 123456
- password
- 12345678
- qwerty
- 12345
[/box]
여러 개의 기기에서 비밀번호 동기화
당신의 비밀번호를 컴퓨터와 스마트폰 등 하나의 기기 이상에서 사용하고 싶을 수 있다. 많은 비밀번호 관리자가 비밀번호 동기화 기능을 내장하고 있다. 비밀번호 파일을 동기화하면, 모든 기기에서 최근 것으로 업데이트되므로, 예를 들어 컴퓨터에서 새로운 계정을 추가했을 때 스마트폰에서도 로그인할 수 있게 된다.
어떤 비밀번호 관리자는 비밀번호를 “클라우드”에, 즉 원격 서버에 암호화된 형태로 저장하는 기능을 제공하며, 노트북이나 모바일에서 필요할 때, 자동으로 그것을 가져와 암호를 풀어주는 기능을 제공한다. 비밀번호 동기화를 위해 자신의 서버에 그것을 저장하는 비밀번호 관리자는 더 편리하기는 하지만, 더 공격에 취약하다는 문제가 있다.
예를 들어, 공격자(정부)가 비밀번호 관리자 업체에 정보를 제공할 것을 요구하는 법적 권한이 있거나, 혹은 그 업체나 인터넷에서 전송되는 과정에서 해킹할 수 있다. 또한, 클라우드 서비스를 이용한다면, 비밀번호 관리자 업체는 당신이 언제, 어디서, 어떤 서비스를 사용하는지 알 수 있다.
강력한 비밀번호 선택하기
기억할 필요가 있고, 특히 강력해야 할 몇 개의 비밀번호가 있다. 당신의 데이터를 암호화하여 완전히 잠그는 비밀번호가 그렇다. 최소한 당신 기기의 비밀번호, 전체 디스크 암호화와 같은 암호화 비밀번호, 그리고 비밀번호 관리자의 ‘마스터 비밀번호’ 등이다.
최근 컴퓨터들은 10자 정도의 비밀번호는 빠르게 알아낼 만큼 성능이 좋아졌다. 즉, 심지어 ‘nQ\m=8*x or !s7e&nUY’와 같은 완전 임의의 비밀번호도 짧은 것들은 암호화에 이용할 만큼 충분히 강하지 않다.
[box type=”info” head=”강력한 비밀번호의 요소”]
- 길어야 한다: 길수록 좋다. (물론 너무 길면 기억하기 힘들다) 최소한 10자 이상이 되도록 한다.
- 복잡해야 한다: 복잡할수록 자동적인 비밀번호 크래킹을 방지하는 데 도움이 된다. 대소문자, 숫자나 기호 등을 혼합한다.
- 실제적이어야 한다: 길고 복잡할수록 좋지만, 기억할 수 없으면 안 된다. 여러 개의 단어를 조합해서 사용하는 것도 하나의 방법이다. 기억을 위해, 종이나 문서 파일에 써놓아서는 안 된다. 비밀번호 관리자를 이용하는 것도 하나의 방법이다.
- 나와 관계된 단어를 사용하지 않는다: 이름, 주민등록번호, 전화번호, 아이나 배우자의 이름, 생년월일 등 나와 관계된 단어를 사용하지 않는다.
- 다른 사람에게 알려주어서는 안 된다: 비밀번호를 공유해서는 안 된다. 꼭 필요할 때는 임시 비밀번호를 만들어서 공유하고, 이후 다시 바꿔 놓는다. 혹은 공유 목적의 별도의 계정을 만들 수도 있다. 다른 사람이 어깨너머로 보지 않도록 주의한다.
- 같은 비밀번호를 서로 다른 계정에서 사용하지 않는다: 하나의 계정에서 유출되면, 다른 계정도 위험해진다.
[/box]
강력하고도 기억할 수 있는 ‘비밀번호 문장(passphrase)’을 만드는 몇 가지 방법이 있다. 가장 간단하면서도 확실한 방법은 아놀드 레인홀드의 “다이스웨어(Diceware)”이다.
레인홀드의 다이스웨어는 단어 목록에서 몇 개의 단어를 임의로 선택하기 위해 주사위를 사용하는 방법이다. 이렇게 선택된 단어들이 당신의 ‘비밀번호 문장’을 구성한다. 디스크 암호화(및 비밀번호 금고)를 위해, 최소한 6개의 단어를 선택할 것을 권고한다.
[box type=”info”]비밀번호가 어느 정도 강력한지 알려주는 사이트에서 어떤 비밀번호가 얼마나 강력한지 테스트해볼 수 있다.
이런 사이트들은 비밀번호를 깨는 데 얼마나 걸릴지 알려준다. 물론 비밀번호를 깨는 데 사용되는 컴퓨터나 소프트웨어에 따라 달라질 것이다. 같은 비밀번호를 넣었을 때, 위의 두 사이트에서 예측한 기간도 다르게 나타난다. 하지만, 어떤 방식의 비밀번호가 얼마나 강력한지는 짐작할 수 있을 것이다. (실제 이용 중인 당신의 비밀번호를 입력하지는 말아라)[/box]
비밀번호 관리자를 사용할 때, 비밀번호들과 마스터 비밀번호의 보안은 비밀번호 관리자가 설치되고 이용되는 컴퓨터의 보안에 달려있다. 컴퓨터나 기기가 공격을 받아 스파이웨어가 설치되면, 스파이웨어는 당신이 마스터 비밀번호를 타이핑하는 것을 볼 수 있고, 비밀번호 금고의 콘텐츠를 훔칠 수 있다. 따라서, 비밀번호 관리자를 사용할 때에는 컴퓨터와 다른 기기들이 악성 소프트웨어에 감염되지 않도록 하는 것이 매우 중요하다.
[box type=”info”]비밀번호를 한글 문장으로 할 경우, 영문 자판에서 보면, 의미가 없는 임의의 비밀번호인 것처럼 보인다. (즉, 영문 모드에서 한글 문장을 칠 경우) 그러나 이런 방식의 비밀번호 설정이 특별히 안전하다고 보기는 힘들다. 단순한 한글 단어도 자동적인 비밀번호 크래킹 알고리즘에 이미 포함되고 있기 때문이다. 물론 한글 문장으로 할 경우 기억하기 쉬워질 것이다. 만약 한글 문장으로 만든다면 위의 원칙에 따라 가능한 한 길고 복잡하게 만들 필요가 있다.[/box]
“보안 질문”
웹사이트에서 당신이 비밀번호를 잊었을 때 신원 확인을 위해 사용하는 “보안 질문”[footnote]“당신 어머니의 이름은 무엇입니까?”나 “당신의 애완동물 이름은?”과 같은 것들[/footnote]에 대한 주의가 필요하다. 많은 보안 질문에 대한 정직한 답변은 공격자가 쉽게 찾을 수 있는, 공개적으로 발견 가능한 사실들이며, 따라서 당신의 비밀번호를 완전히 우회할 수 있다.
미국 부통령 후보였던 사라 페일린의 야후 계정이 이런 식으로 해킹당했다. 따라서 비밀번호와 같이, 당신만 아는 가상의 답변을 제공해야 한다. 예를 들어, 비밀번호 질의가 당신의 애완동물을 묻는 것일 때, 당신은 “제 귀여운 고양이 스팟 사진이에요.”라는 캡션과 함께, 사진 공유 사이트에 사진을 올렸을 수 있다. 따라서 “스팟”을 비밀번호 찾기 대답으로 사용하기보다는 다른 이름을 사용하는 것이 좋을 것이다.
서로 다른 사이트의 계정에 같은 비밀번호나 보안 질의에 대한 답변을 사용하지 말아야 한다. 물론 거짓 답변을 이용할 경우, 자신이 보안 질문에 대한 답변을 어떻게 설정했는지 나중에 기억하기 힘들 수도 있다. 비밀번호 관리자를 사용한다면, 이를 이용해서 가상적인 답변도 저장할 수 있다.
보안 질문을 이용하는 사이트를 생각해보고, 답변을 바꾸는 것을 고려해보자.
[box type=”error”]비밀번호 관리자의 데이터는 반드시 백업해 두어야 한다! 사고로 비밀번호 관리자 정보를 잃어버리면(혹은 기기를 잃어버릴 경우), 비밀번호들을 복구하기 매우 힘들어질 수 있다. 비밀번호 관리자 애플리케이션은 보통 별도의 백업 생성 방법을 제공한다. 이미 이용 중인 백업 애플리케이션을 이용할 수 있다.[/box]
당신의 등록된 이메일 주소로 비밀번호 복원 이메일을 보내 달라고 서비스에 요청해서 비밀번호를 새로 설정할 수도 있다. 이를 위해서는 그 이메일 계정의 ‘비밀번호’를 기억할 필요가 있다. 이렇게 할 수 있다면, 비밀번호 관리자에 의존하지 않고 비밀번호를 새로 설정할 수 있다.
다중 인증과 일회용 비밀번호
많은 서비스와 소프트웨어 도구가 ‘이중 인증’(혹은 2단계 인증, 혹은 2단계 로그인)을 제공한다. 즉, 로그인을 하기 위해 당신은 어떤 물리적인 장치를 보유하고 있어야 한다. 보통은 휴대전화를 사용하며, 어떤 경우에는 ‘보안 토큰’이라고 하는 특별한 기기를 사용한다.
‘이중 인증’을 사용하면 공격자의 공격에 훨씬 안전하다. 만약 비밀번호를 해킹당하거나 잃어버리더라도 공격자가 보조 장치를 가지고 있지 않거나 보조 장치를 통제할 수 없어서 보조 장치가 생성하는 특별한 코드가 없다면 로그인할 수 없기 때문이다. 즉, 도둑이나 해커가 당신의 계정에 접근하려면, 당신의 비밀번호와 휴대전화 모두를 손에 넣어야 한다는 뜻이다.
휴대전화를 이용한 ‘이중 인증’은 보통 두 가지 방법으로 이루어진다. 당신이 로그인할 때마다 당신의 휴대전화로 SMS 메시지를 보내주거나, 보안 코드를 생성하는 인증 애플리케이션을 휴대전화에 설치해 확인한다.
[box type=”error”]반면, 휴대전화를 이용한 이중 인증은 당신의 휴대전화 번호를 서비스 업체에 제공해야 하는데, 이 과정에서 자신의 신원이 의도하지 않게 드러날 수도 있다. 특히, 한국과 같이 휴대전화 서비스 이용을 위해 신원 확인을 해야만 하는 경우가 그렇다.[/box]
구글과 같은 서비스들은 일회용 비밀번호[footnote]one-time passwords 혹은 single-use passwords[/footnote] 목록을 생성하도록 허락한다. 이용자는 이것을 출력하거나 종이에 써서 갖고 다니며 이용한다.[footnote]물론 기억할 수도 있다.[/footnote] 이 비밀번호들은 단 한 번만 작동한다. 따라서 당신이 일회용 비밀번호를 입력했을 때 스파이웨어 등에 의해 공격자가 중간에서 가로채더라도, 공격자는 향후 그 비밀번호를 이용할 수 없다.
당신이나 당신이 소속한 단체가 이메일 서버와 같은 커뮤니케이션 인프라를 직접 운영하고 있을 경우, 당신의 시스템에 접근하기 위해 이중 인증을 사용할 수 있도록 하는 소프트웨어도 무료로 구할 수 있다. 공개 표준인 “시간 기반 일회용 비밀번호”[footnote]Time-Based One-Time Passwords[/footnote] 혹은 ‘RFC 6238’을 구현한 소프트웨어를 구하도록 시스템 관리자에게 문의하라.
물리적인 폭력과 구금의 위협
마지막으로, 공격자가 당신의 비밀번호를 얻을 수 있는 한 가지 방법이 있음을 이해해야 한다. 당신에게 물리적인 폭력을 행사하거나 구금하겠다고 직접 위협하는 것이다. 이를 우려한다면, 자신이 비밀번호를 넘겨주지 않을 거라고 믿는 것보다는 데이터의 존재 자체나 비밀번호로 보호되는 기기의 존재를 숨기는 방법도 고려해볼 수 있다. 예를 들어, 중요하지 않은 정보들을 가진, 그리고 비밀번호를 알려줘도 상관없는 별도의 계정을 이용하는 것이다.
누군가 당신의 비밀번호를 위협한다고 믿을만한 충분한 이유가 있다면, 당신이 보여주는 계정이 ‘진짜’ 계정인 것처럼 당신의 기기를 설정할 필요가 있다. 컴퓨터의 로그인 화면, 혹은 브라우저를 열었을 때, 당신의 진짜 계정이 보이는가? 그렇다면, 당신의 계정이 잘 보이지 않도록 다시 설정할 필요가 있다.
그러나 증거의 의도적인 파괴나 조사 방해는 별개의 범죄가 될 수 있으며, 종종 심각한 결과를 가져올 수 있다. 어떤 경우에는 정부가 원래 조사하던 범죄보다 더 심각한 처벌을 할 수도 있다.
[box type=”note”]이 글은 EFF의 Creating Strong Passwords(2015년 5월 15일 마지막 업데이트)를 기초로 한 것입니다.[/box]
최근에 봤던 암호관련 글 중에서 가장 와 닿는 글이네요. 제 의견을 좀 덧붙여보자면.
1. 전 이미 키패스를 쓴지 오래됐는데 주변에 알려도 잘 안쓰더군요. 매번 잊어먹어 암호찾기를 하면서도 말이죠.
2. 라스트패스 같은 온라인 암호관리 서비스도 언급해주시면 좋겠습니다. 해커들의 집중공략 대상이 되어 몇 번 털린적이 있지만 그래도 개인이 감당하기 어려워진 관리 수준을 높일 수 있는 좋은 대안입니다.
3. 암호를 적어다니는 것이 파일에 암호화되지 않은 상태로 저장하는 것 보다는 훨씬 더 안전하다는 다른 전문가의 의견도 있습니다.
4. 보안질문에 대해서는 저도 많이 공감되네요. 사실상 이젠 거의 의미가 없어졌죠. 그래서 제 주변사람들에게는 보안 질문을 동문서답으로 입력하라고 조언합니다.
5. 정부나 금융기관 중 일부 웹사이트는 복사해서 붙여넣기를 스크립트로 막은 경우가 많이 보이는데 이게 오히려 더 짧은 암호를 쓰게 만들어 보안위험을 부추깁니다. 인위적으로 암호의 길이를 예를들어 10글자 이하로 제한하는 경우도 마찬가지고요.
좋은 글 잘 봤습니다
다시 한번 비밀번호에 대해서 고민을 하고 있습니다
키패스를 사용중이지만 복잡한 비밀번호보다는 쉬운 비밀번호를 쓰거든요. 그리고 브라우저에서 제공하는 각종 비밀번호 관리자는 보안상 문제가 있다고 여기고 쓰지 않았습니다. 그런데 본문을 보니 오히려 복잡다단한 비밀번호를 쓰고 관리자를 통해서 하는 게 좋을수 있겠네요
마지막으로 보여주기 계정은 놀랍네요 ;;
컴퓨터에 사용자 계정을 만들어서 쓰긴 하지만 본문에 언급한 의미대로는 안될테니 제대로 할려면 좀 머리를 많이 써야 할꺼 같습니다 ;;
아무튼 많은 분들이 보시고 함께 고민하면 좋겠습니다