OTP

OTP(One Time Password: 일회용 패스워드)는 기존의 일반적인 사용자 인증방식과 달리 1회에 한해 사용할 수 있는 비밀번호로 매번 다른 비밀번호를 이용하여 사용자를 인증하는 방식이다.

OTP(One Time Password: 일회용 패스워드)는 기존의 일반적인 사용자 인증방식과 달리 1회에 한해 사용할 수 있는 비밀번호로 매번 다른 비밀번호를 이용하여 사용자를 인증하는 방식이다.

즉, 기존의 사용자 인증방식은 고정된 패스워드를 이용하여 암호화 등을 이용하여 전송하는 방식이나 OTP는 일정주기에 의해 지속적으로 변경되는 패스워드(일회용 패스워드)를 이용하는 인증방식이며 이때, 사용자 인증을 위해 사용되는 일회용 패스워드를 일반적으로 Pass-Phrase라고 한다.

Challenge/Response 방식

난수표 BC29식(보안카드)

사용자의 패스워드를 대신하여 난수표(보안카드)라 불리우는 별도의 코드표에 기록된 값을 Pass-Phrase로 이용하며 일반적으로 인터넷뱅킹 등에서 이용하고 난수표 방식의 일반적인 인증 절차는 다음과 같다.

난수표 방식의 인증 절차(이미지)

Challenge/Response 방식

Challenge/Response방식은 사용자가 인증 요구와 함께 사용자 식별 번호(PIN)를 인증 서버에 전달하면 인증 서버는 난수를 생성하여 challenge로 사용자에게 전달한다.

이와 동시에 인증 서버는 이용자의 사용자 식별 번호에 해당하는 패스워드를 키 데이터베이스에서 꺼내 이것을 이용하여 난수의 암호화를 시작한다.

Challenge를 받은 사용자는 그것을 자신의 패스워드로 암호화하여 response로 인증 서버에게 반환하다. 사용자로부터 response를 받은 인증 서버는 서버 자신이 계산한 값과 수신된 response 값을 비교하여 일치하는 경우에 사용자를 정당한 사용자로 인증하게 되며 Challenge/Response 방식의 일반적인 인증 절차는 다음과 같다.

Challenge/Response 방식 인증 절차(이미지)

SW Token 방식

클라이언트용 SW프로그램

사용자는 일회용 패스워드를 생성하기 위해 별도의 클라이언트용 프로그램을 이용하게 되며 이때, 서버에서는 해당 사용자를 인증하기 위하여 SEED라 불리우는 Challenge값을 이용하게 된다.

클라이언트용 SW프로그램의 일반적인 인증절차는 다음과 같다.

  • 통신 프로그램을 수행하기 전에, 사용자는 SW 프로그램 실행
  • 사용자는 서버에 접속하여 자신의 ID 입력
  • 시스템은 seed “unix3”과 일련 번호 54를 포함하는 challenge를 사용자에게 전송
  • 사용자는 SW프로그램 Challenge 입력창에 seed값 입력.
  • 사용자는 SW프로그램 패스워드 입력창에 자신의 Secret Password 입력
  • 사용자는 SW프로그램의 compute with MD4 변환 버튼 클릭
  • 사용자는 서버 인증을 위해 One Time Password 전송

클라이언트용 SW 프로그램 화면 및 인증 절차(이미지)

Time Synch 방식

Time-Synchronous 방식은 일반적으로 매분마다 하나씩의 난수를 생성하기 위해 난수 생성 알고리즘과 64비트 크기의 비밀키가 필요하다. 각각의 사용자에게는 특정키가 할당되어 있는데, 이것은 지능형 토큰과 인증 서버의 데이터베이스에 저장된다.

사용자가 응용 서비스를 제공받기 위해 응용 서버에 로그인을 시도하면, 서버는 4개의 숫자로 이루어진 PIN(Personal Identification Number)과 6개의 숫자로 이루어진 난수를 요구하게 된다. 6개의 숫자로 이루어진 난수는 토큰으로부터 생성된다.

토큰에서 생성되는 난수는 토큰 안에 저장되어 있던 비밀키와 시간을 초기 값으로 하여 토큰 안의 알고리즘을 통해 만들어진다.

이렇게 만들어진 10개의 숫자가 서버로 가게 되면, 서버는 4개의 숫자(PIN)를 인덱스로 하여 서버의 데이터베이스에서 해당 비밀키를 찾는다. 이런 다음 서버 측에서도 알고리즘에 시간과 비밀키를 넣어 생성된 6개의 랜덤 숫자들을 수신된 6개의 랜덤 숫자와 일치하는지를 검사하여, 그 두 개의 숫자들이 서로 일치하게 되면 서비스에 대한 이용 권한을 부여하게 되어 사용자 인증 절차가 완료된다.

일반적인 Time Synch 방식 인증 절차(이미지)

HW기기

HW기기방식은 매분마다 자동적으로 Pass-Phrase를 생성하며 사용자는 클라이언트용 SW프로그램과 같은 별도의 과정없이 HW기기의 화면에 표시된 값을 입력하면 된다.

HW 기기 방식의 인증 절차(이미지)

MOTP 방식

Mobile OTP(전용휴대폰 방식)은 HW기기 방식과 동일하나 휴대폰을 이용한다는 차이점이 존재하며 이를 별도의 전용 휴대폰에 난수 생성을 위한 휴대폰 기반의 애플리케이션을 다운로드 하여 설치하여야 한다.

전용 휴대폰방식의 인증 절차(이미지)

E-Mail 방식

일반적으로 웹상에서 불특정 다수의 사용자들이 비밀번호 등을 잊어버렸을 경우 임시로 사용할 수 있는 패스워드를 발급할 때 이용된다.

서버는 임시로 사용할 패스워드를 E-Mail을 이용하여 사용자에게 전송하며 일반적으로 E-Mail 주소는 사전 등록된 주소를 이용한다.

E-mail 방식의 인증 절차(이미지)

SMS(문자메세지) 방식

사용자에 대한 패스워드를 평상시에는 부여하고 있지 않으며 시스템 접속 시에만 서버에서 생성하여 사용자에게 휴대폰의 문자 메세지로 전송하는 방식이다.

이 방식은 사용자 패스워드에 대한 부가적인 관리가 필요하지 않는 특징이 있으며 문자전송 시 이에 대한 비용이 발생한다.

일반적으로 서버에서는 사용자 인증을 위한 문자 메세지 전송 후 일정시간(보통 1분)동안 해당 연결을 유지하며 일정시간 동안 패스워드 입력이 없으면 해당 연결을 해지한다.

문자메세지방식의 인증 절차(이미지)

OTP 방식별 장, 단점

일반적으로 일회용 패스워드를 구현하기 위한 방식별 장,단점은 다음과 같다.

매체 장점 단점
난수표 • 기존 시스템을 활용한 구현 용이
• 난수표 발급 비용 저렴
• 카드 형태로 휴대 간편 및 사용 용이
• 난수표에 대한 복제 용이
• 난수표 코드표(PassPhrase)에 대한 경우의 수 제한적(ex.35개)
• PassPhrase 유추 상대적 용이
클라이언트용
SW프로그램
• PassPhrase 유추 불가
• HW기기방식에 비해 구축 비용 저렴
• 개별 PC 설치에 따른 분실 위험 없음
• PIN입력을 통한 추가 인증 구현(Two factor 인증)
• PIN값을 알고 있을 경우 시스템 접속 가능
• S/key방식의 경우 상대적으로 암호화 수준 낮음(MD4)
• 사용방법이 타 방식에 비해 어려움
HW Token • PassPhrase 유추 불가
• 사용자별 고유 인증기기 사용을 통한 추가 인증 구현(Two factor 인증)
• PIN의 별도 입력이 필요 없음(PIN 필요 기기 존재)
• HW기기 분실에 대한 위험 높음
• 보안카드에 비해 휴대 불편
• HW기기 구입 및 시스템 구축 비용 고가
• 건전지 수명에 따른 기기 변경 필요
MOTP • PassPhrase 유추 불가
• 사용자별 고유 인증기기 사용을 통한 추가 인증 구현(Two factor 인증)
• 시간 동기화 용이
• 분실위험이 HW Token방식에 비해 상대적으로 적음
• 전용 휴대폰 필요(ex. SKT(SKVM,WIPI ), KTF(Brew), LGT(JavaStation)
• 시스템 구축 비용이 타 방식에 비해 높음
E-Mail • 불특정 다수 사용자 이용 용이
• OTP이용을 위한 별도의 모듈이 필요하지 않음
• 타 방식에 비하여 중앙집중 관리 용이 및 사용자 조작 용이
• 모든 사용자가 메일 전송/회신을 위한 인프라 환경이 구축되어야 함
SMS • 불특정 다수 사용자 이용 용이 및 네트워크 환경에 영향을 받지 않음
• OTP이용을 위한 별도의 모듈이 필요하지 않음
• 타 방식에 비하여 중앙집중 관리 용이 및 사용자 조작 용이
• 핸드폰 발송을 위한 시스템 구축 비용 및 문자 메시지 전송 시 지속적인 비용 발생