파이썬에서 사용자를 위한 2단계 인증을 쉽게 진행할 수 있도록 도와주는 라이브러리가 있어서 소개해드리려고 합니다
Pyotp라는 라이브러리를 사용하면 단 코드 몇 줄로 쉽게 2단계 인증을 진행할 수 있습니다
실제로 2단계 인증은 많은 프로그램에서 사용되고 있습니다 스팀이나 배틀넷등 게임 런처에도 많이 사용되고 있으며 실제로 스팀 2단계 인증이 활성화되어있는 경우 계정을 로그인하고 발급되는 일회용 키를 지정된 시간 안에 프로그램에 입력하여 일치할 경우 로그인이 됩니다 이는 사람이 아닌 매크로를 사용하거나 부정사용자가 계정을 접속하거나 개인정보 유출방지를 위하여 만든 인증수단입니다
2단계 인증 라이브러리 설치
pyotp 문서 사이트에 접속해보면 자세한 내용이 나와있으며 설치 명령어도 pip install pyotp로 매우 간단합니다
터미널에 해당 명령어를 입력하여 설치를 진행해 주세요
설치 명령어를 입력하고 위와 같이 Successfully installed 문구가 나오면 성공적으로 설치가 됩니다
해당 라이브러리를 활용하여 사용가능한 명령어는 깃허브 홈페이지에 자세히 나와있습니다
비밀 키 생성하기
Google Authenticator 및 기타 OTP 앱과 호환되는 32자 base32 암호를 생성하는 코드입니다
키를 생성 후에 출력해보면 위와 같이 base32 암호가 생성되는 걸 확인할 수 있습니다
otp 서비스 제공자만 해당키를 보유해야 하며 다른 사람에게 이 키가 유출되면 안 됩니다 키가 유출될 경우 다른 사람이 해당키를 사용하여 동일한 일회용 암호를 생성할 수 있습니다
위의 비밀키는 random_base32() 함수를 사용한 random키가 아닌 직접 따로 32자리 키를 설정하여도 됩니다
일회용 OTP키 생성하기
동일한 키가 나오는 걸 보여드리기 위해 이번에는 비밀키를 직접 지정하였습니다
일회용 OTP키 인증하기
사용자로부터 인증받기
이번에는 사용자에게 값을 입력받아 OTP코드를 통해 인증을 해보겠습니다