OTP란 무엇인가?

김문성·2024년 3월 26일

OTP(One Time Password)

1회용 인증수단을 의미한다.
보안성이 보장되어야 하는 서비스에 적용될 수 있으며, 특정 주기마다 비밀번호가 바뀐다.
실물 OTP 가 있고, 네트워크 시스템 상에 있는 OTP 로는 HOTP와 TOTP가 있다.

HOTP(HMAC Based OTP) :

이름 그대로 Hash 와 MAC을 기반으로 생성되는 1회용 비밀번호이다.

Hash - 일방향 암호화

MAC - Message Authentication Code : 송수신자 사이 데이터가 변경되지 않았음을 확인할 수 있는 기술
송신자와 수신자 사이에 Secret key 교환
MAC은 Secret Key로 메시지를 해시화 하여 메시지 뒤에 붙인다.
수신자는 보유하고 있는 secret key로 메시지를 해시화 하여 해시값이 같은지 확인한다.
다만 MAC은 기밀성을 보장하지 못하기 때문에 Hash와 합쳐져서 메시지+MAC값을 HASH해서 보내게 되는 것이다.

H-OTP는 위 HMAC의 원리를 이용하여 서버와 클라이언트가 모두 가지고 있는 counter라는 값에 대해서 event based로 클라이언트가 OTP 단말의 버튼을 누를 때 마다 Counter를 1씩 증가시키며 otp를 생성한다.

만약 OTP단말의 버튼을 여러번 누른 후 맞는 otp를 입력하게 되면 서버에서는 들어오는 counter를 계속 증가시키면서 맞는 값인지 대조를 하게 된다. 정해진 일정 횟수 만큼 증가시키면서 맞는 값이 오면 성공을, 일정 값을 넘어서면 실패 메세지를 반환하고 Counter 동기화 작업을 진행한다.

TOTP(Time OTP)

TOTP는 위 HOTP에서 Counter의 역할을 Time stamp로 대체한다. 따라서 일정 시간에 따라 OTP 값이 변하게 된다.

회사에서 한 MOTP가 즉 TOTP이다. PIN검증을 성공한 이 후 MOTP를 생성하여 PIN 검증 이후 30초간만 다음 프로세스를 진행할 수 있다고 볼 수 있다.

우리의 경우는 PIN 검증 이후 OTP 자동검증 프로세스로 진행되었다. 즉 OTP를 입력하지 않고 자동으로 검증하고 넘어간다고 한다. OTP를 입력하는 과정이 없는데 무슨 의미가 있을까?

0개의 댓글