Bueno, "imposible" es imposible de probar, por lo que en la respuesta vinculada dije "casi imposible", tal vez incluso eso lo esté exagerando. Al usar un dispositivo de hardware seguro, el vector de ataque va del "malware instalado de forma remota en el robo de host", a "el atacante necesita acceder físicamente al dispositivo de hardware y eliminar de forma destructiva la clave privada". Esto último no es ciertamente imposible, pero es mucho más difícil.
Esos dispositivos USB funcionan de manera muy similar a las tarjetas inteligentes. Tengo más experiencia con tarjetas inteligentes, así que usaré eso en la respuesta, pero se aplican la mayoría de los mismos principios. De hecho, muchos de esos dongles usb usan una tarjeta inteligente SoC internamente. Son baratos, programables y ofrecen una seguridad robusta, por lo que en muchas aplicaciones tiene sentido utilizar una tarjeta inteligente internamente en lugar de intentar construir algo nuevo.
Una tarjeta inteligente programable es una computadora completa en un solo chip o sistema en un chip (SoC). Ahora es una computadora muy limitada pero sigue siendo una computadora. La conexión al "mundo exterior" para la tarjeta inteligente es una simple interfaz serial de bajo privilegio. La tarjeta recibe un comando (más como una solicitud) del host y la tarjeta responde con una respuesta. Los comandos se limitan a lo que la tarjeta ha sido programada para hacer.
Entonces, si tenemos una tarjeta inteligente programada para firmar digitalmente una instrucción (como una solicitud de pago en tarjeta de crédito EMV), el host enviará una solicitud a través de la interfaz serial a la tarjeta que consta de un comando y algunas entradas. La tarjeta analizó el comando y, asumiendo que es válido, envía una firma digital al host a través de la misma interfaz. En muchos aspectos, se asemeja a una relación cliente-servidor con la tarjeta inteligente que es el servidor y el sistema host el cliente. La clave privada nunca abandona la tarjeta durante el proceso. Es solo solicitud en, respuesta fuera. El host no tiene ningún mecanismo para obligar a la tarjeta inteligente a devolver la clave privada o hacer algo para lo que no estaba programado. Por supuesto, esto supone que no hay un comando "por favor, dame todas las claves privadas" que obviamente no tendría sentido y no daría seguridad. La tarjeta inteligente puede tener un PIN asignado por el usuario y el PIN es parte del formato del comando. La tarjeta inteligente verifica el PIN y, si no es válido, rechazará el comando. Tiene su propia memoria interna, por lo que puede registrar internamente la cantidad de intentos no válidos y puede programarse para apagarse (o en casos extremos, borrar la tarjeta).
La programación (flasheo) de una tarjeta inteligente se realiza antes del envío. Por supuesto, si un atacante pudiera reprogramar la tarjeta inteligente para ejecutar el programa "Dame todas tus llaves", no sería seguro, por lo que la mayoría de las tarjetas emplean algún tipo de bit de seguridad en la memoria de escritura una vez. Así se programa la tarjeta y se establece el bit de escritura. La tarjeta rechazará cualquier intento futuro de reprogramación.
Intenta no quedar atrapado en una tarjeta inteligente haciendo exactamente esto. Son dispositivos programables, por lo que variarán en la implementación, pero el concepto general es que usted tiene esta computadora autónoma con su propio almacenamiento seguro interno que ha sido programado para responder a las solicitudes de un host a través de una sencilla interfaz de bajo permiso. Estoy de acuerdo en que la palabra "imposible" es marketing, pero no está tan lejos de la verdad. Se podría decir que es prácticamente imposible. El diseño muy básico y la funcionalidad bloqueada significan que terminas con un dispositivo endurecido que es difícil de atacar.
Sin embargo, el antiguo axioma " no hay seguridad de la información sin seguridad física " todavía se aplica. La clave privada todavía está físicamente en la tarjeta inteligente. Con el acceso físico y la motivación suficiente, puede hacer prácticamente cualquier secreto "no secreto". Como en el ejemplo vinculado, la tarjeta inteligente se puede omitir y la clave puede leerse directamente de la memoria física. Un método común es tomar la tarjeta, quitar el SoC y usar la deconstrucción ácida para quemar el paquete. Usando un microscopio electrónico y suficiente habilidad, podría ubicar el punto en el silicio que almacena las teclas, conectar los cables y leerlos. Se ha hecho, por lo que definitivamente no es imposible, pero en la mayoría de los casos no es el tipo de ataque o atacante contra el que intentamos defendernos. Sinceramente, si su atacante alcanzara ese nivel, estaría más preocupado por una llave de $ 5 .