Ecco come funzionano le smart card. Se vuoi una chiavetta USB, sai dove trovarla.
Le smartcard sono progettate per la sicurezza. Sono progettati per resistere alle manomissioni . Sono progettati per conservare segreti e suicidarsi piuttosto che rinunciare ai loro segreti. Non è possibile (con ragionevole sforzo, escludendo i difetti di implementazione) estrarre i dati da esso o clonarli.
Le smartcard sono (presumibilmente) progettate in modo tale che se si tenta di bypassare l'interfaccia del software e leggere direttamente la loro memoria, non è possibile. Le uniche interfacce esterne sono linee di alimentazione e seriali. Tutto il resto è all'interno di una gabbia di Faraday (per contrastare le misurazioni delle emissioni) che è protetta da uno strato di sostanze chimiche corrosive (acidi, penso) in modo che se provi a fare un buco nello strato di protezione, il chip (specialmente la memoria) essere danneggiato oltre il recupero.
Il chip è progettato per assorbire potenza costante, per evitare la perdita di informazioni attraverso il consumo di energia . È inoltre progettato per consentire alle operazioni di impiegare tempo costante. Quindi i chip per smart card non hanno ottimizzazioni hardware come pipeline di istruzioni o gestione dell'alimentazione per ridurre la dissipazione del calore. I chip delle smart card spesso contengono parti che non servono a nessuno scopo, per rendere le emissioni e il consumo di energia più costanti o più difficili da analizzare e per rendere difficile il reverse engineering.
Diverse cose rendono le smart card più lente rispetto ai chip non sensibili alla sicurezza. Dal momento che le smartcard non dispongono di un proprio alimentatore, devono scrivere nella memoria flash abbastanza spesso, non possono permettersi di memorizzare nella cache gli oggetti nella RAM. Altrimenti l'avversario potrebbe ridurre il potere in momenti vantaggiosi (per lui). Il software deve utilizzare algoritmi a tempo costante (per evitare attacchi di temporizzazione ), non l'algoritmo più veloce possibile. Il software deve essere scritto con ridondanze, nel caso in cui l'avversario brilli un laser sulla scheda per capovolgere alcuni bit in memoria e mettere il software in uno stato che non avrebbe dovuto essere raggiungibile (sì, è un vero attacco).
Misure di sicurezza come queste hanno un costo. Inoltre, poiché gli attacchi continuano a migliorare, il design dei chip deve tenere il passo. La maggior parte dei tipi di chip diventa sempre più potente secondo la legge di Moore, ma con le smart card i miglioramenti ingegneristici sono assorbiti principalmente dalla necessità di contrastare nuovi attacchi.
Ci sono schede che supportano 4k chiavi RSA. Ma sono rari. Qualche anno fa, fu introdotta la Java Card 3 per supportare quasi tutte le funzionalità del linguaggio Java; Penso che una scheda in grado di farlo sarebbe in grado di firmare con RSA 4k. Ma non l'hanno davvero preso, in parte perché i miglioramenti dell'ingegneria sono stati aumentati aumentando le protezioni di sicurezza, e in parte perché molti miglioramenti dell'ingegneria sono andati nelle carte senza contatto, che richiedono meno assorbimento di energia e tempi di risposta più rapidi.
Ma non c'è molto mercato per RSA 4k. Mentre le smartcard stavano raggiungendo quel punto, ECC divenne ampiamente disponibile. Puoi ottenere lo stesso livello di sicurezza di RSA 4k con chiavi ECC molto più piccole. L'unico inconveniente del passaggio da RSA a ECC è il supporto dell'algoritmo nell'intera infrastruttura, ma i dispositivi integrati come le smartcard sono la parte più difficile: praticamente qualsiasi cosa lato server supporti l'ECC in questi giorni.
Se hai davvero bisogno di qualcosa di più potente, esistono dongle USB con una potenza di elaborazione "reale", in grado di memorizzare chiavi crittografiche ed eseguire operazioni crittografiche con un'interfaccia PKCS # 11. Questi dongle non hanno quasi la stessa resistenza a manomissione fisica di un tipico PKCS # 11. È un compromesso tra sicurezza e prestazioni.
Ulteriori letture: