Perché la potenza di elaborazione e la memoria nelle smart card sono così limitate? [chiuso]


8

Perché le smart card comuni come SLE5528 sono quasi sempre limitate a <16K di memoria disponibile e un processore a 8 bit molto lento? Qual è il fattore limitante che rende tecnologicamente / economicamente impossibile aumentare questi limiti?

EDIT: Forse dovrei dare qualche informazione in più sul perché sto ponendo questa domanda. Per un cliente al lavoro abbiamo dovuto integrare un modulo smartcard che sostanzialmente fungeva da archivio chiavi (simile a quelli che è possibile utilizzare in librerie di programmazione di alto livello come PKCS11). Abbiamo costantemente superato i limiti di questo dispositivo (non è possibile memorizzare più di alcune chiavi, non è possibile memorizzare chiavi di dimensioni superiori a 1k, attendere almeno 5 secondi prima di recuperare l'elenco delle chiavi, ecc.). L'unica persona alla fine del nostro fornitore che ho potuto raggiungere era un fornitore che mi ha dato la risposta "È così che funzionano le smartcard". Non è come se non esistesse un vero mercato per la memorizzazione di chiavi RSA di dimensioni> 4K su una scheda. Mi piacerebbe sapere il vero motivo dietro questo.


È possibile che il mercato delle carte con più risorse sia piccolo e non abbastanza redditizio per il produttore. Se non chiedi a un produttore, questa domanda lascia molto alla speculazione.
Nick Alexeev

Divisione di funzionalità: la smart card non è destinata a fare altro che identificare compiti specifici. Le persone hanno proposto hack come l'esecuzione di Android su una SIM, ma non è proprio il posto giusto nella progettazione generale di un prodotto per farlo.
Chris Stratton,

Sì, mi sono sempre chiesto perché non corrono su pentium octa core ...
PlasmaHH,

"Limitato" - rispetto a cosa. Perché dovrebbe averne bisogno?
Andy aka

@ChrisStratton Posso capirlo, ma anche nel campo dell'autenticazione e della contabilità non è all'altezza. Un buon esempio di ciò sono le schede OpenPGP, su cui le dimensioni della chiave sono molto restrittive, che alla fine hanno spinto le persone a utilizzare chiavette USB per scopi di firma PGP anziché smartcard.
JDoe,

Risposte:


11

Perché le smart card comuni come SLE5528 sono quasi sempre limitate a <16K di memoria disponibile e un processore a 8 bit molto lento? Qual è il fattore limitante che rende tecnologicamente / economicamente impossibile aumentare questi limiti?

È il prezzo aggiuntivo causato dalle funzionalità di sicurezza che aumentano il prezzo. Tecnicamente non è possibile confrontare la memoria non volatile delle smart card con la normale memoria flash o eeprom. Ad esempio è possibile aprire la normale memoria flash, collegare i fili sulla matrice e leggere il contenuto della memoria. Con le smart card ciò non dovrebbe essere possibile (o più realisticamente: dovrebbe essere così complicato e costoso da non valerne la pena).

Lo stesso vale per la CPU. Le CPU per smart card hanno un sacco di funzioni di sicurezza integrate che non sono necessarie per le normali CPU. Ad esempio, non dovrebbero perdere alcuna informazione sul codice che eseguono in base alla quantità di corrente che assorbono o perdere qualsiasi cosa dalla radiazione RF.

Detto questo, tutte queste tende a canale laterale hanno un prezzo non solo nel costo di produzione, ma anche nelle prestazioni computazionali. È solo più importante essere sicuri che essere veloci.

Detto questo, sono disponibili smart card con più memoria. Puoi acquistarli con più di 100kb di memoria. Sono costosi però.

La raccomandazione nei commenti di cambiare le chiavi da RSA a ECC è molto buona. La dimensione chiave di ECC rispetto a RSA allo stesso livello di sicurezza è molto più piccola. Quindi ottieni di più dalla tua memoria non volatile limitata. È anche probabile che l'ECC sia più veloce.


6

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:

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.