Tech Guide - OTP(One Time Password)
상태바
Tech Guide - OTP(One Time Password)
  • 승인 2005.11.18 00:00
  • 댓글 0
이 기사를 공유합니다

OTP로 강도 높은 보안 환경 구축 가능

내부 정보 유출 차단·높은 보안성 유지 … 기존 인증·호환성 고려해야

김해숙
퓨쳐시스템 전략기획팀 책임연구원
kimhs@future.co.kr

지난 5월에 발생한 인터넷 뱅킹 해킹 사고 이후로 전자 금융거래에 대한 불안감이 높아진 가운데, 정부가 내놓은 전자금융거래 종합 대책에 보면 일반인들에게는 낯설은 OTP(One Time Password: 일회용 패스워드 발생기)라는 단어가 눈에 띈다. 보안등급에 따라서 1일 이체 한도를 다르게 제한하겠다는 것이 일차적인 내용인데, 보안등급을 분류하는 기준을 살펴보면 ‘OTP 보유자 또는 HSM(공인인증서 복사방지 스마트카드 및 USB 저장장치) + 보안카드 보유자’를 가장 높은 등급인 1등급으로 분류해 놓았다. 도대체 OTP가 뭐길래 가장 높은 보안 등급으로 분류된 것일까?
여기서는 OTP에 대한 개념 소개와 현재 사용되고 있는 OTP 관련 기술에 대해서 살펴보자. <편집자>

우선 OTP는 한마디로 말하면, 우리가 능숙하게 사용하고 있는 사용자 아이디/패스워드(ID/Password) 기반 사용자 인증 시스템에서 고정된 패스워드(비밀번호) 대신에 매번 다른 패스워드를 입력토록 하는 패스워드를 OTP라고 하고, 확장된 의미로 이러한 패스워드를 생성해 주는 장치를 OTP라고 부르기도 한다. 콘솔로 로그인하는 시스템에서는 사용자 ID와 패스워드에 대한 도용 가능성이 낮지만, 고정된 패스워드를 사용해서 리모트로 접속하는 환경에서는 스니핑 공격을 통해서 패스워드 재사용 공격이 용이하기 때문에 이를 해결하기 위해 고안된 것이 OTP 솔루션이다.

사용자 인증이란?
서두에서 언급했던 것처럼 지난 5월에 발생한 인터넷 뱅킹 해킹 사고는 해킹 프로그램을 통해서 인터넷뱅킹 ID, 패스워드, 공인인증서 비밀번호, 보안카드 코드번호 등을 알아낸 뒤 범행을 저지를 것으로, ID와 패스워드 도용 사례는 가장 빈번한 해킹 방식이다. 그렇다면 아이디/패스워드 도용을 막을 방법은 무엇일까? 정확한 사용자 인증(authentication)이 해답이다. 사용자 인증 과정을 통해서 특정 사용자를 유일하게 식별할 수 있다면, 본인이 아닌 제 3자가 ID를 도용해서 발생할 수 있는 피해를 줄일 수 있기 때문이다.
사용자 인증이란 어떤 사람이 실제로 신고한(또는 주장하는) 바로 그 사람인지를 판단하는 과정으로, 인터넷 등에서의 사용자 인증은 대개 로그온 시에 사용하는 사용자 ID와 패스워드를 통해서 이루어진다.
그러나, 사용자 ID와 패스워드는 외우기 쉬워야 한다는 단점 때문에 추측해서 알아내거나 스니핑 공격 등으로 알아내는 등 노출 가능성이 높기 때문에 안전하지 못 하다. 패스워드 노출 가능성을 줄이고 패스워드가 노출돼도 ID 도용 가능성을 낮추기 위해 많은 경우에 ‘이중 요소 사용자 인증’ 방식이 많이 활용되고 있다.
사용자 인증에 사용되는 요소는 크게 사용자가 알고 있는 내용(ex. 패스워드), 사용자가 가지고 있는 물건(ex. 은행 현금 인출용 카드, OTP 토큰, 공인인증서), 사용자의 신체적인 특징(ex. 홍채, 지문, 정맥 및 얼굴 형태 인식) 등 세 가지 방식에 기반하게 된다.
앞에서 말한 것처럼, 사용자 ID와 패스워드를 이용한 사용자 인증 방식은 ID 도용 가능성이 높기 때문에 세 가지 사용자 인증 요소를 혼합한 이중 요소 사용자 인증(이중 인증, two-factor authentication)이 점차 대중화되고 있으며 대표적인 것이 ‘공인인증서 + 보안카드’, 비밀번호를 입력하는 OTP 토큰 등이 있다.

OTP 구현 방식
이중 요소 사용자 인증의 대표적인 방법인 OTP는 기본적으로 암호학적인 아이디어를 바탕으로 고안된 것으로 보안성이 높고 사용하기에 편리한 방식이다. 매번 다른 패스워드를 사용하기 때문에 고정된 패스워드를 사용하는 방식과 달리 패스워드 재사용 공격이 불가능하고, 암호학적 알고리즘을 사용하기 때문에 기존에 사용된 패스워드로부터 다음에 사용될 패스워드를 예측하는 것이 불가능하며, 따라서 안전하다.
<그림 1>에서와 같이 OTP 토큰 또는 사용자 PC에 저장된 OTP용 프로그램에 사용자 비밀번호와 일회용 비밀번호 생성용 입력값을 입력하면, 암호 알고리즘을 사용해서 일회용 패스워드를 생성하게 된다.
여기서 들어가는 입력값(위의 그림에서 시퀀스 카운터 부분)을 매번 다른 값으로 입력해야 일회용 패스워드가 생성되며, 이 입력값을 어떤 값으로 입력하는가에 따라 시간 동기화(Time Synchronous) 방식, 첼린지 리스펀스(challenge-response) 방식, 이벤트 동기화(Event Synchronous) 방식으로 분류된다. 지금부터 고전적인 OTP 방식인 S/Key 방식과 위에 언급한 세 가지 OTP 방식에 대해 기술적인 특징을 살펴 보자.


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.