← 프로젝트 목록

Backend Project · 05

Keystroke Auth

타이핑 리듬(Dwell·Flight Time) 기반 연속 인증 프로토타입. 사용자별 IsolationForest로 로그인 입력 패턴의 이상을 탐지하고, 이상 시 이메일 OTP로 폴백한다. AI 해커톤 경진대회에서 대상을 받았다.

Python 3.12FastAPIscikit-learnIsolationForestSQLAlchemyaiosmtplib
Overview

타이핑 리듬(Dwell·Flight Time) 기반 연속 인증 프로토타입. 사용자별 IsolationForest로 로그인 입력 패턴의 이상을 탐지하고, 이상 시 이메일 OTP로 폴백한다. AI 해커톤 경진대회에서 대상을 받았다.

Problem

비밀번호 한 번의 검증만으로는 로그인 이후 계정 탈취나 세션 도용을 즉시 구분하기 어렵다. 사용자의 입력 리듬을 추가 신호로 활용하되, 오탐으로 정상 사용자를 차단하지 않도록 이상 상황에서만 추가 인증으로 전환할 필요가 있었다.

Architecture
Keystroke Auth 아키텍처원문 키 입력을 저장하지 않고 특징 벡터만 비교하는 인증 흐름입니다.

01 · 등록

브라우저에서 타이밍 특징을 추출해 사용자 템플릿 생성

  1. 01Browser Capturekeydown · keyup
  2. timing only
  3. 02Feature Extractordwell · flight time
  4. enroll
  5. 03Template Store암호화 특징 벡터

02 · 인증

새 샘플의 유사도를 계산해 임계값으로 판정

  1. 01Login Sample현재 입력 패턴
  2. extract
  3. 02Similarity Scorer정규화 · 거리 계산
  4. score
  5. 03Decision Policy임계값 · 재시도
  6. decide
  7. 04Auth Result허용 · 거부
  • 사용자·클라이언트
  • 애플리케이션
  • 데이터
  • 비동기 처리
  • 배포
  • 관측
  • 보안·검증
  • 외부 시스템

Next Step

프로젝트에 대해 더 이야기해 보세요.

연락하기