속눈썹님의 블로그에서 트랙백: http://ilashman.cafe24.com/5393

OTP (One Time Password) Device라는것이 인터넷 뱅킹에서도 사용이 되고 있네요.
One Time Password란 한번만 사용할 수 있는 패스워드로, 보통 로그인 방식이 매번 같은 id와 같은 password를
사용하는 방식이라면 OTP는 이런것이죠.

처음로그인할때: 너 이름이 뭐지?
패스워드: 이코요

두번째로그인할때: 너 키가 몇이지?
패스워드: 1xx cm요

세번째로그인할때: 너 몸무게가 몇이지?
패스워드: xx kg요
One Time Password의 예


이렇게 매번 다른질문으로 사용자에게 질문을 하면 사용자는 그에 맞는 password를 입력함으로서
다른사람이 합법적 유저가 한 행위를 똑같이 반복함으로서 인증수단이 무효화되는 것을 방지하려는 거죠

오늘 속눈썹님의 블로그에서 재미있는 글을 봤습니다. HSBC의 OTP라고 해서 뭔가하고 봤는데...



HSBC의 OTP Device

이렇게 생긴 장치더군요. 속눈썹맨님의 궁금해 하신건

과연 이 device가 자체적으로 통신을 해서 HSBC와 password를 주고 받느냐 인데..

결론부터 말씀드리자면 "제 생각엔 아닙니다." 입니다.

만일 OTP라는게 One Time Password의 줄임말이라면 말이죠..



HSBC의 홈페이지에 가보니 OTP를 맨처음 사용할 때 뒤에있는 바코드의 일련번호를 입력해서 등록하는게 나오는데, 이것은 각각의 device에 저장된 6자리 password의 목록일꺼라 생각됩니다.

OTP의 일련번호: 0001
OTP 0001이 생성할 수 있는 번호 및 순서 100001, 300003, 600006, 200002, 400004

OTP의 일련번호: 0002
OTP 0002가 생성할 수 있는 번호 및 순서 500005, 700007, 900009, 800008, 100001
로그인 서버에 저장된 OTP관련 내용들(가정)

이런식으로 서버에 저장이 되어있겠죠, 꼭 번호가 다 틀리지 않아도 순서만으로도 다른 OTP가 만들어 질 수 있는겁니다. 하지만 그것도 어느정도의 범위가 지정되어 있겠죠, 앞뒤 50개사이에는 각각의 OTP가 같은 값을 가질수 없다 라던지 하는...

그리고 여러번 눌러놓고도 패스워드가 다 입력이 가능했다는것은 사용자의 실수를 만회하기 위해서 어느정도 여유를 둔것 같네요, 마지막 입력한 패스워드의 앞뒤 10개정도면 입력해도 받아들일수 있도록 말이죠...

어디까지나 제 생각입니다만..ㅋ 궁금하신게 해결되셨나 모르겠네요.


여담입니다만, 저게 통신이 가능하다면 아마 은박지로 쌓아놓으면 전파가 방해되어서 사용이 불가능할겁니다.
아니면 핸드폰이 처지지않는 지하라던지, 이런곳에서는 통신이 된다면 동작이 불가능 하겠죠.

하지만 결국 통신을 하지 않는다면 저 OTP는 버튼을 누를때마다 이미 저장되어있는 번호를 순차적으로 보여주는 장치라는 것밖에 되지 않는다는 거죠. 아주 약간의 메모리(6.56Mb: 하지만 이것은 0부터 999999까지 모든수를 저장했을때)와 버튼 스위치 하나, 그리고 메모리에 있는것을 액정에 표시하는 회로만으로 구성되어져있는 싸구려 장치이라는겁니다. 사실 무슨은행이 이런거에다가 통신이 되는 걸 집어넣겠습니까.. 쓸때마다 돈나오고 은행측에서는 유지비가 장난이 아닐듯 싶은데요.ㅎㅎ

'geek_stuff > today' 카테고리의 다른 글

티스토리 추천블로그?  (1) 2006.07.13
맥북을 지를까..  (3) 2006.06.21
HSBC의 OTP (One time password) device.  (3) 2006.06.01
Linear Shifted Array Generator  (0) 2006.05.31
Tistory 초대권 응모관련...  (17) 2006.05.27
Tistory.com Beta에서의 첫 글  (3) 2006.05.26
  1. 빨강커피 2006.06.01 23:59

    맞습니다. 통신을 하는 것이 아닙니다.
    시간동기 원타임 패스워드 인데요.
    그 단말기기에 시계가 내장되어 있어
    일정 시간(ex 60초)마다 난수를 발생 시킵니다.
    그 난수와 단말기 고유번호를 조합해서 패스워드를 만들게 되죠. 서버에도 단말기기와 시간이 동기되어 돌아가는 시계가 있어 매시간 발생하는 난수가 똑같은 겁니다.
    사이트에 이미 단말기 고유번호를 등록해놓았으니
    똑같은 패스워드를 생성하는 것이 가능 하겠지요?
    이것이 시간동기 원타임 패스워드의 원리 입니다.

    • !kKo 2006.06.02 00:48

      아.. 시간이란 변수가 있었군요.

      그럼 무궁무진하겠습니다.

      hash(current_time()+serial_number)

      이라고 한다면 거의 알아낼 방도가 없겠군요.

  2. 주현성 2006.06.02 01:05

    단순히 순차적이라고 한다면 역시나 synchronization문제가 있겠네요. ^^
    time window(tolerance)를 1~2분 쯤으로 주고 그 시간내에 가능한 모든 후보에 대해
    hash를 하는 방식이 역시 좋겠군요. :)

+ Recent posts