Skip to content

⌨️ User Verification based on Keystroke Dynamics / Two-factor Authentication technology based on Key-Stroke

License

Notifications You must be signed in to change notification settings

Xenia101/KeyStroke-Dynamics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

User Verification based on Keystroke Dynamics

사용자 인증 시 개인마다의 고유한 키보드 입력 패턴을 분석하여 사용자에 대한 인증을 수행하는 서비스입니다.

Keystroke-Dynamics 란?

Keystroke dynamics, keystroke biometrics, typing dynamics and lately typing biometrics, is the detailed timing information which describes exactly when each key was pressed and when it was released as a person is typing at a computer keyboard. WIKIPEDIA

설치 방법

해당 프로젝트는 웹 기반으로 동작합니다.

  • Python Flask
  • k-NN Based

동작 방식

Key-Stroke Dynamics 기반 사용자 인증 방식과 기존 Legacy와의 비교 동작 방식입니다.

검증 결과

  • k-NN 기반 사용자 식별 및 최적의 운영 파라미터 설정

    • Euclidean distance 방식의 거리측정

    • 정확한 데이터분석을 위해 Cross-Validation 이용

    • 다수의 최적화 시험을 통해 k=3에서의 majority 기반 사용자 식별 진행

    ↑ 해당 모델의 Cross-Validation 동작 프레임과 결과 그래프 예시

    k값이 3일 경우 오류가 가장 적게 발생한다는 것을 알 수 있다. 따라서 이 모델에 적합한 k값을 구할 수 있다.

  • 5-Cross Validation 기반 분석결과

    97.6%, 92.2%, 97.1%, 100%, 97.1% 으로 평균 Accuracy 96.8% 결과 산출

대용량 데이터 운영방안 (Fast kNN)

  • Hash bit 길이

    Google은 80억 개의 웹 페이지의 경우 Simhash 64 bit면 충분하다고 함

    Google의 논문은 전체 웹 페이지를 64 비트 지문으로 매핑하는 f = 64 사용해 k값(Hamming distance) 검증 실험 진행

  • Hamming distance

    • Google은 k=1~10까지 변화시켜 실험 진행

    • K값이 매우 낮으면 거의 중복되는 것이 없고, 매우 높은 값은 잘못된 웹페이지를 중복으로 지정함

    • Precision(정밀도)과 Recall이 0.75에 가까운 k=3을 선택하는 것이 타당함

64비트의 Simhash의 경우 3비트 이내로 다를 때 두개의 웹 페이지를 거의 중복으로 판단하면 높은 정확도 도출 가능

  • Simhash 고속분석(permutation and prefix matching)

    • 4bit Simhash, hamming distance 4 이하 검색 시

    • Simhash를 5개 영역으로 구분(13, 13, 13, 13, 12 bit)

    • hamming distance 4이하면, 5개 block 중 최소한 1개는 일치해야 함

    • 1개 block이 일치할 경우, 전수검색하여 분석

    a b c d e
    d1 0100101010001 1101001010010 0100101100111 0100010101001 010010110010
  • Example

    • 100억개 data, 64bit Simhash, hamming distacne 4일때

    • 5개 block 중 가장 작은것은 12bit로 구성되며, 4,096개 값 존재

      • 즉, 100억개 data는 4,096개 값 중 하나로 매핑됨(1개값에는 약 24,414개 data 존재))
    • 총 5개 block이므로, 최대 12만여개로 100억 대비 0.0012% 비교로 분석가능