ㅁ 개요
O 프로그램 소개
- 이번 프로그램은 파이썬으로 OTP(One Time Password)를 만들어 실제 서버에 적용하는 과정에 대하여 알아보겠습니다.
우리 프로그램은 다음과 같은 순서로 진행 됩니다.
1.서버에서 QR코드 생성 후 이용자에게 QR코드 이미지 배포
- QR코드 이미지에는 6자리의 임시 비밀번호를 생성할 수 있는 보안상 가장 중요한 secret Key를 포함하고 있으며, 보통 웹사이트를 통해 text secret Key와 함께 제공되고 그 자리에서만 확인하고, 사라지게 되는데, 여기서는 QR코드 이미지만 생성하고 이용자에게 제공했다고 가정합니다.
2.이용자는 1에서 전달받은 QR코드 이미지로 부터 secret Key를 획득
-이용자가 1에서 전달받은 QR코드이미지로 부터 QR코드 스캐너 등을 통하여 secret Key를 얻고, 이를 구글 OTP앱에 등록하여 아래 3에서 우리가 구축한 서버에 직접 2 factor 인증에 사용합니다.
3.서비스 제공업체는 서버 구축 시 인증 로직에 구글 OTP알고리즘을 적용
- 특정 서비스를 제공하는 회사가 로그인 인증을 강화하기 위하여 서버 구축 시 2팩터 인증(구글OTP)을 적용하는 방법을 알아봅니다.
여기서는 OTP에 집중하기 위하여 로그인 부분은 최대한 단순하게 처리하고 쉽게 이해할 수 있도록 합니다.
4.로그인 페이지에 이용자가 로그인 시도 및 이용자가 입력한 OTP 생성 번호가 맞는지 확인
- 실제 서비스에 접속한 이용자가 로그인 시 id/pw + otp를 입력하게 되는데, 이용자가 입력한 otp값(임시 비밀번호)이 서버측에서 생성된 otp값(임시 비밀번호)과 같은지 비교합니다.
- 최종 완성된 프로그램의 결과화면은 아래와 같습니다.
1.먼저 이용자는 구글OTP앱을 실행하고 QR코드 이미지로 부터 획득한 secret Key를 등록(아래의 경우 '파기차차')한 후 OTP 값(임시 비밀번호 6자리)을 확인합니다.
-그리고 나서 이용자가 순서대로 ID, PW와 위에서 생성된 OTP 값을 입력합니다.
아래에서는 1번째 '111111'을 잘못 입력하여 로그인 실패 후 다시 정확한 값('720962')을 입력하여 로그인에 성공하였습니다.
O 시작전 준비 사항
1. 프로그램을 실행하기 위해서는 아래 모듈들이 필요합니다. 아래와 같이 임포트(설치) 해줍니다.
import onetimepass as otp # pip install onetimepass (파이썬용 구글 otp 모듈 적용)
import qrcode # pip install qrcode
※ 설치 시 에러가 발생거나, 궁금하신 점이 있으시면 댓글로 문의 주시면 친절하게 답변드리겠습니다.
오늘은 여기까지이며, 위의 내용이 유익하셨다면, 좋아요와 구독 부탁드립니다.
감사합니다.
※ 추가적인 정보는 아래 유튜브 영상에서 해당 내용을 더욱 자세히 보실 수 있습니다.
'파이썬 실습 > 구글OTP 로그인 인증을 클라이언트&서버에 적용해 보기' 카테고리의 다른 글
파이썬 구글OTP 클라이언트/서버에 적용하기 - 3.로그인 페이지 접속 후 2팩터 인증하기 (0) | 2023.01.19 |
---|---|
파이썬 구글OTP 클라이언트/서버에 적용하기 - 2.QR코드생성 및 서버에 구글OTP알고리즘 적용 (0) | 2023.01.19 |