NAVER

질문 otp에 대한 질문
비공개 조회수 541 작성일2018.11.17
otp (one time password) 에 대해 공부중인데요 
밑에 3개 중에 아는게 한개라도 있다면 하나라도 알려주세요 

1. 버튼을 누르면 번호 6개가 나오는 방식의 otp는 따로 생성방식이 없고 그냥 랜덤으로 나오는건가요 아니면 다른 알고리즘 같은게 있나요? 있다면 알려주세요
2. 4자리 숫자를 넣으면 6개의 패스워드가 나오는 방식의 otp에 대해 알려주세요. 알고리즘이나 식으로요
3. otp가 s/key방식이 사용된다고 하는데 s/key 방식에 대해 자세하게 알려주세요. 예제로 임의의 숫자나 알파벳을 넣어서 최대한 이해하기 쉽게..

내공100
프로필 사진

답변자님,

정보를 공유해 주세요.

1 개 답변
1번째 답변
프로필 사진
실버스컬
태양신
#개인정보보호법 #2011파워지식인 #현업종사자 개인정보보호 2위, 보안 14위 분야에서 활동
본인 입력 포함 정보
OTP란 원타임 패스워드라고하는 일회용 패스워드를 말합니다. 방식은 여러가지 방식이 있는데 요즘에 많이 사용하는 방식은 TOTP(시간 동기화방식)을 많이 사용합니다. 

1. 만약에 OTP 버튼을 눌러서 6개의 버튼이 랜덤이라면, 인증에 사용할수 없을겁니다. OTP단말기와 서버는 동일한 OTP생성 알고리즘을 가지고 있습니다. 처음에 사용자별로 각기 다른 값을 공유하고, 공유된값과 시간값을  동일한 알고리즘에 돌린다면, 같은 사용자라도 시간마다 다른 값이 나올것이며, 공유된값이 다른사용자끼리도 서로 다른값이 나올겁니다.  그렇기 때문에 서버는 자신과 사전에 값을 교환한 올바른 사용자임을 확인할수 있는것이죠. 

2. 특정값을 넣으면 그 값을이용한 인증하는 방식은 제가 대학교때 썻던 논문과 비슷한 방식인것 같습니다(2010년)
 https://academic.naver.com/article.naver?doc_id=45675002

해당 내용을 보시면 패스워드를 입력받아서 해당 패스워드를 OTP를 이용해서 서버와 검증하는 방식입니다. 참고해보시기 바랍니다. 


3. s/key는 단방향 알고리즘인데, OTP를 생성하는 알고리즘에서 양방향 및 단방향 모두 써도 되는데, 단방향이 속도가 더 빠릅니다. (위에 논문에도 속도에 대한 부분이 나와있습니다) 인증만을 위한것이기 때문에 복호화가 필요없기에 빠른 단방향 알고리즘을 OTP생성 알고리즘으로 사용하면 빠르게 동작할수 있습니다. 

제 경우 논문에서 나온것은 시간값과, 키값을 hash한 값의 앞 8자리로 구현했습니다.  


2018.12.17.

도움이 되었다면 UP 눌러주세요!
UP이 많은 답변일수록 사용자들에게 더 많이 노출됩니다.