보안 질문은 당신이 고르지 않은 비밀번호다

게시일 글쓴이 David Carrero

가입 양식이 어머니의 결혼 전 성을 물을 때, 그건 비밀을 묻는 게 아니다. 가족관계증명서에 적힌 항목을 묻는 것이다.

비판의 전부가 여기 들어 있고, 나머지는 각주다. 보안 질문은 보통의 비밀번호에는 없는 결함 세 가지를 가진 비밀번호다. 당신이 고른 게 아니고, 많은 사람이 똑같이 답하기 때문에 맞힐 수 있고, 심지어 당신이 통제하지 못하는 어딘가에 적혀 있는 경우가 많다. 그런데도 엄청난 특권이 주어진다. 당신의 비밀번호를 대신할 수 있다. 계정의 뒷문인데, 앞문보다 헐겁다.

업계의 감(感)으로 하는 말이 아니다. 구글이 측정한 결과다.

양식을 설계하기 전에 아무도 읽지 않는 그 논문

2015년, 다섯 명의 연구자 — Joseph Bonneau, Elie Bursztein, Ilan Caron, Rob Jackson, Mike Williamson — 가 피렌체에서 열린 WWW 콘퍼런스에서 제목만으로 거의 다 말해 버리는 논문을 발표했다. Secrets, Lies, and Account Recovery. 자원자 서른 명을 데려다 놓은 실험실이 아니었다. 수억 건의 보안 답변과 수백만 건의 실제 계정 복구 시도를 분석했다.

발견은 두 조각이다. 거의 언제나 한 조각만 인용된다.

첫 번째 조각: 맞힐 수 있다

논문의 위협 모델은 궁금해하는 사돈 어른이 아니다. 계정을 대량으로 공격해 그중 일부만 맞히면 되는 쪽이다. 그 렌즈를 끼우면 숫자의 의미가 달라진다.

단 한 번의 시도로 공격자는 영어권 사용자가 “가장 좋아하는 음식은?”에 적은 답의 19.7 %를 맞힌다. 한 번이다. 혹시 몰라 덧붙이면, 그 답은 지금 당신 머릿속에 떠오른 바로 그것일 가능성이 높다. 열 번의 시도라면 한국어 사용자가 “태어난 도시는?”에 적은 답의 39 %를 맞힌다. 그리고 구글이 “아버지의 첫 번째 성은?”으로 번역해 내보내던 질문에서는, 한 번의 시도로 **스페인어권 사용자 답변의 3.8 %**가 뚫린다.

3.8 %는 별것 아닌 것처럼 들린다. 공격자가 노리는 게 당신의 계정 하나가 아니라 백만 개라는 사실을 떠올리기 전까지는. 게다가 그 목록을 만드는 데 구글일 필요도 없다. 저자들이 직접 확인했다. 크라우드소싱 서비스에서 사들인 답변 천 건만 가지고도, 백 번까지 시도할 때 실제 분포의 75 %에서 80 %만큼 효과적인 분포를 만들어 냈다. 실험 비용은 100달러, 걸린 시간은 하루도 안 됐다.

참혹한 건, 애초에 유일하도록 설계된 질문조차 무사하지 못했다는 점이다. 상용 고객 우대 번호는 정의상 겹칠 수 없어야 한다. 실제로는 영어권 사용자 사이에서 단 한 번의 시도로 **4.2 %**가 맞는다. 이유가 근사한데, 뒤에서 다시 다룬다. 사람들은 거짓말을 하고, 떼 지어 똑같은 거짓말을 한다.

두 번째 조각: 잊어버린다

여기서 논리가 통째로 무너진다. 우리가 아직도 보안 질문을 쓰는 유일한 이유가 그것이 믿을 만하다는 믿음이기 때문이다. 전제 자체는 그럴듯했다. 고향 이름을 기억하는 게 xK4$mz를 기억하는 것보다 쉬워야 하니까. 그렇지 않았다. 미국의 영어권 사용자 40 %는 정작 필요한 순간에 자기 답을 기억해 내지 못했다. 막연히 잊은 게 아니다. 자기 계정에 들어가려고 애쓰다가 못 들어갔다.

그리고 완벽한 역전이 등장한다. 십 년 전에 이 기술의 사망 선고가 됐어야 할 사실이다. 질문이 안전할수록, 답은 기억나지 않는다. 같은 집단에서 “아버지의 미들네임은?” — 허술한 질문이다 — 은 76 %가 맞혔다. 맞히기 훨씬 어려운 “처음 쓴 전화번호는?”은 55 %로 떨어졌다. 이론적으로 가장 안전한 후보들은 바닥을 친다. “도서관 회원 번호는?” 22 %, “상용 고객 우대 번호는?” 9 %.

시간이 마무리를 짓는다. “가장 좋아하는 음식은?”의 경우 한 달 뒤 74 %, 석 달 뒤 53 %, 일 년 뒤에는 고작 47 %였다. 게다가 복구는 초반에 몰리지 않는다. 저자들이 확인한 바로는, 사용자가 계정을 늦게보다 일찍 복구하려는 경향은 없었다. 그러니 대부분은 기억이 이미 증발한 뒤에야 그 질문 앞에 선다.

저자들의 결론은 달리 해석할 여지가 별로 없다. 안전하면서 동시에 기억할 수 있는 보안 질문을 찾는 것은 거의 불가능해 보인다.

거짓말은 구원이 아니라 감금이다

문제를 이해한 사람의 상식적인 반응은 거짓말이다. 고향을 물으면 “레이캬비크”라고 적고 지나가면 된다.

논문은 그것도 측정했다. 미국 인구를 대상으로 한 설문이었다. 거짓 답을 적은 적이 있다고 인정한 사람 중 **37 %**는 공격자를 곤란하게 하려고 그랬고, **15 %**는 더 쉽게 기억하려고 그랬으며 — 두 번 읽어 보시라 — **31.9 %**는 프라이버시 때문에, 자기 인생사를 기업에 공짜로 넘기기 싫어서 그랬다.

문제는 답을 어렵게 만드는 행동 자체가 예측 가능하다는 데 있다. 상용 고객 우대 번호의 4.2 %가 바로 그 증거다. 많은 사람의 거짓말은 그들의 진실보다 훨씬 서로 닮아 있다. 그리고 대가는 나머지 절반에서 치른다. “처음 쓴 전화번호는?”에 일곱 자리짜리 그럴듯한 답을 적은 미국 사용자는 55 %의 확률로 자기 답을 기억했다. 여섯 글자를 적은 사람들, 그러니까 아무거나 지어낸 사람들은 **18 %**였다.

적어 두지 않는 거짓말은 보안 전략이 아니다. 열쇠를 내다 버리는 짓이다.

한국어로 물으면 질문 자체가 성립하지 않는다

어머니의 결혼 전 성으로 돌아가 보자. 한국에서는 결혼해도 성이 바뀌지 않는다. 그러니 “결혼 전 성”이라는 조건은 아무것도 가리지 않는다. 남는 건 그냥 어머니의 성이고, 그건 가족관계증명서에 그대로 인쇄되어 나온다.

이건 우리만의 특수 사정이 아니다. 논문 자신이 Griffith와 Jakobsson의 연구를 인용한다. 공개된 출생·혼인 기록만으로 텍사스 주민 최소 30 %의 어머니 결혼 전 성을 추론해 낸 연구다. 그리고 Rabkin은 실제로 쓰이는 질문의 **16 %**가 소셜 미디어 공개 프로필에 답이 버젓이 올라와 있는 것들이었음을 밝혔다.

공적 문서에 기재되고 프로필에 떠 있는 정보는 공유된 비밀이 아니다. 비밀번호 입력란을 앞에 세워 둔 공개 정보일 뿐이다.

강제로 물어보는 양식 앞에서 할 일

빠져나갈 구멍이 없을 때가 있다. 은행이 질문 세 개를 요구하고, 채우지 않으면 다음 단계로 넘어가지 않는다. 그럴 때는 그것을 질문으로 대하기를 그만두고, 실체대로 대하면 된다.

  • 인생이 아니라 비밀번호로 답하라. “태어난 도시는?”에는 생성기에서 뽑은 무작위 문자열로 답해도 되고, 미리 검사기에 넣어 본 문장으로 답해도 된다. 어떤 공적 기록에도 적혀 있지 않은 유일한 답이다.
  • 비밀번호 관리자에, 그 사이트 항목 안에 같이 적어 둬라. 선택 사항이 아니다. 기억 성공률 55 %와 18 %를 가르는 게 정확히 이것이다. 거짓말은 저장해 둘 때만 작동한다.
  • 다른 복구 수단을 고를 수 있게 해 주면, 그걸 골라라. 구글의 데이터에서 SMS는 81 %, 이메일은 75 %의 확률로 성공했다. 미국의 영어권 사용자에게 보안 질문은 61 %였고, 프랑스 사용자에게는 44 %에 그쳤다.

구글은 자기 데이터를 눈앞에 두고 그에 맞게 움직였다. 보안 질문을 최후의 수단으로 밀어내고, 언제나 다른 신호와 함께 쓰도록 했다. 논문의 권고는 단독으로 쓰지 말라는 것이다.

십일 년이 지난 지금도, 당신의 보험사는 첫 반려동물 이름을 묻는다. 무작위 열여섯 자로 답해 주자. 그럴 자격이 있다.


출처: J. Bonneau, E. Bursztein, I. Caron, R. Jackson, M. Williamson, «Secrets, Lies, and Account Recovery: Lessons from the Use of Personal Knowledge Questions at Google», WWW 2015, Florencia · V. Griffith, M. Jakobsson, «Messin’ with Texas: Deriving Mother’s Maiden Names Using Public Records», ACNS 2005, 그리고 실무에서 쓰이는 보안 질문에 관한 A. Rabkin의 연구. 뒤의 두 편은 모두 앞의 논문에서 인용된 것이다.

← 블로그로 돌아가기