Architektura i Eksperymenty

Ostatnia aktualizacja: 2026-05-27


Architektura systemu

Opis ogólny

System ciągłego uwierzytelniania oparty na biometrii behawioralnej, łączący dynamikę pisania na klawiaturze (TypeNet LSTM) z modelem federacyjnym i differential privacy. Główny wkład techniczny: transfer TypeNet do detekcji botów w formularzach e-commerce oraz privacy-preserving continuous authentication z on-device inference (<50ms).

Komponenty główne

KomponentOpisTechnologia
M1 – Keystroke Feature ExtractorEkstrakcja cech z sekwencji klawiszy (HL, IL, RL, PL timings)JavaScript (browser), TF.js
M2 – TypeNet LSTM2-layer LSTM z triplet loss do reprezentacji keystroke biometricsPyTorch, triplet loss
M3 – Bot/Human ClassifierKlasyfikacja sesja: człowiek vs bot na podstawie M2SVM, RF, TypeNet fine-tuned
M4 – Federated AggregatorFedAvg + DP-SGD aggregation gradientów z wielu klientówPySyft / Flower
M5 – Continuous Auth EngineRe-autentykacja co 50 keystrokes; sesja aktywna/hijackedthreshold, DDQN (Bansal)

Przepływ danych

flowchart TD
    BFE([Browser form events]) --> M1[M1 Feature Extractor]
    M1 --> M2[M2 TypeNet LSTM]
    TRIPLET([Triplet: anchor=human\nnegative=bot]) --> M2
    M2 --> EMB([Embedding vector])
    EMB --> M3[M3 Bot Classifier]
    M3 --> DEC([BOT / HUMAN per-session])
    DEC --> M5[M5 Continuous Auth\nre-auth co 50 keystrokes]
    M5 --> ALERT([Alert: session hijacking])
    M5 -->|gradient on-device| M4[M4 FL Aggregator\nFedAvg + DP-SGD ε=1.0]
    M4 --> GLOBAL([Global model update])

Stack technologiczny

WarstwaTechnologiaUzasadnienie
JęzykPython 3.11+ / TypeScriptML backend / browser JS
ML frameworkPyTorch 2.xTypeNet LSTM, triplet loss
On-deviceTensorFlow.js<50ms browser inference
FederatedFlower (flwr)FedAvg + DP-SGD
DaneDhakal 168K users, Palin 60K userspubliczne keystroke datasets
Pomiar / evalEER, AUC, FPR@TPR=0.8standard biometrics metrics

Eksperymenty

BB-EXP-1: TypeNet Transfer do Bot Detection w Formularzach E-Commerce

Status: planned Priorytet: high Powiązany pomysł: BB-1 Dodano: 2026-05-27

Hipoteza: Model TypeNet (2-layer LSTM, triplet loss) wytrenowany na keystroke sekwencjach z formularzów e-commerce osiąga AUC ≥ 0.90 w rozróżnianiu botów (Selenium, Playwright) od ludzi, przy minimalnej sekwencji 20-30 klawiszy — co jest wystarczające dla praktycznego zastosowania w formularzach checkout.

Dane:

  • Dataset: własny (1,000+ ludzkich sesji MTurk + 5,000+ botów: Selenium/Playwright/randomizowane)
  • Podział: 70/15/15 train/val/test (per-user stratified)
  • Preprocessing: normalizacja czasów klawiszy, padding/masking sekwencji do M=70

Metoda:

  1. Zebranie keystroke data przez instrumentację formularza checkout (JavaScript collector)
  2. Generowanie botów: proste (stała prędkość), zaawansowane (randomizacja, błędy)
  3. Trenowanie TypeNet (LSTM, triplet loss) na sekwencjach M=70 klawiszy
  4. Ablation: porównaj M ∈ {20, 30, 50, 70} klawiszy → kiedy AUC saturuje?
  5. Baseline: Random Forest na statystykach keystroke (mean/std hold-time)

Modele / Baseline:

ModelOpis
RF na keystroke statisticsmean/std HL, IL, RL — szybki baseline
TypeNet M=70pełna sekwencja, oryginał Acien 2021
TypeNet M=20skrócona sekwencja — praktyczne e-commerce
TypeNet M=30kompromis długość–dokładność

Metryki:

  • Główna: AUC (próg sukcesu: ≥0.90 dla M=20)
  • Dodatkowe: EER, FPR@TPR=0.95, latencja inferencji [ms]
  • Test statystyczny: DeLong test (TypeNet M=20 vs RF, α=0.05)

Wyniki: (do wypełnienia po wykonaniu)

ModelAUCEER[email protected]Latencja

Wnioski: (do wypełnienia po wykonaniu)


BB-EXP-2: Privacy-Preserving Continuous Authentication: FL + DP-SGD

Status: planned Priorytet: high Powiązany pomysł: BB-2 Dodano: 2026-05-27

Hipoteza: FedAvg + DP-SGD (ε=1.0, δ=10⁻⁵) osiągnie accuracy ≥ 90% (vs 94.7% model centralny) przy symulacji 10 klientów federacyjnych na Dhakal dataset — potwierdzając akceptowalny trade-off prywatność–dokładność dla ciągłego uwierzytelniania w e-commerce.

Dane:

  • Dataset: Dhakal 168K users (publiczny), własny session hijacking dataset (synthetic)
  • Podział: 10 partycji (symulacja klientów FL), 80/20 local train/test per klient
  • Preprocessing: normalizacja keystroke timings, okno 50 klawiszy

Metoda:

  1. Implementacja LSTM (2 warstwy) do ciągłego uwierzytelniania (re-auth co 50 klawiszy)
  2. Trenowanie centralne (baseline) na Dhakal dataset
  3. Federacyjna symulacja: 10 klientów (Flower), FedAvg 50 rund
  4. DP-SGD: Opacus (PyTorch) z ε ∈ {0.1, 0.5, 1.0, 5.0, ∞}
  5. Atak sesji: symulacja session hijacking + credential stuffing → TPR alertów

Modele / Baseline:

ModelOpis
Centralny LSTMbrak prywatności, upper bound
FedAvg LSTMfederacyjny, bez DP
FedAvg + DP (ε=1.0)target: prywatność + skuteczność
FedAvg + DP (ε=0.1)wysokie DP, niższe accuracy

Metryki:

  • Główna: accuracy ciągłej autentykacji (próg sukcesu: ≥90%)
  • Dodatkowe: TPR na session hijacking, komunikacja FL (MB per runda), latencja inference
  • Test statystyczny: t-test (FL+DP vs centralny, α=0.05)

Wyniki: (do wypełnienia po wykonaniu)

ModelAccuracyTPR (hijacking)εComm. [MB/runda]

Wnioski: (do wypełnienia po wykonaniu)


Pipeline danych

Keystroke data zbierana przez JavaScript event listener (keydown, keyup timestamps). Dla Dhakal dataset: publiczny CSV z HL/IL/RL/PL dla 168K użytkowników, podzielony na 10 partycji FL. Sesje session hijacking: syntetyczne, generowane przez podmianę keystroke profilu użytkownika na profil atakującego po N keystrokes.

Wymagania techniczne

Środowisko

Python: 3.11+
GPU: opcjonalnie (LSTM trenowanie szybkie na CPU)
RAM: min. 8 GB
Dysk: ~10 GB (Dhakal dataset + modele)

Kluczowe biblioteki

# requirements-research.txt
torch>=2.0
opacus>=1.4          # DP-SGD
flwr>=1.7            # Flower federated
scikit-learn>=1.3
numpy>=1.25
pandas>=2.0

Status eksperymentów

IDTytułStatusPriorytetETAWynik
BB-EXP-1TypeNet bot detection transferplannedhigh
BB-EXP-2Privacy-preserving continuous auth FL+DPplannedhigh