È meglio avere un canale sicuro o una voce PIN sicura per le Smartcard?

4

Supponiamo che possieda un computer, una tastiera connessa tramite USB e un lettore di chipcard basato su contatto USB (trusted) con un pinpad hardware.

Ora ci sono due tipi di smartcard rilevanti per questa domanda

  1. Quelli che stabiliscono un canale sicuro (simile a TLS per il trasporto APDU) tra il middleware sul computer e la scheda. Richiedono l'inserimento del PIN basato sulla tastiera.
  2. Gli altri non stabiliscono un canale sicuro tra il middleware e la scheda. Possono usare il pinpad HW del lettore di schede chip.

Quale dei due approcci fornisce meno superficie d'attacco, ad es. è probabile che sia più sicuro?

Il trade-off I vedi qui è il seguente:

  • Le carte prive di canale sicuro possono essere vulnerabili a modifiche dannose di APDU in-trasferimento e a intercettazione di risultati di computazione e in particolare modifiche dannose di ciò che viene firmato dalla scheda
  • Le carte con un canale sicuro soffrono della minaccia standard di key-logger e software simili e quindi consentirebbero un uso legittimo illimitato della carta mentre è inserita

Nota: il fatto che ci siano meno PIN possibili (= password) con pinpad non è importante per questa domanda così come lo scenario di utilizzo remoto di tale carta. Si può presumere che il canale sicuro sia effettivamente sicuro e che il middleware si presume sia stato codificato correttamente, ma il PIN sarebbe comunque fornito da un'applicazione utente (potenzialmente buggy) (come Firefox, pkcs11-tool , Windows, ... ) utilizzando i propri dialoghi.

    
posta SEJPM 25.06.2016 - 00:32
fonte

1 risposta

2

La superficie di attacco è più piccola con il pad PIN dell'hardware. Il canale di sicurezza tra il driver della smart card e la scheda non può essere protetto dallo snooping su USB tra la tastiera e il computer, né può proteggere la pressione dei tasti dalla lettura quando raggiungono il sistema operativo prima di passare al driver della smart card e quindi il canale sicuro. Entrambe queste minacce ricadono negli attacchi del keylogger che hai menzionato, ed entrambe sono strongmente mitigate dalla voce PIN hardware perché non c'è alcun percorso USB collegabile da monitorare, né esiste un complesso kernel e infrastruttura di driver che gestiscono ogni key press. Alcuni dispositivi PIN hardware hanno anche un alloggiamento a prova di manomissione per rivelare se qualcuno ha tentato di impiantare il monitoraggio nel pad stesso.

Indipendentemente dal modo in cui il PIN raggiunge la carta, c'è ancora la minaccia che le minacce dannose vengano firmate dalla carta dopo che il PIN ha sbloccato la funzione di firma. Oltre all'utilizzo della sicurezza del traferro, un modo per rilevare un comportamento malevolo è sapere quante cose si intende firmare (possibilmente con un registro di controllo) e associare le firme previste al contatore sulla carta, che è come un contachilometri per operazioni di firma.

Un pad PIN hardware può anche rendere palesi le richieste di firma dannose perché un utente malintenzionato dovrebbe fare firmare i dati della tua carta anziché i tuoi, il che richiederebbe un'altra firma per i tuoi dati. I pad PIN hardware aiutano qui richiedendo sempre l'immissione del PIN per ogni firma. Se inserisci il tuo PIN, qualcosa viene firmato, e non è la cosa che avevi bisogno di firmare, qualcosa di sospetto potrebbe succedere. Mentre è possibile configurare qualcosa come GnuPG per richiedere un PIN per ogni firma o sfida, si corre il rischio che un utente malintenzionato riabiliti il caching del PIN per firmare sia i dati dannosi che i propri con una sola voce PIN.

Dispositivi come lo YubiKey 4 hanno una versione più leggera di questa protezione in cui devi toccare la scheda per ogni firma. Ciò rappresenta comunque un buon modo per rilevare qualcuno che ha fatto in modo che i propri dati siano stati firmati al posto del tuo (perché è necessario toccare, e qualcosa sarebbe stato firmato, ma i tuoi dati non sarebbero stati ancora firmati).

Non penso che il canale sicuro sia sufficiente per impedire la creazione di firme maligne perché chiude solo l'attacco tra il driver e la scheda, mentre qualcosa all'esterno di quel sistema deve avviare il processo di firma. I malware sullo stesso sistema operativo sarebbero comunque in grado di richiedere le firme.

D'altra parte, senza il canale sicuro, un utente malintenzionato potrebbe essere in grado di monitorare le firme tramite l'interfaccia USB al lettore, ma è lo stesso attacco che potrebbe catturare una voce PIN da uno standard tastiera e quindi richiedere direttamente le firme dalla scheda. Anche l'attacco di cattura PIN è più facile. Posso acquistare un keylogger off Amazon.com , ma dubito che sarei facilmente in grado di mettere le mani su uno strumento pre-creato intercettare il traffico di firma di smart card. Una volta ottenuto il PIN, potrei eseguire un host USB collegato al lettore di schede tramite qualcosa come un Raspberry Pi e sarei in grado di disconnetterti la prossima volta che verrà inserita la scheda.

In sintesi, un PIN PIN hardware offre una protezione efficace contro l'acquisizione di PIN dannosi e un rilevamento facile delle richieste di firma dannose (tramite una voce PIN = una firma). Salvo la sicurezza del vuoto aereo e le pesanti procedure di controllo, è il meglio che puoi fare.

    
risposta data 08.11.2016 - 23:14
fonte

Leggi altre domande sui tag