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.