Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
kl-security-key — Autenticatore FIDO2/WebAuthn sperimentale basato su RP2040 con attestazione packed e interoperabilità documentata con Windows/Entra | Kitploit
Strumenti/GitHubGitHub/karaaslanlabs/kl-security-key
Sicurezza Sistemi EmbeddedSicurezza IoTCrittografiaSicurezza HardwareSicurezza Hardware e IoTGestione Identità e Accessi (IAM)AutenticazionePaper e RicercaApprendimento e Formazione
GitHubkaraaslanlabs/kl-security-key

kl-security-key

Autenticatore FIDO2/WebAuthn sperimentale basato su RP2040 con attestazione packed e interoperabilità documentata con Windows/Entra

811107 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi RepositorySito web

KL Security Key

Publication hygiene License: AGPL-3.0

Progetto sperimentale open-source di ingegneria e interoperabilità per un autenticatore FIDO2/WebAuthn su RP2040, a cura di Karaaslan Labs.

Stato: progetto di ingegneria/ricerca. Non certificato FIDO Alliance. Non è un token di sicurezza commerciale ad alta affidabilità.

Perimetro delle evidenze: le osservazioni sul dispositivo reale riportate di seguito appartengono alla versione congelata v5.2. Il lavoro di hardening della v5.3 è esclusivamente off-device e non è stato installato né verificato sul riferimento fisico.

KL Security Key è un derivato curato di polhenarejos/pico-fido. Esplora fin dove può essere spinta una scheda RP2040 a basso costo come autenticatore WebAuthn fisico, mantenendo espliciti identità, attestazione, evidenze di validazione e confini di fiducia.

In sintesi

AreaRiferimento fisico congelato v5.2
HardwareScheda di sviluppo USB RP2040
TrasportoUSB FIDO HID
Versioni CTAP/GetInfoFIDO_2_0, FIDO_2_1, FIDO_2_3
Presenza / verifica utentePulsante fisico + supporto PIN/UV
AttestazionePacked ES256, x5c, certificato specifico del dispositivo
AAGUIDd9359dc7-6938-5822-b951-006507247d8f
InteroperabilitàWindows WebAuthn + validazione Microsoft Entra locale al tenant
DistribuzioneSource-first; nessuna release di binario firmware KL
Elemento sicuroNessuno
CertificazioneNon certificato FIDO Alliance

Perimetro della scheda e della dimensione della flash

La build di riferimento del sorgente main seleziona -DPICO_BOARD=pico in scripts/build-kl-reference.sh, puntando alla configurazione standard della scheda Raspberry Pi Pico con 2 MiB di flash esterna. Anche il builder isolato off-device della v5.3 seleziona -DPICO_BOARD=pico; il suo validatore dell'output UF2 verifica la finestra di indirizzi della flash da 2 MiB della Pico. Questi sono vincoli di sorgente/build, non una validazione fisica di ogni scheda RP2040.

Altre schede RP2040 possono avere capacità di flash o configurazioni hardware differenti. La issue upstream di Pico FIDO #278 documenta un fallimento alla prima operazione WebAuthn su una scheda con flash più grande, quando il limite di flash impostato in fase di compilazione nel firmware non corrispondeva al layout a runtime. Tale riscontro upstream non è un guasto riprodotto di KL Security Key, ma illustra perché la sola corrispondenza del chip RP2040 non sia una prova sufficiente di compatibilità.

Non dare per scontato che il firmware di riferimento KL funzioni su schede RP2040 arbitrarie, né eseguire il flashing di un dispositivo basandosi unicamente su una build riuscita o su un framing UF2 valido. Qui non si rivendica alcuna compatibilità con schede alternative, alcun nuovo test hardware né alcuna distribuzione di binari firmware. Il riferimento fisico congelato v5.2 non è stato modificato.

Perché esiste questo progetto

Il progetto è nato da una domanda pratica: una scheda di sviluppo economica può diventare una chiave di sicurezza fisica utilizzabile per l'accesso WebAuthn reale, senza nascondere i compromessi ingegneristici?

Il lavoro interessante si è rivelato non semplicemente far girare FIDO2 su RP2040. Le parti più difficili sono state l'identità dell'autenticatore, la presenza fisica dell'utente, l'attestazione, il comportamento su Windows, le modifiche riproducibili al sorgente, l'interoperabilità con le relying party e il sapere esattamente cosa le evidenze dimostrano — e cosa non dimostrano.

Verificato sul riferimento fisico congelato v5.2

I risultati in questa sezione sono stati ottenuti con il dispositivo v5.2 preservato e non devono essere attribuiti a sorgenti successivi o a build firmware sperimentali. Consultare docs/validation-evidence.md per l'SHA-256 dell'UF2 congelato e i confini dei test.

  • Nuova registrazione WebAuthn: PASS.
  • Autenticazione / GetAssertion con la stessa credenziale: PASS.
  • Provider Windows: MicrosoftCtapHidProvider.
  • Percorso CTAP2 osservato con U2fProtocol=false.
  • Presenza fisica dell'utente richiesta per registrazione e accesso.
  • Percorso PIN/verifica utente validato.
  • Firma di attestazione Packed: PASS.
  • Verifica foglia di attestazione → KL Security Key Root CA: PASS.
  • Corrispondenza AAGUID tra dati dell'autenticatore ed estensione del certificato: PASS.
  • Registrazione associata al dispositivo locale al tenant Microsoft Entra e accesso con chiave fisica nuova: PASS con applicazione dell'attestazione disabilitata.

Il risultato Entra è un risultato di interoperabilità, non una certificazione Microsoft né un riconoscimento globale dell'autenticatore. Consultare docs/interoperability-case-study.md per i limiti esatti.

Sviluppo v5.3 — solo off-device

L'attuale hardening HID/APDU/OTP è tracciato nella Draft PR #7. Include un percorso di integrazione SDK basato su patch, test di regressione lato host ed evidenze di build ARM isolate locali. Queste verifiche non costituiscono un test su dispositivo reale, un test completo di conformità FIDO, una certificazione o un rilascio in produzione. GitHub Actions esegue test host/sorgente e controlli di pubblicazione; le build ARM complete sono state verificate localmente, non in GitHub Actions.

Il branch main e la sua build di riferimento non includono automaticamente le patch v5.3 non unite. Per le evidenze sperimentali attuali e i blocchi in sospeso, utilizzare la PR #7 anziché considerare gli hash UF2 storici o i singoli test superati come stato hardware più recente. Nessun binario firmware derivante da questo lavoro è offerto per il download o il flashing.

Architettura

flowchart LR
    RP["Relying party / Microsoft Entra"] --> WA["Browser + Windows WebAuthn"]
    WA --> CTAP["CTAP2 over USB HID"]
    CTAP --> KEY["KL Security Key<br/>RP2040"]
    KEY --> AT["Packed ES256 attestation<br/>device-specific key + x5c"]
    AT --> ROOT["KL Security Key Root CA"]

Il runtime validato è intenzionalmente ristretto: FIDO HID è l'interfaccia della chiave di sicurezza; le interfacce runtime non correlate in stile tastiera/CCID non fanno parte del profilo di riferimento KL.

Compilare il profilo di riferimento del sorgente main

git clone --recurse-submodules https://github.com/karaaslanlabs/kl-security-key.git
cd kl-security-key
export PICO_SDK_PATH=/path/to/pico-sdk
export PICO_TOOLCHAIN_PATH=/path/to/arm-none-eabi-toolchain
./scripts/build-kl-reference.sh

La build main abilita l'applicazione della presenza fisica dell'utente, il profilo runtime FIDO-only e il percorso di attestazione packed; non è una build delle modifiche v5.3 non ancora unite. Il materiale valido per chiave/certificato di attestazione deve essere fornito separatamente; le chiavi di attestazione private non sono pubblicate né fornite automaticamente da questo repository. Compilare un UF2 non autorizza a flashare un dispositivo.

Confini di fiducia e non-dichiarazioni

Questo repository non dichiara:

Scarica lo strumento