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: