출근할 때 찍은 내 소중한 지문은 어디에, 어떻게 저장될까?
[보안뉴스= 데이브 컨스 보안분석가] 뮌헨에서 열린 유럽 아이덴티티 컨퍼런스(European Identity Conference)에 참가했을 때다. 미래의 인증 방법, 그중에서도 바이오인식에 대한 강연 말미에 간단한 질문 시간이 있었는데 지문에 대한 사람들의 잘못된 인식이 아직도 상당수 고쳐지지 않았음을 알 수 있었다. 먼저 지문에 대한 여러 가지 오해들을 살펴본다.
먼저 깜짝 놀랄 정도로 많은 사람들이 지문이 어딘가에 저장되어 있고, 그 지문을 훔쳐 범죄현장 같은 곳에 악용해 지문의 주인에게 누명을 씌울 수 있다고 믿고 있었다. 하지만 지문이란 건 ‘저장되지’ 않는다. 암호나 토큰 시스템과 같이 하나의 값으로 남을 뿐이다. 또한 그 값을 역설계해서 지문의 모양새를 복원하는 것도 불가능하다.
왜 그러냐고? 지문인식을 위해 손가락을 대면 기기가 임의로 지문을 측정해 여러 가지 값을 생성한다. 그런 다음 그 값을 애플리케이션 고유의 산출 및 집계 방식에 적용한다. 그런 다음 거기에 양념을 치고(무작위 데이터를 더하고) 해싱 과정까지 거치게 된다(일방향 함수를 거친다). 최초의 지문을 변환한 값에 이런 저런 걸 덧붙인 최종값이 실제로 저장되는 것이다. 지문의 이미지 파일이 저장되는 게 아니다. 게다가 해싱은 일방향 과정이므로 역설계가 불가능해진다. 즉 값만 가지고 지문을 복원하는 게 불가능하다는 의미다.
또한 어떤 질문자 한 분은 굉장한 번뇌에 휩싸인 듯이 보였다. 지문과 같은 바이오인식은 한번 데이터가 유출되면 바꾸는 게 불가능하다는 것이 그 이유였다. 그 말을 듣자마자 나는 그 분의 손가락을 살폈다. ‘아니, 손가락이 하나밖에 없는 사람인 거야, 뭐야?’ 사람들 대부분은 손가락을 열 개 정도 가지고 있다. 게다가 인증용 지문을 바꾸는 건 이메일 암호를 재설정하는 것만큼 간단한 일이다.
그러면 아마 이런 반박이 가능할 지도 모르겠다. “그래봤자 아홉 번 바꾸면 끝이 아닌가?” 인증절차에 지문을 한 번에 한개만 쓸 수 있다면 이 말이 타당하다. 하지만 지문을 꼭 하나만 쓰라는 법이 있나? 지문 두개를 찍도록 인증 절차를 설정하기만 해도 가능한 옵션이 10개에서 90개로 늘어난다. 같은 지문을 두 번 겹쳐 사용할 수 있다면 100개가 된다. 지문을 세개 쓸 수 있다면? 경우의 수가 270으로 늘어난다.
다시 정리해보자면 이 기기에서 저 기기로, 이 과정에서 저 과정으로 옮겨 다니는 건 지문의 실제 이미지가 아니라 그것을 숫자로 변환하고 무작위 데이터를 더한 후 해싱 과정까지 거치게 한 ‘숫자 값’이다. 누군가 데이터베이스에 침투해 이 값을 훔쳐냈다고 해도 손가락을 바꿔서 지문을 다시 등록할 필요가 없다. 단지 무작위 데이터 값이나 해시 알고리즘만 바꿔도 충분하다.
이것만으로도 안심이 안 된다는 사람이 있다. 그런 사람들을 위해 고안한 방법을 소개한다. 이 방법으로 경우의 수를 수백만으로 늘이는 것이 가능하다. 먼저 강조할 것이 하나 있는데, 지문 등록을 할 때 방금 찍힌 싱싱한 지문이 데이터베이스 내에 저장되어 있는 모든 지문들과 일일이 대조되지 않는다는 사실이다. 이는 암호를 설정할 때도 마찬가지다. 만일 그렇다면 암호라는 것이 세계 인구수만큼 있어야 한다. 방금 찍힌 지문은 지문 주인의 계정이나 이름 내에 등록된 기존 지문들과만 대조될 뿐이다. 그렇게 등록된 지문 값과 인증 과정에서의 지문 값이 같으면 인증이 성공한다.
보안전문가인 토마스 백달(Thomas Baekdal)은 “‘아름다운 밤이에요’와 같은 간단한 문장이 가장 강력한 암호”라고 했다. 내가 고안한 방법이란 이 원리를 바이오인식 분야에 적용하는 것이다. 즉 알파벳과 단어를 가지고 문장을 만들 듯 지문을 가지고 문장을 만들어 보는 것이다. 내가 알기로 아직까지 이런 방법을 창안한 사람이나 기관은 없었다.
지금 손을 펴보라. 아주 익숙한 다섯 개의 손가락을 볼 수 있을 것이다. 새끼손가락, 약지손가락, 가운데손가락, 집게손가락, 엄지손가락, 이름도 제각각이다. 차례대로 간단한 영어 이니셜을 붙여보자. 필자는 P, R, M, I, T라고 붙였다. 거기다가 왼손, 오른손을 구분하기 위해 L과 R도 함께 써보자. 그러면 LP, LR, LM, LI, LT와 RP, RR, RM, RI, RT가 나온다. 그러면 이 열 개의 단어를 가지고 문구를 만들어보자. 물론 우리가 문학에서 말하는 ‘문장’이 나오는 건 아니다. 간단하게는 LP RP, 복잡하게는 LP RP LP RI LI LP RT 등 수백만 가지가 넘는 조합이 가능하다.
위에 설명한 방법은 골자일 뿐이다. 필자는 수학이나 말, 글 실력이 미진해서 좋은 용례를 아직 개발하지 못했다. 이런 쪽에 실력이 있는 독자라면 훨씬 멋진 문장을 만들 수 있을 것으로 보인다. 요는 손가락 열개를 이렇게 저렇게 조합하면 무궁무진한 경우의 수를 만들 수 있다는 것이다. 게다가 우리에겐 발가락이 10개나 더 있으니 뭐가 걱정인가?
*필자 소개 : 데이브 컨스(Dave Kearns)는 유럽의 여러 금융기관 및 정보기관의 보안을 담당해온 보안분석가로 활발한 기고 활동 및 저술 활동을 병행하고 있다.
ⓒDARKReading
[글_데이브 컨스(Dave Kearns) 보안분석가]
<저작권자: 보안뉴스(http://www.boannews.com/) 무단전재-재배포금지>