이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 12357|회답: 0

동적 토큰 OTP, TOTP, HOTP의 차이점

[링크 복사]
게시됨 2020. 7. 25. 오후 4:41:17 | | | |
개요

2단계 인증(2FA라고도 함)은 두 가지 다른 인증 방식을 결합하여 사용자를 인증하는 메커니즘입니다. 2011년 3월, 구글은 온라인 2단계 인증을 도입한다고 발표했으며, 이어 MSN과 야후도 도입되었습니다.

사용자 이름과 비밀번호 확인 외에도, 이중 인증은 RSA 토큰이나 휴대전화와 같은 다른 물리적 기기의 조합을 필요로 합니다.
이중 인증 제품은 크게 두 가지 범주로 나눌 수 있습니다:

토큰을 생성할 수 있는 하드웨어 장치
스마트폰 앱

OTP

2단계 검증에 사용되는 비밀번호는 일회성 비밀번호(OTP)로, 동적 비밀번호라고도 불립니다. 이는 암호화 기술을 사용하여 클라이언트와 서버 간에 키를 공유하는 강력한 인증 기술로, 현재의 정적 비밀번호 인증을 향상시키는 매우 편리한 기술적 수단이며, 중요한 2단계 인증 인증 기술입니다.

OTP는 일회용 비밀번호(One-Time Password)의 약자로, 일회성 비밀번호를 의미합니다. 이 종은 다음과 같은 두 가지 유형으로 나뉩니다:

HOTP (HMAC 기반 일회용 비밀번호 알고리즘)

HOTP는 ITEF에서 발표한 알고리즘 명세인 HMAC 알고리즘(이벤트 동기화용 동적 비밀번호라고도 함)을 기반으로 생성된 일회성 비밀번호이며, 의사코드는 다음과 같습니다:



클라이언트와 서버는 일회용 비밀번호를 생성하기 위해 미리 키 K를 협상합니다. 클라이언트와 서버는 각각 이벤트 카운터 C를 가지고 있으며 카운트 값을 미리 동기화합니다. 트런케이트는 HMAC-SHA-1에서 생성된 20바이트 문자열을 여러 소수점으로 변환하는 알고리즘입니다.

TOTP (시간 기반 일회용 비밀번호 알고리즘)

TOTP는 HOTP의 이벤트 카운터 C(시간 동기화를 위한 동적 암호라고도 함)를 대체하기 위해 시간을 사용하는 개선된 HOTP의 버전입니다. 의사코드:


T0은 초기 테스트 시간으로, 기본값은 0입니다  
X는 기본 30초로 설정된 시간 단위입니다
공식 문서에는 현재 유닉스 시간 = 59, T0 = 0, X = 30, 그리고 T=1을 가정하는 조건으로 요약되어 있습니다
현재 유닉스 시간=60, T0=0, X=30, 그리고 T=2를 가정할 때
즉, T의 값을 반올림하고 소수점은 버려집니다



위 그림에서 볼 수 있듯이, 입력 알고리즘에는 두 가지 주요 요소가 있는데, 하나는 공유 키(시드라고도 함)이고, 다른 하나는 특정 알고리즘에 의해 계산되는 카운팅(시간 인자)입니다. 두 요소가 일관되면, 서버 측과 클라이언트 측이 동일한 결과를 계산하여 인증 기능을 가능하게 합니다.





이전의:Angular 9 시리즈(XII)는 OTP를 기반으로 동적 토큰을 생성합니다
다음:.NET/C#은 TOTP를 기반으로 일회용 비밀번호를 생성합니다
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com