최근 안전하게 비밀번호를 사용할 수 있는 방안으로 원타임 패스루트에 관심이 집중되고 있다. 매번 다른 비밀번호가 생성되는 OTP 기능을 수행하는 동시에 입력 시에도 패스워드가 유출될 염려가 전혀 없이 안전한, 새로운 개념의 소프트웨어 방식의 구현 기술인'그래픽 OTP'를 소개한다.

그래픽 OTP 의 특징
그래픽 OTP(GOTP)는 소프트웨어로 구현된 OTP(one time password, 일회성 비밀번호 생성기)의 하나로, 그래픽 인터페이스를 이용해 독특한 방식을 적용해 별도의 하드웨어가 없이도 안전하고 편리하게 비밀번호를 생성, 관리할 수 있는 방법이다.
이용자는 그래픽 인터페이스를 통해 기억의 용이성과 기억 유효기간의 획기적 향상을 얻게 되며 보안성을 확보하게 된다. 하지만 실제 사용에 있어서는 OTP라는 것을 인식하지 않고 간단히 방향키와 특정키보드를 이용해 입력함으로써 ▲ 입력 값과 패스워드의 분리 ▲숄더서핑으로 부터 안전 ▲피싱의 방지 ▲사용편이성과 도입시 부담의 최소화를 모두 달성할 수 있다.
흔히 입구에 부착되어 있는 비밀번호 키나 현금인출기를 이용할 때 누군가 뒤에 있으면 불편함을 느낀다. 그 이유는 바로 내 비밀번호가 노출될까 염려스럽기 때문이다. 또 뒤에 서 있는 사람조차 의도와는 관계없이 불편함을 느끼게 된다. 이러한 불편을 없앨 수 있는, 즉, 누가 뒤에서 보고 있어도 안전하게 패스워드를 입력할 수 있게 하는데 착안해 개발된 기술이 바로 그래픽 OTP이다.

패스루트의 개념
그래픽 OTP의 가장 큰 특징은 패스워드를 입력하는 것이 아니라 '패스루트(Passroute)'를 사용해 패스워드가 자동 입력되는 방식이라는 점이다.
즉, 패스워드는 타이핑을 보고 있으면 어떤 숫자나 문자를 입력했는지 금방 알 수 있다.(숄더서핑 : shoulder surfing) 이에 반해, 패스루트는 고정키인 2와 7을 직접 누르지 않고 '2에서 7로 이동'하는 것이다. <그림 1>을 보면 2의 아래 칸에 7이 있으므로 아래로 한 칸 이동하면 된다. 아래로 한 칸 떨어져 있는 번호 쌍은 여러 개 존재하므로 뒤에서 봐도 알 수가 없다. 또한, 배열을 매번 무작위로 다르게 제시하여 입력 값이 항상 달라지도록 한다. 이것이 원타임 패스루트의 기본 개념이다.

원타임 패스루트 구현 예
패스워드의 딜레마는 알면서도 크래킹에 노출된다는 것이다. 어려운 패스워드는 망각하기 쉽고, 쉬운 패스워드는 안전하지 않기 때문이다. 'G!j8Tz09<}kjh' 와 같은 난수 패스워드를 적어두지 않고 사용한다는 것은 사실상 불가능하기 때문에 누구나 쉬운 패스워드를 사용하게 된다.
패스루트는 문자키를 입력할 필요가 없다는 장점을 최대한 활용하면 비밀 키가 그림이어도 되고, 그림으로 하면 크래킹하기 쉬운 패스워드 문제를 해소할 수 있다. 즉, 아무런 연관 없는 그림들을 비밀 키로 하면서도 암기하기는 매우 쉽게 만들 수가 있는 것이다. <그림 2>의 예는 '그녀는 커피를 좋아해'라고 암기할 수 있도록 만든 비밀 키이다.
<그림 3>은 그래픽 아이콘을 비밀 키로 사용할 수 있도록 만든 패스루트이다. 16개의 그림 중에 3개의 비밀 키를 설정하는 3/16 패스루트의 구현 예이다.
비밀 키가 예(3개의 키)와 같다고 가정할 때, 통과하는 방법은 다음과 같다.
통과방법 : 처음 그림이 자신의 현재 위치이며(첫 번째 키의 위치를 표시하는 아무런 포인터도 없다는 것이 중요하다. 키를 만든 본인은 알 수 있지만 타인은 첫 위치를 알 수 없게 하는 것이다.), 여기서부터 다음 그림으로 이동한 후 확인키를 누르고, 또 다음 그림으로 이동한 후 확인키를 누르면 된다.

실제 입력 예 : →, 확인, →,↓, 확인

GOTP로 만들어진 도어락(door lock)은 입력할 때 뒤에 누가 있어도 거리낌 없이 누를 수 있다.
패스루트가 오프라인 기기에 적용될 때에는 그 자체로도 훌륭한 잠금장치가 된다. 하지만 온라인 환경에서는 인증절차 중 수많은 단계에서 해커의 공격을 받을 수 있다. 즉, 서버, 네트웍, 이용자 PC 등의 해킹을 생각할 수 있고, 최근에는 피싱, 파밍 등의 기법이 활개를 치고 있다.
그뿐만이 아니다. 여러 가지 패스워드를 동시에 사용하기 어렵기 때문에 누구나 같은 패스워드를 여러 사이트에서 똑같이 사용한다. 따라서 은행계좌의 패스워드를 입력하는 곳에 키보드 해킹방지기술이 적용되어 있다 하더라도, 공격자는 희생자의 이메일 패스워드를 알아내어 은행계좌의 패스워드로 입력해도 되는 경우가 허다하다. 이런 기법을 우리는 페칭(phetching)이라 부르기로 했다. 페칭은 실로 모든 키보드해킹방지기술을 무력화시킨다.
패스루트가 온라인에서 안전하게 응용될 수 있으려면 이러한 패스워드의 태생적, 환경적 문제를 모두 해결할 새로운 장치가 필요하다. 구현된 GOTP의 경우는 다음과 같은 장치가 보강되었다. 서버 해킹, 네트웍 도청, PC 해킹의 경우는 기존 보안기술로 충분히 막을 수 있다.
- 개인화 GOTP세트 피싱, 파밍을 방지
- 전자덫 무차별 유추, 무차별 대입을 방지
- H/W 등록제 페칭 방지
이렇게 함으로써 온라인상에서도 충분히 안전한 그래픽 OTP로 구현이 가능하다.

개인화 GOTP 구현 방법
피싱은 운영자를 사칭하여 개인정보를 빼내가는 기법이다. GOTP 키에 대한 피싱을 방지하려면 '너의 비밀(GOTP) 키가 무엇이냐'는 질문이 불가능하도록 만들면 된다. GOTP는 그림으로 되어 있기 때문에 그림을 보여주지 않고는 너의 그림이 무엇이냐고 묻기가 곤란하다. 바로 이점을 이용하면 피싱을 방지할 수 있는데, 각 개인들의 GOTP를 만드는 구성아이콘의 조합을 제각각 다르게 만드는 것이다.
그러면 피셔가 피싱을 위하여 제시할 그림메뉴를 만들기가 곤란하기 때문이다. 즉, 이용자는 피싱메일에 있는 그림 메뉴에서 자신의 GOTP키를 알려주고 싶어도 자신의 GOTP키가 메뉴에 없어서 못 알려주게 되는 것이다. 이렇게 구현된 개인화 GOTP세트는 피싱뿐만 아니라 파밍도 훌륭히 방지한다. <그림 5>는 개인화된 GOTP세트가 구현되는 절차를 보여준다.

전자 덫 구현 방법
GOTP에는 섣부른 공격을 예방하기 위한 장치로 '전자덫'을 함께 적용할 수 있다. 이 장치를 통해, 범죄 의도를 가진 자의 시도 의지를 약화시킬 수 있다.
<그림 6>에서 보면, 좌측의 패스워드 기반에서, 보물이 있는 방은 패스워드 기반의 도어락으로 잠겨 있다. 공격자는 패스워드를 모르더라도 임의로 입력하여 시도해 볼 수 있다. 운 좋게 성공하면 문이 열려 보물을 손에 넣을 수 있고 실패하더라도 자신은 아무런 피해를 입지 않는다. 알람이 울려서 주인이 나온다 하더라도 "집들이 비슷해서 우리집인 줄 알았다"고 말하면 그만이다.
<그림 6>의 오른쪽은 전자 덫 기반을 나타낸 그림인데, 패스워드 기반의 도어락을 통과하여 문이 열려서 방안으로 들어가더라도 그 방은 아무 것도 없는 빈방이다. 그런데 들어가자마자 방금 들어왔던 방문이 뒤에서 닫히고 이내 잠긴다. 이제 공격자는 다음 방문에 달려 있는 일회용패스워드 기반의 도어락을 열고 보물이 있는 방으로 들어 갈 수밖에 없다.
그렇지 않으면 그 자리에서 방에 갇혀 주인에게 붙잡히고 말 것이며, 명백히 타인의 방에 침입한 것이므로 처벌을 면할 수 없게 된다. 그런데 이 방은 바로 수수께끼의 방이다. 세상에 한번도 나온 적이 없는 수수께끼를 제한 시간 내에 맞혀야 양쪽 문이 열리게 되어 있는 것이다.
만약 공격자가 운 좋게 수수께끼를 맞히면 보물이 있는 방의 문이 열려 보물도 얻고, 보물이 있는 방의 문이 열린 후에는 처음의 문도 열 수 있어서 유유히 사라질 수 있지만, 수수께끼를 맞히지 못하면 꼼짝없이 잡힌다. 그런데 이 수수께끼를 맞힐 확률이 백명 당 한명이 될까 말까 한다면, 감히 공격을 시도할 사람은 나타나지 않을 것이다.
<그림 6>에서 비유한 바와 같이, 일반적으로 패스워드 기반은 공격자가 아무런 부담 없이 공격을 감행할 수 있다. 그 이유는 공격을 하다가 성공하면 좋고 실패해도 자신에게 아무런 불이익이 없기 때문이다. 즉, 공격을 하다가 실패해서 걸리더라도 "ID를 잘못 입력했다"고 하면 그만이기 때문이다. ID를 잘못 입력한 경우와 도용하려다가 패스워드에 걸린 경우가 구분이 가지 않는 것이다. 이런 이유로 심증은 가지만 공격자를 처벌할 근거가 없게 되는 문제점이 있었다.
이런 문제점을 해결한 것이 바로 전자 덫 시스템인데, 일차로 간단한 인증을 거쳐 사용자의 중요정보는 없는 개인공간으로 접속하게 한 다음, GOTP를 통과하게 해서 실패하면 큰 불이익을 주는 시스템이다. 불이익으로는 위치를 추적하여 그 죄를 물을 수도 있고, 서비스에 따라서는 접속을 시도한 컴퓨터가 더 이상 접속을 못하도록 제한을 할 수도 있다.
GOTP 부비트랩에 적용되어 있는 IP 추적기술은 공격자가 IP를 위장해도 실제 IP를 정확히 추적하도록 되어 있다. 일반 웹 방식처럼 이용자가 제출하는 IP는 무시하고, GOTP 부비트랩 프로그램이 이용자의 PC에서 실행되면서 PC의 IP를 직접 읽어서 서버로 전송한다.
이렇게 구현된 GOTP의 부비트랩 기능은 공격자가 타인의 GOTP 키를 모르고서는 함부로 도용을 시도하지 못하도록 해준다.

GOTP 부비트랩의 효과
- 안전성과 편의성이라는 두 마리 토끼를 잡음
- 안전성- 패스워드의 알려진 모든 종류의 불안요소를 제거
- 편의성- 친숙한 그래픽 환경 및 완전한 소프트웨어 기반

H/W등록제
GOTP 부비트랩은 전자덫을 만들기 위해 ID/패스워드로 일차인증을 실시하는데, 아무리 GOTP 부비트랩으로 뒤를 충분히 지켜준다고 해도 이 때의 패스워드 또한 보호하는 것이 보다 안전하다고 볼 수 있다. 또한, 이중 인증 절차 자체가 번거롭다고 생각하는 이용자가 많은 문제도 해소할 필요가 있다. 이러한 문제를 해소해 주는 것이 바로 H/W등록제이다.
H/W등록제는 자신이 자주 쓰는 PC를 서버에 등록하여 자주 쓰는 PC에서는 패스워드 사용 없이 ID와 GOTP로만 로그인하자는 것이다. 이렇게 하면 일석이조의 효과가 있는데, 평상시에는 패스워드가 노출되지 않아 더욱 더 안전하면서도 사용은 훨씬 편리해진다는 것이다.
이런 H/W등록제는 여러 사이트에서 동일한 패스워드를 사용함에 따른 페칭 공격에 대한 취약성을 충분하게 방지해주는 효과가 있다.

GOTP 부비트랩의 가장 이상적인 응용형태 '싱글 GOTP'
GOTP 부비트랩은 그 특성으로 인해 하나의 GOTP로 인터넷상의 모든 ID를 안전하게 잠글 수 있는데, 앞서 설명한 전자덫과 H/W등록제가 그것을 가능하게 해준다. 싱글사인온의 개념은 아니고 모든 계정에 접근할 때마다 GOTP를 통과하되, 동일한 GOTP를 사용하여 여러 GOTP를 암기할 필요가 없도록 한 것이다.
<그림 9>만 보면 GOTP만 노출되면 자신의 모든 계정이 다 노출되는 것처럼 보인다. 하지만 실제로는 그렇지 않다. 바로 GOTP 부비트랩의 이중 인증 때문이다. 타인이 타 PC에서 공격을 하려면 GOTP 전에 패스워드부터 입력해야 하는데 이용자는 평상시에 패스워드를 입력조차 않기 때문에 패스워드를 알아내기가 그만큼 어려워졌다.
즉, 기존 사이트들이 GOTP 부비트랩을 도입하여 비록 GOTP가 노출되었다 해도 기존 패스워드 기반 때보다는 훨씬 안전해지는 것이다. 또한 패스워드와 GOTP를 서로 다른 주체가 운영 관리함으로써 어느 한쪽의 사고(서버 해킹, 운영자 유출사고 등)에도 안전해지는 효과가 있다.
<그림 10>은 GOTP인증센터와 가맹사이트, 그리고 이용자 간의 관계를 설명하고 있다.
로그인하려고 하는 이용자의 ID와 H/W정보를 확인한 가맹사이트는 GOTP인증센터에 이용자의 GOTP인증을 요청하고, GOTP인증센터는 이용자의 화면에 GOTP를 제시한다. 이용자가 자신의 GOTP를 통과하면 GOTP인증센터는 가맹사이트에게 그 인증결과를 통보하여 최종적으로 이용자의 로그인절차를 완료하도록 한다.
저작권자 © 컴퓨터월드 무단전재 및 재배포 금지