Click or drag to resize

OTP 생성

각 개인별로 OTP 계정을 생성할 수 있습니다. 생성된 OTP 계정을 스마트폰에 있는 Google OTP 앱에 등록해 6자리 임시 비밀 번호를 생성할 수 있습니다.

OTP 보안키 생성

VBScript
Set otp = Server.CreateObject("TABS.GoogleOTP")

'보안키를 생성합니다.
'EYMSKXXCTNIB3H3Z와 같은 16개 문자로 구성된 보안키가 생성됩니다.
otp.MakeSecretKey
secretKey = otp.SecretKey

MakeSecretKey 메서드를 호출하면 매번 새로운 보안키가 생성됩니다. 보안키는 OTP 숫자를 생성하는 기초가 되는 값으로 생성한 사람(로그인한 계정) 외에는 공개되어서는 안 되는 매우 중요한 값입니다.

생성한 보안키가 Google OTP 앱에 등록되면 이 보안키를 계정 데이터베이스에 저장하도록 합니다. 향후 로그인 시 사용자는 Google OTP 앱을 사용해 6자리 숫자로 구성된 임시 비밀 번호를 생성해서 입력하게 되고 이 값이 올바른지 확인할 때 보안키가 사용됩니다.

Google OTP 앱에 계정 등록

Google OTP 앱은 바코드 스캔 기능을 제공해 편리하게 OTP 계정을 생성할 수 있습니다. 아래 코드는 보안키를 생성하고 해당 보안키 기반으로 OTP 계정을 생성하는 예제입니다. OTP 계정은 발급자(issuer), 계정(account), 보안키(secretKey)로 구성되며 아래 코드에서 authUri로 표현됩니다.

generate.asp
<%
Set otp = Server.CreateObject("TABS.GoogleOTP")

issuer = "탭스랩"
account = "guest"
otp.MakeSecretKey
secretKey = otp.SecretKey
authUri = otp.GetTOTPAuthURI(issuer, account)
Session("AUTHURI") = authUri
%>
<p>QR 코드 이미지: <img src="qrimage.asp" /></p>

이러한 계정 정보를 직접 입력하는 대신 QR 코드를 사용해 자동으로 입력할 수 있습니다. authUri 값을 GetQRCodeImage 메서드의 입력으로 사용해 QR 코드 이미지를 생성할 수 있습니다. 아래 예제는 QR 코드 이미지를 생성해 HTTP 응답으로 전송하는 코드입니다.

qrimage.asp
<% 
Dim otp, imageData

Set otp = Server.CreateObject("TABS.GoogleOTP")
imageData = otp.GetQRCodeImage(Session("AUTHURI"), 4, "#000000", "#ffffff")

Response.ContentType = "image/png"
Response.BinaryWrite imageData
%>

Google OTP 앱을 실행한 후 아래 그림과 같이 바코드 스캔 기능을 이용해 자동으로 등록할 수 있습니다.