Keystroke Dynamics ile Kimlik Dogrulama
Bu proje CMU Keystroke Dynamics Benchmark Dataset uzerinde davranissal biyometri ile kimlik dogrulama yapar. Varsayilan model, her kullanici icin ayri egitilen one-class k-NN anomalilik skorlayicisidir.
CMU veri setinde 51 kullanici, .tie5Roanl parolasini 8 oturumda toplam 400 kez yazmistir. Resmi protokole uygun olarak her hedef kullanici icin ilk 200 ornek egitimde, son 200 gercek kullanici testi icin, diger kullanicilarin ilk 5 ornegi ise sahte giris testi icin kullanilir.
python -m pip install -r requirements.txt
$env:PYTHONPATH = "src"Kisa yol:
python scripts/install_requirements.pypython -m keystroke_auth.cli download --output data/DSL-StrongPasswordData.csvKisa yol:
python scripts/download_dataset.pyBu komut dosyayi CMU kaynagindan indirir ve resmi MD5 ozetiyle dogrular.
Tarayici tabanli arayuz FastAPI ile yerelde calisir. Ana ekran ozel parola
profili olusturma ve dogrulama akisini gosterir. CMU veri seti, k-NN ayarlari,
FAR/FRR/EER grafikleri ve akademik degerlendirme tablolari Evaluation / Research Mode bolumunun altindadir.
python scripts/run_ui.pySonra tarayicida acin:
http://127.0.0.1:8000
Canli test bolumu .tie5Roanl ve Enter dizisini bekler. Tarayici tus basma ve
birakma zamanlarini olcer, FastAPI arka ucu mevcut k-NN modelini egitir, skoru
hesaplar ve esige gore kabul/ret karari dondurur.
Web arayuzundeki Custom Password Profiles bolumu, CMU veri setinden bagimsiz
yerel profil olusturur.
Akis:
- Profil adini ve istediginiz parolayi girin.
Samplesalaninda kac kayit denemesi alinacagini secin.Start Enrollile parolayi ayni kullaniciya birden cok kez yazdirin.- Yeterli ornekten sonra
Save Profileile profili kaydedin. Saved Profilelistesinden profili secipStart Verifyile baska kisilerin ayni parolayi denemesini saglayin.
Ozel profiller models/custom_profiles.json dosyasinda yerel olarak saklanir.
Bu dosya parola ve klavye zamanlama verisi icerdigi icin .gitignore icindedir.
python -m keystroke_auth.cli evaluate `
--data data/DSL-StrongPasswordData.csv `
--features all `
--k 5 `
--output reports/knn_results.csvKisa yol:
python scripts/evaluate_knn.pyOznitelik secenekleri:
hold: yalnizca tus basili kalma sureleri (H.*)dwell:holdile ayni anlamda tutulurlatency: digraph sureleri (DD.*veUD.*)all: tum zamanlama oznitelikleri
Cikti metrikleri:
FAR: sahte kullanicinin kabul edilme oraniFRR: gercek kullanicinin reddedilme oraniEER: FAR ve FRR'nin esitlendigi yaklasik hata orani
Veri setinden satirlari sirayla akitip canli karar verme davranisini gormek icin:
python -m keystroke_auth.cli realtime-sim `
--data data/DSL-StrongPasswordData.csv `
--subject s002 `
--attempts 12 `
--delay 0.25Kisa yol:
python scripts/realtime_sim.py --subject s002Testleri calistirmak icin:
python scripts/run_tests.pyk-NN sonuclarindan grafik uretmek icin:
python scripts/plot_knn_results.pyWeb arayuzundeki canli yakalama bolumu .tie5Roanl ve Enter dizisini bekler,
hold/UD/DD oznitelik vektorunu olusturur, egitilmis k-NN modeliyle skoru
hesaplar ve esige gore kabul veya ret karari verir.
- CMU Keystroke Dynamics Benchmark Dataset: https://www.cs.cmu.edu/~keystroke/