¿Por qué el poder de procesamiento y la memoria en las tarjetas inteligentes es tan limitado? [cerrado]

8

¿Por qué las tarjetas inteligentes comunes como la SLE5528 están casi siempre limitadas a <16K de memoria disponible y un procesador de 8 bits muy lento? ¿Cuál es el factor limitante que hace que tecnológicamente / económicamente no sea factible elevar estos límites?

EDITAR: Tal vez debería dar más información sobre por qué estoy haciendo esta pregunta. Para un cliente en el trabajo, tuvimos que integrar un módulo de tarjeta inteligente que básicamente actuaba como un almacén de claves (similar a los que puede usar en bibliotecas de programación de alto nivel como PKCS11). Estuvimos constantemente alcanzando los límites de este dispositivo (no podemos almacenar más de unas pocas claves, no podemos almacenar ninguna clave mayor de 1k, tenemos que esperar al menos 5 segundos antes de obtener la lista de claves, etc.). La única persona a la que pude contactar con nuestro proveedor fue un proveedor que me dio la respuesta "Así es como funcionan las tarjetas inteligentes". No es que no haya un mercado real para almacenar claves RSA de tamaño> 4K en una tarjeta. Me encantaría saber la verdadera razón detrás de esto.

JDoe
fuente
Es posible que el mercado de tarjetas con más recursos sea pequeño y no lo suficientemente lucrativo para el fabricante. A menos que le pregunte a un fabricante, esta pregunta deja mucho que especular.
Nick Alexeev
División de funcionalidad: la tarjeta inteligente no pretende hacer más que tareas específicas de identificación. La gente ha propuesto hacks como ejecutar Android en una SIM, pero no es el lugar correcto en el diseño general de un producto para hacerlo.
Chris Stratton
Sí, siempre me he estado preguntando por qué no se ejecutan en pentios octa core ...
PlasmaHH
"Limitado" - comparado con qué. ¿Por qué debería necesitar más?
Andy alias
@ChrisStratton Puedo entender eso, pero incluso dentro del campo de la autenticación y la contabilidad se queda corto. Un buen ejemplo de ello son las tarjetas OpenPGP, en las cuales el tamaño de la clave es muy restrictivo, lo que eventualmente llevó a las personas a usar memorias USB para propósitos de firma de PGP en lugar de tarjetas inteligentes.
JDoe

Respuestas:

11

¿Por qué las tarjetas inteligentes comunes como la SLE5528 están casi siempre limitadas a <16K de memoria disponible y un procesador de 8 bits muy lento? ¿Cuál es el factor limitante que hace que tecnológicamente / económicamente no sea factible elevar estos límites?

Es el precio adicional causado por las características de seguridad que aumentan el precio. Técnicamente, no puede comparar la memoria no volátil de las tarjetas inteligentes con la memoria flash o eeprom normal. Por ejemplo, es posible abrir la memoria flash normal, conectar los cables al troquel y leer el contenido de la memoria. Con las tarjetas inteligentes esto no debería ser posible (o de manera más realista: debería ser tan complicado y costoso que no valga la pena).

Lo mismo es cierto para la CPU. Las CPU de tarjetas inteligentes tienen un montón de características de seguridad integradas que no son necesarias para las CPU normales. Por ejemplo, no deben filtrar ninguna información sobre el código que ejecutan por la cantidad de corriente que extraen, ni filtrar nada por la radiación de RF.

Dicho esto, todas estas persianas de canal lateral tienen un precio no solo en el costo de fabricación sino también en el rendimiento computacional. Es más importante estar seguro que ser rápido.

Dicho esto, hay disponibles tarjetas inteligentes con más memoria. Puedes comprarlos con más de 100kb de memoria. Sin embargo, son caros.

La recomendación en los comentarios para cambiar las claves de RSA a ECC es muy buena. El tamaño de la clave de ECC en comparación con RSA en el mismo nivel de seguridad es mucho menor. Por lo tanto, obtendrá más de su memoria no volátil limitada También es probable que el ECC sea más rápido.

Nils Pipenbrinck
fuente
6

Así funcionan las tarjetas inteligentes. Si quieres una memoria USB, sabes dónde encontrarla.

Las tarjetas inteligentes están diseñadas para la seguridad. Están diseñados para ser resistentes a la manipulación . Están diseñados para almacenar secretos y suicidarse en lugar de revelar sus secretos. No puede (con un esfuerzo razonable, salvo fallas de implementación) extraer los datos de él o clonarlo.

Las tarjetas inteligentes están (supuestamente diseñadas) de modo que si intentas evitar la interfaz del software y leer su memoria directamente, no puedes. Las únicas interfaces externas son las líneas de alimentación y serie. Todo lo demás está dentro de una jaula de Faraday (para contrarrestar las mediciones de emisiones) que está protegida por una capa de productos químicos corrosivos (ácidos, creo), de modo que si intentas hacer un agujero en la capa de protección, el chip (especialmente la memoria) ser dañado más allá de la recuperación.

El chip está diseñado para generar energía constante, para evitar filtraciones de información a través del consumo . También está diseñado para permitir que las operaciones tomen tiempo constante. Por lo tanto, los chips de tarjetas inteligentes no tienen optimizaciones de hardware, como canales de instrucciones o administración de energía para reducir la disipación de calor. Los chips de tarjetas inteligentes a menudo contienen partes que en realidad no sirven para ningún propósito, para hacer que las emisiones y el consumo de energía sean más constantes o más difíciles de analizar, y para dificultar la ingeniería inversa.

Varias cosas hacen que las tarjetas inteligentes sean más lentas que los chips no sensibles a la seguridad. Dado que las tarjetas inteligentes no tienen su propia fuente de alimentación, necesitan escribir en la memoria flash con bastante frecuencia; no pueden permitirse almacenar en caché las cosas en la RAM. De lo contrario, el adversario podría cortar el poder en momentos ventajosos (para él). El software tiene que usar algoritmos de tiempo constante (para evitar ataques de tiempo ), no el algoritmo más rápido posible. El software debe escribirse con redundancias, en caso de que el adversario apunte un láser a la tarjeta para voltear algunos bits en la memoria y poner el software en un estado que no debería haber sido accesible (sí, es un ataque real).

Las medidas de seguridad como estas tienen un costo. Además, dado que los ataques siguen mejorando, el diseño de los chips tiene que mantenerse al día. La mayoría de los tipos de chips se vuelven cada vez más potentes siguiendo la ley de Moore, pero con las tarjetas inteligentes, las mejoras de ingeniería son absorbidas principalmente por la necesidad de contrarrestar nuevos ataques.

No son tarjetas que soportan 4k claves RSA. Pero son poco comunes. Hace unos años, se introdujo Java Card 3 para admitir casi todas las características del lenguaje Java; Creo que una tarjeta capaz de hacerlo sería capaz de firmar con 4k RSA. Pero en realidad no lo han hecho, en parte porque las mejoras de ingeniería se toman al aumentar las protecciones de seguridad, y en parte porque muchas mejoras de ingeniería se han incorporado a las tarjetas sin contacto, que requieren menos consumo de energía y tiempos de respuesta más rápidos.

Pero no hay mucho mercado para 4k RSA. A medida que las tarjetas inteligentes llegaban a ese punto, ECC se hizo ampliamente disponible. Puede obtener el mismo nivel de seguridad que 4k RSA con claves ECC mucho más pequeñas. El único inconveniente de cambiar de RSA a ECC es la compatibilidad con el algoritmo en toda su infraestructura, pero los dispositivos integrados, como las tarjetas inteligentes, son la parte más difícil: casi cualquier cosa del lado del servidor es compatible con ECC en estos días.

Si realmente necesita algo más potente, existen dongles USB con potencia informática "real", que pueden almacenar claves criptográficas y realizar operaciones criptográficas con una interfaz PKCS # 11. Estos dongles no tienen casi la misma resistencia a la manipulación física que un PKCS # 11 típico. Es un compromiso entre seguridad y rendimiento.

Otras lecturas:

Gilles 'SO- deja de ser malvado'
fuente