본문 바로가기

My Study/Programming&Theory

Time based Keystroke Password

이것저것 뉴스를 보다가 예전에 봤던 뉴스가 떠오르네요. 뉴스 주소가 생각이.. -_-;;


현재는 기본적으로 패스워드를 입력할 때 8자 이상 영문, 숫자, 특수문자 혼합.. 등등 여러가지 조건을 가지며 패스워드를 설정해야합니다. 뭐 당연히 보안을 위한거니 어쩔수 없는거지만 모든 사이트들이 쫌 통일좀 했으면 하는 바램이 있네요..


아무튼 사람들은 사이트들마다 다르고 긴 패스워드를 몇 개씩 기억할 순 없습니다. 그래서 짧으면서 기억하기 쉽고 그러면서 보안 또안 강력한? 패스워드를 만드는게 목표라고 하네요.


바로 무어냐?~ 기존 패스워드 입력 방식에 + 시간이라는 개념을 추가해서 더욱 강력하게 했답니다. 당연히 OTP를 말하는건 아닙니다. 


예를 들면 바로 이겁니다

패스워드를 1234를 설정한 경우 사용자가 1234 라는 문자열을 입력하는데 키보드 리듬 정보까지 추가한 것입니다. 리듬 정보란 시간 정보를 뜻하는 것이구요.


뭐 새롭게 발견하고 그런건 아니니 그냥 설명은 넘어가겠습니다.


전 휴일을 맞아 심심하던 찰나 이러한 패스워드 프로그램을 콘솔로 그냥 만들어보았습니다.

돌아가는 원리는 간단합니다.


1. 사용자는 "새로운 패스워드"와 "새로운 패스워드 확인" 까지해서 총 2개의 똑같은 문자열을 입력합니다.

2. 이 때 각각의 글자를 칠 때 걸린 시간 정보 또한 같이 저장을 합니다. 즉, 패스워드가 5글자면 4개의 시간 정보가 있겠지요.

3. 두 패스워드 정보를 토대로 평균 값을 내 새로운 패스워드를 확정 짓습니다.


여기까지 해서 새로운 패스워드(오리지널 패스워드)가 확정됩니다.


4. 사용자로부터 패스워드를 입력받습니다. 해당 패스워드의 시간 정보 또한 구하겠지요..

5. 오리지널 패스워드와 사용자로부터 입력받은 패스워드를 비교합니다.

   문자열 비교 + 시간정보까지 비교


당연히 사람이므로 처음 등록했던 패스워드 시간 정보와 똑같이 입력한다는 것은 불가능합니다. 그래서 전 나름대로 테스트 결과 15 밀리세컨의 ± 오차 값을 주었습니다.


시연~ ( 잘 안보이므로 브라우져를 크게.. 음.. 이게 우클릭 방지되어 있으면 못보는거 같은데.. 뚫어서 보세요 =_=; )



시연하면서 느낀건데 15 밀리세컨은 쫌 빡빡하네요..ㅋㅋ 

심심해서 만들어 봤습니다. 혹~~~ 시나 실제로 이걸 사용하게 되는 경우가 있다면 더욱 업그레이드 시켜봐야겠습니다 :D


역시 단순히 기계가 하는일과 휴먼 정보가 포함되니 더 잼있네요 흠흠...


NewPwd.exe


한번 재미삼아 해보실 분들은 해보세요~

'My Study > Programming&Theory' 카테고리의 다른 글

Windows DEP Exception 모니터링  (0) 2013.09.19
MMF을 이용한 Shared Memory  (2) 2013.08.20
CPU 캐시의 원리  (1) 2013.08.11
CPU의 파이프라인 실행의 원리  (8) 2013.08.08
Windows x64 binary 모듈 단위 이동  (7) 2013.07.27