비밀번호란 무엇인가, 그리고 우리는 왜 육십 년째 틀리고 있는가

게시일 글쓴이 David Carrero

비밀번호는 아주 오래된 질문에 대한 답이다. 너는 우리 편인가?

컴퓨터가 발명한 것이 아니다. 폴리비오스는 기원전 2세기에, 로마 군대가 밤마다 나무판 — 테세라 — 에 적은 낱말을 부대에서 부대로 돌리고 사령부로 되돌렸다고 기록했다. 그것을 아는 자는 자기 편이었다. 모르는 자는 아니었다.

이천 년이 지난 지금도 우리는 정확히 같은 일을 한다. 바뀐 것은 누가 묻는가, 그리고 얼마나 빠르게 답을 추측할 수 있는가뿐이다.

1961년 비밀번호가 컴퓨터로 들어오다

1961년 11월, MIT는 페르난도 코르바토가 이끄는 CTSS(Compatible Time-Sharing System)를 시연했다. 새로운 발상이었다. 아주 비싼 컴퓨터 한 대를 여러 사람이 동시에 나눠 쓰는 것.

그리고 거기서 문제가 나타났다. 기계가 모두의 것이라면, 각자의 파일은 각자의 것이어야 한다. 컴퓨터는 누가 입력하고 있는지 알 방법이 필요했다. 해법은 가장 뻔했고 가장 로마적이었다. 사용자마다 자기만의 낱말을 갖게 하는 것.

정확히 말해두자. 코르바토는 비밀번호를 발명하지 않았다. 그가 발명한 것은 다중 사용자 컴퓨터에서 사용자별 비밀번호이고, 그것은 다른 일이다. 노년에 그 자신이 이 모든 것이 “악몽”이 되었다고 말했다.

1962년 첫 유출, 그리고 이유는 계산 시간이었다

이듬해, 같은 MIT의 박사과정생 앨런 셰어에게는 매우 세속적인 문제가 있었다. 주당 네 시간의 컴퓨터 시간만 배정받았는데 논문에는 더 필요했다.

그래서 그는 시스템에 비밀번호 파일을 인쇄하라고 요청했다. 그게 전부다. 평문으로 거기 있었고, 누군가 그것을 요청하리라고는 아무도 생각하지 못했다. 출력물을 손에 쥐고 그는 남의 계정으로 작업을 이어갔다.

흥미로운 것은 수법이 아니다. 동기다. 역사상 첫 비밀번호 유출은 범죄자가 아니라 계속 일하고 싶었던 사람이 저질렀다. 육십 년이 지난 지금도 보안 구멍 대부분은 지름길을 찾는 합리적인 사람들에게서 시작된다.

1979년 애초에 저장하면 안 된다는 것을 누군가 깨닫다

거의 20년 동안 많은 시스템이 비밀번호를 그대로 저장했다. 누군가 파일을 읽으면 전부 가져갈 수 있었다.

1979년 로버트 모리스와 켄 톰프슨Communications of the ACM에 유닉스에서 한 일에 관해 「Password Security: A Case History」라는 논문을 발표했다. 오늘날 모든 것의 토대가 되는 두 가지 발상이다.

  • 비밀번호를 저장하지 말고 그 해시를 저장하라. 시스템은 당신의 비밀번호가 무엇인지 알 필요가 없다. 방금 입력한 것이 같은 결과를 내는지 확인할 수만 있으면 된다.
  • 솔트: 해시를 계산하기 전에 각 비밀번호에 무작위 값을 더하는 것. 같은 비밀번호를 쓰는 두 사람의 해시가 같아지지 않고, 표를 미리 계산해 한꺼번에 뚫을 수도 없게 된다.

오늘 어떤 서비스가 “당신의 비밀번호를 알아서는 안 된다”고 말할 때, 우리는 1979년의 논문을 인용하고 있는 것이다.

2003년 우리가 모두 배운 규칙, 그리고 그 출처

2003년, 미국 NIST의 빌 버는 세계의 절반이 비밀번호를 어떻게 요구할지를 지배하게 될 문서를 썼다. SP 800-63이다. 당신이 즉시 알아보는 모든 것이 거기서 나왔다.

대문자 하나, 숫자 하나, 기호 하나 이상. 90일마다 변경할 것.

과학처럼 들렸다. 아니었다. 버에게는 실제 비밀번호에 관한 좋은 데이터가 없었다 — 거의 존재하지 않았다 — 그래서 있는 것에 기대어 합리적으로 보이는 쪽으로 추론했다. 문자 종류가 많을수록 조합이 많고, 그러면 더 안전하다고.

문제는 사람은 난수 생성기가 아니라는 것이다. 대문자를 요구하면 맨 앞에 놓는다. 숫자를 요구하면 맨 뒤에 놓는다. 기호를 요구하면 !가 된다. 그리고 석 달마다 바꾸게 강제하면 Yeoreum2024!Gaeul2024!가 된다.

그 결과는 복잡해 보이지만 사소한 비밀번호 한 세대 전체, 그리고 더는 못 견뎌 어디서나 재사용하는 지친 사용자들이었다.

2017년 NIST가 철회하고, 버도 철회하다

2017년 NIST는 SP 800-63B를 내고 거의 전부를 되돌렸다.

  • 길이가 복잡성보다 중요하다.
  • 침해 정황이 없는 한 강제 교체는 하지 않는다.
  • 기호를 요구하는 대신 유출 목록과 대조한다.

같은 해 버는 Wall Street Journal에 자신이 쓴 것의 상당 부분을 후회한다고 말했다. 컴퓨터 보안이 내놓은 가장 정직한 정정 가운데 하나다 — 그런데도 지금 이 순간에도 수천 개의 양식이, 저자 자신이 부인한 문서 때문에 기호를 요구하고 있다.

이것이 먼 옛날 이야기가 아닌 이유

이 모든 것에는 아주 구체적인 결과가 있고, 바로 여기서 볼 수 있다.

우리 자신의 검사기도 얼마 전까지 2003년의 논리로 돌아갔다. 대문자와 숫자와 기호를 셌다. Contraseña1! — 문자 그대로 스페인어로 “비밀번호” — 에 92 % “매우 강함” 을 주고, 비교할 수 없이 나은 무작위 다섯 낱말 구절에 0 % “매우 약함” 을 주었다.

해서는 안 될 일을 정확히 보상하고 있었다. 우리는 바꿨다. 이제는 낱말·이름·도시· 키보드 패턴 사전에서 당신의 비밀번호를 찾아보고, 실제로 얼마나 버틸지 알려준다.

그래서 생성기는 백분율이 아니라 엔트로피 비트를 보여준다. 백분율은 아무 의미가 없다. 비트는 의미가 있다. 당신에 대해 아무것도 모르는 사람이 몇 번을 시도해야 하는가, 그 수다.

무엇을 할 것인가, 두 줄로

  • 긴 것이 꼬인 것을 이긴다. 무작위 낱말 네다섯 개는 P@ssw0rd를 여러 자릿수로 앞선다.
  • 어디서나 다른 것을, 관리자에 넣어서. 2003년의 규칙 중 아직 서 있는 유일한 것이고, 우리가 가장 무시한 것이다.

질문은 2세기 로마와 같다. 너는 우리 편인가? 달라진 것은, 묻는 자가 이제 초당 십억 개의 답을 시도할 수 있다는 점이다. 당신의 답이 사전에 없기를 바란다.


출처: F. J. 코르바토와 CTSS(MIT, 1961) · 1962년에 관한 앨런 셰어 본인의 증언 · R. 모리스, K. 톰프슨, 「Password Security: A Case History」, Communications of the ACM, 1979 · NIST SP 800-63(2003) 및 SP 800-63B(2017) · 빌 버가 Wall Street Journal에 한 발언, 2017년 8월.

← 블로그로 돌아가기