In che modo la memorizzazione delle chiavi private GPG / SSH sulle smart card è paragonabile alle normali unità USB?

22

Ho una conoscenza di base della crittografia a chiave privata / pubblica e l'ho utilizzata per gli accessi SSH e la crittografia / firma GPG per un po 'di tempo. Tuttavia, ho sempre mantenuto la chiave privata / portachiavi nella posizione predefinita, nella mia directory home (.gnupg e .ssh). Ovviamente, posso trasferire le chiavi su un drive USB, il che in teoria non significa che né un keylogger sul mio computer né l'unità USB da sola saranno sufficienti per ottenere la mia chiave privata.

Quali vantaggi offrono le smart card in grado di memorizzare chiavi private e dispositivi come YubiKey Neo (che sembra essere una smart card + lettore usb in un unico dongle) offre sopra la memorizzazione di chiavi private su una semplice chiavetta USB vecchia?

La smart card "rivela" mai la chiave privata per applicazioni come SSH o GPG? In tal caso, sembra che chiunque abbia il PIN e il dispositivo stesso possa ancora accedere alla chiave privata e non offre vantaggi rispetto alle normali unità USB. In caso contrario, come funzionano esattamente le applicazioni senza conoscere la chiave privata?

    
posta user3243135 14.07.2013 - 07:30
fonte

3 risposte

16

Does the smart card ever "reveal" the private key to applications like SSH or GPG? If so, it seems anyone who has the PIN and the device itself can still get at the private key, and offers no advantages over regular USB drives. If not, how exactly do applications work without knowing the private key?

Idealmente, No.

Il vantaggio principale di un tale token è che mantiene la sua chiave segreta e svolge attività crittografica (come decrittografia, firma, ecc.) sul dispositivo hardware stesso, senza mai rivelare la chiave privata.

Quindi, ad esempio, puoi richiedere la chiave pubblica dal dispositivo e utilizzare quella chiave pubblica per crittografare un file (con o senza il dispositivo presente). Ma per decifrare il file, devi collegare il token e chiedergli di decodificare il file per te.

I dettagli effettivi di implementazione variano tra i dispositivi, ma questa è l'idea generale di ciò che vuoi che accada.

Inoltre, questi token crittografici spesso impiegano alcune misure di sicurezza fisica per impedire a un utente malintenzionato di smontare il dispositivo e recuperare direttamente la chiave. Non è possibile proteggere con certezza del 100%, ma sono comuni misure come l'utilizzo di un design a chip singolo (invece di includere un chip di memoria discreto) e generose soluzioni di resina epossidica.

    
risposta data 21.07.2013 - 06:54
fonte
6

Le smartcard OpenPGP non rivelano le tue chiavi segrete. Le attività di firma e decrittografia di base vengono eseguite dal processore crittografico integrato della scheda e sono disponibili solo dopo aver inserito il codice PIN.

Immagina che il tuo client OpenPGP (ad esempio, GnuPG) invii una richiesta "decrypt this cypher block" che viene eseguita dalla carta (la crittografia effettiva viene eseguita utilizzando un blocco cifrato che è molto più veloce e sulla CPU del computer) , o "firma questo ID utente di questa chiave", che viene di nuovo eseguito dalla carta.

Se la chiave è stata generata sulla carta, non lascerà mai la carta. In alternativa, le chiavi possono essere generate sul tuo computer e caricate sulla carta - non lasceranno di nuovo la carta, ma potrebbero essere estratte dal computer su cui sono state create.

Unità Thumb memorizza l'intera chiave a cui è possibile accedere. Se è collegato al computer, è possibile scaricare le chiavi private da esso.

    
risposta data 14.07.2013 - 09:21
fonte
3

Onestamente, tutto dipende molto dalla carta stessa. I dispositivi di sicurezza esterni per questo lavoro prendono in genere una delle tre forme: segreti del negozio su cui il PC esegue il calcolo; esegue autonomamente tutti gli archivi segreti e il calcolo; qualcosa in mezzo. Le carte che forniscono sicurezza reale eseguono la firma con le chiavi di bordo, preferibilmente generate anche sul dispositivo. L'idea è che la chiave non lascia mai il dispositivo in nessuna circostanza perché il client non può essere considerato attendibile (cioè malware).

L'utilizzo di questi ti aiuta in due modi:

  1. Il malware su PC viene ridotto alla falsificazione dei messaggi mentre la smartcard è insider. A seconda della configurazione, potrebbe anche prendere la personalizzazione del malware riducendo ulteriormente il rischio.

  2. Perdere una smartcard a un ladro non dovrebbe preoccuparti quanto perdere un laptop o un'unità USB piena di segreti.

  3. Puoi mettere una smartcard nel portafoglio che probabilmente trasporterai comunque.

  4. Al giorno d'oggi alcuni laptop commerciali hanno lettori di smartcard.

Una caratteristica particolare che dovresti cercare è un pad PIN integrato nel lettore. Il motivo è che questo può aiutarti a stabilire un percorso affidabile in cui il tuo PIN va direttamente alla smartcard. Senza questo, potresti averlo inserito in un computer infetto da malware tramite tastiera. Un percorso attendibile avrebbe impedito i compromessi tramite password / pin di alcune chiavette USB "certificate" e crittografate. Un esempio di uno con questa funzione è nel link sottostante. (Insieme ai vecchi collegamenti alle istruzioni per smart card GPG.)

link

OpenSSH con smart card qui.

link

    
risposta data 21.07.2013 - 04:30
fonte

Leggi altre domande sui tag