Utilizzo di smart card per la crittografia e-mail e SSH

6

Supponiamo di avere una piccola organizzazione, ogni utente ha un MacBook Pro recente, può comprare un lettore di smart card ~ $ 25 su Amazon e voglio usare keypair dove le chiavi private sono su smart card personali per fare la crittografia e l'autenticazione SSH .

Sembra che la maggior parte di questi lettori sia orientata verso il DOD CAC o l'infrastruttura PIV federale. Non ho bisogno di integrarmi con queste cose: voglio possedere la root CA o semplicemente mettere manualmente le chiavi pubbliche di tutti in una sorta di directory.

Quali sono i diversi tipi di smart card disponibili in commercio e a cosa devo attenermi (o evitarlo) per ottenere un funzionamento affidabile su piccola scala utilizzando software open source? Sembra che molti produttori abbiano implementazioni diverse e non è chiaro quanto siano interoperabili (se tutto) al di fuori del loro software basato su Windows.

Fondamentalmente, sto cercando di fare qualcosa di simile a quello che fa Yubikey Neo, ma con schede generiche (che hanno idealmente più fornitori) e lettori. Capisco che le raccomandazioni specifiche sui prodotti siano fuori tema, basta cercare un resoconto su quali parole cercare / cercare e trovare le carte che possono essere utilizzate a questo scopo.

Termini in cui mi sono imbattuto in:

  • ISO7816 sembra essere un'interfaccia elettrica standard, ma non sono sicuro che questo significhi che tutte le schede e i lettori conformi a ISO7816 siano interoperabili a livello di software.

  • CCID sembra essere un protocollo standard sovrapposto a USB per la comunicazione con i lettori di schede.

  • PKCS # 11 e PCKS # 15 sembrano essere primitive di crittografia a chiave pubblica di livello superiore che, ad esempio, Thunderbird può consumare da una smart card.

Posso usare solo schede ISO7816 e lettori compatibili con CCID e ISO7816, oppure c'è dell'altro in quel momento?

    
posta jacobbaer 02.09.2015 - 00:19
fonte

3 risposte

1

Sono molto appassionato di ciò che fa Yubikey Neo perché ha così tante modalità aperte / generiche (come quelle che ho comprato due), inclusa la presentazione di un'interfaccia CCID, l'applicazione OpenPGP che supporta la scheda e l'offerta di open source e specifica il supporto U2F.

Penso che ciò che stai cercando in definitiva sia CCID + una scheda con le applet appropriate. Le schede OpenPGP potrebbero essere sufficienti per questo.

    
risposta data 02.09.2015 - 02:37
fonte
0

Sembra che la risposta sia: Usa JavaCard. Mentre i singoli produttori di smart card dispongono di un software di gestione crittografia proprietario, è possibile utilizzare GlobalPlatform per caricare un'applet compatibile con OpenSC su qualsiasi JavaCard vuota e ottenere la funzionalità PKCS # 11 di una casella bianca.

Acquista ora un paio di JavaCards.

    
risposta data 02.09.2015 - 07:43
fonte
0

Sto sperimentando con le smart card e ho avuto un certo successo realizzando un piccolo PKI e utilizzando un OpenSC-supported card (nel mio caso si tratta di una scheda OpenPGP ma il lato PGP non ha importanza, quindi qualsiasi scheda PKI funzionerà). L'uso di OpenSC garantisce che la tua scheda sia compatibile su tutte le principali piattaforme poiché fornisce il middleware per Windows, Mac e Linux e fornisce moduli PKCS11 che possono essere utilizzati con Firefox e la maggior parte delle altre applicazioni come SSH. Per una migliore compatibilità di Windows (ad esempio, Internet Explorer non può utilizzare OpenSC) sarebbe meglio avere schede supportate da OpenSC e che hanno i propri driver per Windows, quindi applicazioni che usano CAPI (Internet Explorer , Outlook e anche per l'accesso) possono usarli pure.

Per prima cosa, imposta un'autorità di certificazione. Questo insieme di tutorial fornisce file di configurazione OpenSSL puliti e leggibili - prova per alcuni giorni / settimane prima - eseguire un PKI sicuro non è facile e devi prendere molte precauzioni. In produzione per una piccola impresa raccomanderei l'uso di una smart card PKI per archiviare anche la chiave privata della CA - OpenSC fornisce un modulo PKCS11 e OpenSSL può trarne vantaggio. Conserva quella carta in un luogo sicuro accanto ad altre risorse preziose, e prendila solo quando è necessario emettere un nuovo certificato, se possibile in presenza di qualcun altro, in modo da avere una pista di controllo e per evitare che i ladri utilizzino erroneamente la carta CA. Se segui questo link ti suggerisco di guardare le esercitazioni avanzate / esperte - mentre il "semplice" potrebbe sembrare allettante mancano parti critiche come CRL e OCSP, e avrai sicuramente bisogno di quelle che dovrebbero essere necessarie per revocare i certificati (scheda persa / rubato, licenziato dipendente, ecc.)

Dopo aver configurato la CA, inizializzare le schede, modificare i PIN e generare le chiavi (esaminare la documentazione di OpenSC), quindi generare un CSR (utilizzando OpenSSL con il modulo OpenSC PKCS11 poiché OpenSC stesso non fornisce uno strumento per questo ) e firmalo con la tua CA. Infine metti il certificato risultante sulla carta e sei a posto.

Tuttavia, se si utilizza una smart card per la crittografia della posta elettronica, i dipendenti non saranno in grado di decrittografare i propri messaggi quando si trovano su un dispositivo mobile o su un dispositivo che non dispone di un lettore di schede (a meno che non si generi chiave privata al di fuori della scheda e quindi permetti loro di importarla sul telefono, ma questo annullerebbe il vantaggio principale delle carte in quanto la chiave può essere ora rubata in modo silenzioso usando malware).

    
risposta data 11.08.2016 - 18:51
fonte

Leggi altre domande sui tag