Skip to content
This repository was archived by the owner on Sep 7, 2026. It is now read-only.

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KeyPatternVerify

Keystroke Dynamics ile Kimlik Doğrulama

Bu proje, Biyometrik Tanıma Sistemleri dersi kapsamında geliştirilmiş bir davranışsal biyometri çalışmasıdır.

CMU Keystroke Dynamics Benchmark Dataset üzerinde keystroke dynamics kullanarak kimlik doğrulama gerçekleştirir. Varsayılan model, her kullanıcı için ayrı eğitilen one-class k-NN anomalilik skorlayıcısıdır.

CMU veri setinde 51 kullanıcı, .tie5Roanl parolasını 8 oturumda toplam 400 kez yazmıştır. Resmi protokole uygun olarak her hedef kullanıcı için ilk 200 örnek eğitimde, son 200 gerçek kullanıcı testi için, diğer kullanıcıların ilk 5 örneği ise sahte giriş testi için kullanılır.

Bu çalışma bir ders projesidir ve üretim ortamında kullanılmak üzere geliştirilmiş tamamlanmış bir biyometrik kimlik doğrulama sistemi olarak değerlendirilmemelidir.

Kurulum

python -m pip install -r requirements.txt
$env:PYTHONPATH = "src"

Kisa yol:

python scripts/install_requirements.py

Veri Setini Indirme

python -m keystroke_auth.cli download --output data/DSL-StrongPasswordData.csv

Kisa yol:

python scripts/download_dataset.py

Bu komut dosyayi CMU kaynagindan indirir ve resmi MD5 ozetiyle dogrular.

Yerel Web Arayuzu

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.py

Sonra 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.

Ozel Parola ile Kayit ve Dogrulama

Web arayuzundeki Custom Password Profiles bolumu, CMU veri setinden bagimsiz yerel profil olusturur.

Akis:

  1. Profil adini ve istediginiz parolayi girin.
  2. Samples alaninda kac kayit denemesi alinacagini secin.
  3. Start Enroll ile parolayi ayni kullaniciya birden cok kez yazdirin.
  4. Yeterli ornekten sonra Save Profile ile profili kaydedin.
  5. Saved Profile listesinden profili secip Start Verify ile 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.

k-NN Degerlendirme

python -m keystroke_auth.cli evaluate `
  --data data/DSL-StrongPasswordData.csv `
  --features all `
  --k 5 `
  --output reports/knn_results.csv

Kisa yol:

python scripts/evaluate_knn.py

Oznitelik secenekleri:

  • hold: yalnizca tus basili kalma sureleri (H.*)
  • dwell: hold ile ayni anlamda tutulur
  • latency: digraph sureleri (DD.* ve UD.*)
  • all: tum zamanlama oznitelikleri

Cikti metrikleri:

  • FAR: sahte kullanicinin kabul edilme orani
  • FRR: gercek kullanicinin reddedilme orani
  • EER: FAR ve FRR'nin esitlendigi yaklasik hata orani

Gercek Zamanli Senaryo

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.25

Kisa yol:

python scripts/realtime_sim.py --subject s002

Testleri calistirmak icin:

python scripts/run_tests.py

k-NN sonuclarindan grafik uretmek icin:

python scripts/plot_knn_results.py

Web 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.

Kaynak

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages