OTP는 인터넷에서 한 번만 사용하는 일회용 비밀번호를 말한다. 같은 암호를 반복할 때 보안 위험에 노출되는 것을 줄이기 위한 목적으로 등장했다. 특히, 인터넷 뱅킹에서 사용되면서 활성화되었다. 일반적으로 은행 거래용 OTP 장치가 먼저 떠오르지만, 온라인 게임에 접속하거나, 웹 사이트에 가입하기 위해서 앱 혹은 이메일로 발급받는 일회용 비밀번호도 OTP에 해당한다.
OTP의 원리는 무엇일까? 우리 삶에서 알게 모르게 자주 사용되던 OTP의 원리는 무엇일까? OTP의 여러 사용자 인증 기법으로는 시간 동기화 방식, S/KEY 방식, 챌린지/응답 방식, 이벤트 동기화 방식이 있다.
1. 시간 동기화 방식: 시간 동기화 방식은 은행용 OTP에서 많이 채용하는 방식으로, OTP를 생성하기 위해 사용하는 입력값으로 현재 시각을 사용하는 것이다. 인증 번호를 입력하는 쪽과 검증하는 쪽이 같은 시간에 같은 코드를 생성해 비교한다. 이 방식은 OTP에 내장된 시계의 시간과 은행 서버의 시간이 같을 때만 인증할 수 있다.
2. 이벤트 동기화 방식: 이벤트 동기화 방식은 OTP 토큰과 OTP 인증 서버의 동기화된 인증 횟수인 카운트를 기준으로 사용자가 인증을 요청할 때마다 OTP 값을 생성하여 서버와 클라이언트가 카운트 값을 똑같이 증가 시켜 해당 카운트 값을 입력값으로 OTP를 생성해 인증하는 방식이다.
3. 챌린지/응답 방식: 챌린지/응답 방식은 서버에서 난수(무작위로 만들어진 수열)를 생성해, OTP 기계에 전송하면 그 값으로 OTP를 생성해 응답한 값으로 인증하는 방식이다.
4. S/KEY 방식: S/KEY 방식은 벨 통신 연구소에서 개발한 방식이며, 유닉스 계열 OS에서 인증을 위해 사용되고 있다. 해시 체인 기반 알고리즘을 이용한다. 그 방식은 다음과 같다.
1) 클라이언트에서 정한 임의의 비밀키를 서버로 전송하고
2) 클라이언트로부터 받은 비밀키를 첫 값으로 사용하여, 해시 체인 방식으로 이전 결과값에 대한 해시 값을 구하는 작업을 n번 반복하고,
3) 생성된 n개의 OTP를 서버에 저장한다.
[저작권자ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]