티스토리 뷰

hacking/WEB hacking

OTP(One Time Password)

kiwiiiv 2021. 8. 4. 15:28

 

one time password로.. 한 번 사용하고 버리는 의미

 

HOTP

(HMAC-Based)

카운터?를 기준으로 값을 생성함.

 

TOTP(Time-Based)

현재 시간을 기준으로 값을 생성함.

 

이 때 python의 pyotp 라이브러리를 이용하여 간단하게 otp 값을 만들 수 있음.

구글의 OTP 또한 totp 방식을 사용하는데, 이 때 QR 코드를 스캔 후 auth token을 부여받는 방식으로 totp를 계산 가능하다.

 

OTP QR 코드를 생성

import pyotp

secret=""

pyotp.totp.TOTP(secret).provisioning_uri(name='', issuer_name='')
#otpauth://totp/issuer_name%20OTP:name?secret=secret&issuer=issuer_name%20OTP&period=120

주석 처리한 형태의 값을 생성 가능함.

 

 

 

OTP 인증 번호를 계산

import pyotp

secret=""

current_otp=pyotp.totp.TOTP(secret, interval=120).now()

print (current_otp)

이 때 secret 값만 알아낸다면 현재의 current_otp 값을 쉽게 계산 가능하다는 점을 알 수 있음

 

내가 내린 결론 

- totp 방식은 현재 시간과, secret 값을 기준으로 인증 번호가 생성됨.

(시간에 따라 결과값이 변하기 때문에 일회용이라고 함 .)

 

 

 

 

 

 


pyotp · PyPI

 

pyotp

Python One Time Password Library

pypi.org

 

'hacking > WEB hacking' 카테고리의 다른 글

tomcat manager  (0) 2021.08.18
chall11-chall20  (0) 2021.08.06
chall06-10  (0) 2021.08.01
SuperSecure OTP  (0) 2021.07.27
chall05  (0) 2021.07.23
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함