¿Por qué es tan limitada la capacidad de procesamiento y la memoria en las tarjetas inteligentes? [cerrado]

8

¿Por qué es que las tarjetas inteligentes comunes como la SLE5528 casi siempre están limitadas a < 16K de memoria disponible, y un procesador de 8 bits muy lento? ¿Cuál es el factor limitante que hace que sea tecnológicamente / económicamente imposible 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 las que se pueden usar en bibliotecas de programación de alto nivel como PKCS11). Constantemente alcanzamos los límites de este dispositivo (no podemos almacenar más de unas pocas claves, no podemos almacenar ninguna clave superior a 1k, debemos esperar al menos 5 segundos antes de buscar la lista de claves, etc.). La única persona al final de nuestro proveedor a la que pude contactar 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.

    
pregunta JDoe

2 respuestas

11
  

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

Es el precio adicional causado por las características de seguridad que hacen subir 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 una memoria flash normal, unir los cables al troquel y leer el contenido de la memoria. Con las tarjetas inteligentes esto no debería ser posible (o 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 tarjeta inteligente tienen un montón de funciones de seguridad integradas que no son necesarias para las CPU normales. Por ejemplo, no deberían filtrar ninguna información sobre el código que ejecutan por la cantidad de corriente que consumen, o filtrarse 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, las tarjetas inteligentes con más memoria están disponibles. Puedes comprarlos con más de 100kb de memoria. Aunque 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 más pequeño. Así que obtienes más de tu memoria limitada no volátil. ECC también es probable que sea más rápido.

    
respondido por el Nils Pipenbrinck
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 a prueba de manipulaciones . Están diseñados para almacenar secretos y suicidarse en lugar de renunciar a sus secretos. No puede (con un esfuerzo razonable, salvo fallas de implementación) extraer los datos o clonarlos.

Las tarjetas inteligentes están (se supone que están) diseñadas para que, si intenta omitir la interfaz del software y leer su memoria directamente, no pueda. 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 químicos corrosivos (ácidos, creo), de modo que si intenta hacer un agujero en la capa de protección, el chip (especialmente la memoria) estar dañado más allá de la recuperación.

El chip está diseñado para extraer potencia constante, para evitar que fuga de información a través del consumo de energía . 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 tuberías de instrucciones o administración de energía para reducir la disipación de calor. Los chips de tarjetas inteligentes a menudo contienen piezas 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 difíciles de analizar, y para dificultar la ingeniería inversa.

Algunas 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 el almacenamiento en caché de las cosas en la memoria RAM. De lo contrario, el adversario podría cortar el poder en tiempos 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 brille un láser en la tarjeta para voltear algunos bits en la memoria y poner el software en un estado que no debería haber sido accesible (sí, eso es un ataque real).

Las medidas de seguridad como éstas tienen un costo. Además, dado que los ataques siguen mejorando, el diseño de los chips debe mantenerse. La mayoría de los tipos de chips se vuelven más y más poderosos 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.

Hay tarjetas que admiten claves RSA de 4k. Pero son infrecuentes. Hace unos años, se introdujo Java Card 3 para admitir casi todas las funciones del lenguaje Java; Creo que una tarjeta capaz de hacer eso sería capaz de firmar con 4k RSA. Pero realmente no lo han tomado, en parte porque las mejoras de ingeniería se llevan a cabo mediante el aumento de las protecciones de seguridad, y en parte porque muchas de las 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 estaban llegando 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 el soporte para el algoritmo en toda su infraestructura, pero los dispositivos integrados como las tarjetas inteligentes son la parte más difícil: casi todo el lado del servidor es compatible con ECC en estos días.

Si realmente necesita algo más potente, existen dongles USB con capacidad de computación "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 física a la manipulación que un PKCS # 11 típico. Es un compromiso entre seguridad y rendimiento.

Lectura adicional:

respondido por el Gilles

Lea otras preguntas en las etiquetas