¿Puedo hacer el análisis de consumo de energía mucho más difícil desconectando temporalmente la fuente de alimentación?

2

Estoy pensando en construir un dongle que funcione como un dispositivo de teclado USB o PS / 2 y sea capaz de hacer algunas cosas criptográficas por mí, por ejemplo. proporcionar códigos de autenticación basados en el tiempo, almacenar contraseñas y cosas por el estilo. Sin embargo, me gustaría hacer esto al menos un poco seguro contra los ataques de análisis de consumo de energía.

Una cosa que tengo en mente es poner un pequeño capacitor en la placa y tener dos microcontroladores; El microcontrolador A habla con la computadora y el usuario, el microcontrolador B hace el cifrado. Cuando A solicita un cálculo utilizando una clave secreta, B se aseguraría de que tenga suficiente energía en el condensador y luego se desconecte de A utilizando transistores antes de realizar el cálculo real.

¿Esto suena como una buena idea? En otras palabras, ¿es probable que esto haga que los ataques de consumo de energía sean mucho más difíciles sin degradar significativamente la capacidad de uso?

Editar: asumo que el oponente está dentro de la PC pero no puede hacerse con el tablero.

    
pregunta thejh

2 respuestas

1

Si no está utilizando silicio personalizado, no veo ninguna forma de lograr una seguridad realmente buena contra el monitoreo de energía sin agregar algún tipo de batería (que de todos modos es posible que desee para el cronometraje) que esté montada de tal manera uno no puede obtener acceso a los componentes electrónicos sin romper la conexión de la batería (la placa tendría que recibir sus claves criptográficas después de que se instale la batería, y retirar la batería las borraría). Una vez que la placa está protegida de tal manera, hay muchas formas de protegerse contra el monitoreo de la fuente de alimentación. Un enfoque simple podría ser el cableado en serie con el suministro de un PFET con la fuente y el drenaje "invertido" para que cuando la puerta esté alta o flotando se comporte como un diodo. Si se baja la puerta momentáneamente, antes de un cálculo criptográfico, el VDD se elevará en una caída de diodo; Si uno levanta la compuerta, el micro sería alimentado por el bypass y las tapas del filtro hasta que su voltaje disminuya en 0.5 voltios o menos. El monitoreo externo podría determinar la corriente total consumida por un cálculo, pero eso probablemente no sería significativo.

    
respondido por el supercat
1

La idea podría ser rellenar los cálculos con cálculos irrelevantes para que la información que se filtra a través del consumo de energía se mezcle en cierta medida, haciéndola menos susceptible al escrutinio. Por ejemplo, hay muchas interrupciones que se activan mientras se realiza el cifrado, y realiza tareas aleatorias en los controladores de interrupciones. Si tu dispositivo puede cambiar su velocidad de reloj de ejecución sin afectar a los periféricos, eso también podría ser algo para jugar aleatoriamente.

En una línea similar, podría tener, a lo largo del código, bloques de instrucciones que no tienen ningún efecto, como realizar algunas operaciones aritméticas en registros o ubicaciones de memoria que finalmente restauran sus valores. Estos bloques de instrucciones podrían tener diferentes longitudes, y diferentes bloques de este tipo podrían elegirse en tiempo de ejecución.

Quizás el cálculo se pueda "blanquear" con algunos datos de señuelo mezclados, de modo que no haya dos ejecuciones de la misma operación con los mismos datos que produzcan la misma traza de potencia. Agregue sales, vectores iniciales o relleno de basura siempre que pueda.

Ejemplo simple. Digamos que está cifrando un dato de 64 bits D. Puede generar un valor pseudoaleatorio de 64 bits X, y luego generar el dato de 128 bits que consiste en X XOR D, y X. D no aparece en ese dato, pero puede ser Recuperado por XOR-ing las dos mitades juntas. Dos encriptaciones diferentes de D tendrán diferentes perfiles de potencia porque implican palabras de 128 bits diferentes. El atacante entonces no puede probar el dispositivo dándole D diferentes pero similares para ver cómo los cambios en bits individuales de D (y demás) influyen en la traza de poder.

    
respondido por el Kaz

Lea otras preguntas en las etiquetas