Immagina di avere la tua chiave SSH più sensibile — quella che dà accesso ai server di produzione, ai repository critici e alle infrastrutture di rete — custodita dentro una cassaforte hardware che vive sullo stesso Mac che usi ogni giorno e che si apre soltanto con uno sblocco biometrico. Non è più fantascienza: grazie all’integrazione tra la Secure Enclave di macOS e il SecurityKeyProvider usato da OpenSSH, è ora possibile avere chiavi SSH residenti sul sistema e protette a livello hardware, con un’esperienza d’uso fluida (Touch ID/Face ID) e senza mai esporre il segreto crittografico a livello di file system.
A scoprire la nuova modalità è Arian van Putten, ricercatore e sviluppatore indipendente che su GitHub ha pubblicato la procedura da seguire per trasformare il sistema Mac basato su macOS Tahoe (e successivi) da semplice workstation in un token crittografico intelligente, riducendo drasticamente la superficie d’attacco e semplificando la gestione sicura delle identità.
Cos’è una chiave residente nella Secure Enclave su Mac?
Una chiave resident è una coppia asimmetrica (pubblica/privata) in cui la chiave privata non è mai esportata: è generata e conservata in un modulo isolato (Secure Enclave), e tutte le operazioni sensibili — in particolare la generazione di firme — sono eseguite all’interno di quell’ambiente protetto. Il sistema fornisce un handle o key handle (un identificatore) che funge da riferimento per il segreto, ma non rivela mai la chiave in chiaro.
La Secure Enclave risiede in un coprocessore sicuro integrato in molti SoC Apple: fornisce generazione di chiavi, operazioni crittografiche, contatori anti-replay e protezione anti-tempering.
Combinando la Secure Enclave con un portachiavi digitale (keychain) è possibile gestire chiavi crittografiche legate all’hardware, sfruttare la biometria come meccanismo di accesso e assegnare attributi persistenti nel keychain.

Scheda di funzionamento: Secure Enclave più OpenSSH
Da alcune versioni di OpenSSH, il progetto supporta dispositivi conformi a FIDO2 grazie a un’API specifica, la sk-api, che definisce funzioni standard per registrare credenziali, firmare dati e caricare chiavi residenti. L’elemento sorprendente è che Apple ha implementato una libreria del tutto compatibile con questa API, permettendo a OpenSSH di interfacciarsi con la Secure Enclave allo stesso modo in cui si interfacerebbe con una chiavetta YubiKey. Di fatto, macOS diventa un token FIDO “virtuale”, basato però su un componente hardware certificato e già presente all’interno della macchina.
La scoperta di Arian van Putten dimostra che macOS supporta nativamente la creazione di chiavi “non esportabili” generate direttamente nella Secure Enclave, gestite con attributi specifici e utilizzabili in modo trasparente da ssh, ssh-add e ssh-keygen. Tutto ciò avviene senza strumenti di terze parti, senza librerie non ufficiali e senza patch provenienti dall’ecosistema OpenSSH. Basta dichiarare il provider, oppure scegliere l’opzione corretta nei comandi di generazione, per produrre una chiave che non lascerà mai Secure Enclave.
L’aspetto forse più interessante è che questa funzionalità non deriva da modifiche sperimentali né da hack non supportati: si tratta di un componente ufficiale, già presente in macOS, semplicemente mai documentato da Apple.
Creazione di chiavi Secure Enclave (comandi pratici)
Arian van Putten documenta tutti i comandi pratici per creare le chiavi crittografiche a livello di Secure Enclave su macOS Tahoe (e seguenti) nonché per usarle con ssh.
macOS fornisce l’utility sc_auth per creare, elencare, esportare e cancellare identità CTK (Credential Token Key). Esempio (con richiesta di accesso biometrico):
sc_auth create-ctk-identity -l ssh -k p-256-ne -t bio
Per elencare le identità si può usare il comando sc_auth list-ctk-identities mentre per visualizzare le SSH key fingerprints (brevi impronte digitali crittografiche che identificano in modo univoco una chiave pubblica SSH) si può usare l’istruzione sc_auth list-ctk-identities -t ssh.
Scaricare una chiave “sk” come file FIDO reference
OpenSSH può “scaricare” una coppia di riferimenti (la parte privata resta un handle che richiama il token) usando il provider ssh-keychain.dylib:
ssh-keygen -w /usr/lib/ssh-keychain.dylib -K -N ""
Il file privato così generato è un riferimento al token (non contiene il segreto). Basta quindi copiare il file contenente la chiave .pub nella cartella ~/.ssh/authorized_keys e connettersi specificando il provider corretto:
ssh -o SecurityKeyProvider=/usr/lib/ssh-keychain.dylib user@host
Iniettare la chiave direttamente in ssh-agent
Per non scrivere alcun file, è in alternativa possibile aggiungere l’identità passandola al componente ssh-agent:
ssh-add -K -S /usr/lib/ssh-keychain.dylib
# Autorizzare biometricamente
ssh-add -L # Lista delle chiavi offerte dall'agent
A questo punto è possibile procedere normalmente con la connessione: OpenSSH rivela la chiave corretta attraverso l’agent.
Conclusioni
L’integrazione tra Secure Enclave e OpenSSH segna un punto di svolta nel modo in cui gli sviluppatori e gli amministratori di sistema possono gestire credenziali riservate su macOS. Per anni il paradigma dominante ha previsto l’uso di chiavi SSH archiviate nel file system, protette da permessi UNIX ed eventualmente da una passphrase. Oggi, senza modificare il proprio flusso di lavoro e senza adottare hardware aggiuntivo, è possibile affidarsi a un modello molto più avanzato: le chiavi diventano risorse protette da un coprocessore dedicato, completamente isolate dal resto del sistema operativo e sbloccabili solo tramite un fattore biometrico.
L’utente — sviluppatore, ingegnere DevOps o responsabile infrastrutturale — ha ora la possibilità di sfruttare il Mac come se fosse una chiave di sicurezza FIDO2 integrata, ma con la comodità tipica dell’ecosistema macOS e con un livello di sicurezza non inferiore a quello dei dispositivi dedicati.
L’impatto operativo è evidente: le chiavi non lasciano mai l’ambiente protetto della Secure Enclave, il rischio di furto tramite compromissione del file system è quasi azzerato e l’integrazione con Touch ID garantisce un controllo locale sul loro utilizzo molto più robusto rispetto ai tradizionali PIN.