¿Cómo funciona el cifrado de FPGA?

6

Sé que FPGAS de Altera te permite cifrar el código RTL mientras trabajas con él, lo que no entiendo es por qué está realmente encriptado, ya que una vez que tengo el FPGA, puedo tomarlo y con el lector de flash ( teóricamente) lea el código codificado de RTL, lea la CLAVE del FPGA y luego tengo el código.

¿Qué me pierdo?

    
pregunta 0x90 22.02.2012 - 13:50
fuente

3 respuestas

4

Primera parte : los FPGA de Altera tienen algunos modelos que le permiten almacenar claves en memoria volátil y no volátil.

Altera explica que usan AES con 128 o 256 bits. La clave privada se almacena en el FPGA y la memoria externa tiene los datos cifrados con la clave pública. En el arranque, los datos se leen desde la memoria externa, se descifran con la clave privada dentro del FPGA y luego se procesan para configurar todas las siguientes lecturas (como un encabezado de configuración).

Fuente: enlace

Segunda parte : tienen medidas contra la manipulación para evitar que alguien haga exactamente lo que temes. Consulte: enlace

En general, es "fácil" abrir el chip y extraer la fuerza bruta de cada posición de componente dentro de él, realizando una especie de ataque de código inverso. Los FPGA son programables, por lo que un FPGA ya programado y uno virgen se verán igual en el nivel de ataque físico. Y terminas destruyendo la programación cuando intentas abrir el chip y extraer algo de él.

Y, para evitar que extraigas la clave, no hay ninguna función como * read_private_key *. Puede escribirlo y sobrescribirlo, pero no puede extraerlo.

    
respondido por el woliveirajr 27.02.2012 - 14:39
fuente
1

De la corriente de bits a la lista de redes: enlace

Seguridad de flujo de bits FPGA rota: enlace

si desea dedicar mucho tiempo, puede hacer ingeniería inversa de FPGA. Usando el análisis de potencia diferencial (DPA) para recuperar la clave de seguridad en el encendido, luego lea el flujo de bits, inviértalo a la lista de redes, analícelo hasta que sepa el diseño o simplemente clónelo.

    
respondido por el Smellymoo 11.08.2014 - 16:38
fuente
1

Lo que se está perdiendo es que los FPGA no proporcionan ninguna interfaz para leer la clave, y en teoría hacen que la extracción de la clave sea extremadamente difícil, por ejemplo. agregar capas de metal dentro del chip o borrar la clave cuando se detecta una manipulación indebida.

Hay un muy buen artículo llamado "Ataques de canal lateral en el cifrado de flujo de bits Mecanismo de Altera Stratix II " (Moradi, Oswald, Paar, Swierczynski) que describe el ataque a un flujo de bits cifrado de un antiguo Altera Stratix II FPGA. Los autores señalan que si bien romper la protección podría haber sido muy difícil en teoría, en realidad es sorprendentemente fácil en la práctica debido a problemas de implementación muy ingenuos, como:

  • usando la hora actual de la PC como la fuente principal de aleatoriedad
  • ocultar ingenuamente el material clave al distribuirlo dentro de una matriz de 40 bytes y almacenar dos bits por byte
  • dejando información de depuración dentro del crypto DLL
  • utilizando un chipter simétrico (AES) para la derivación de claves en lugar de una función unidireccional que hace que la derivación de claves sea irreversible trivialmente
  • aceptar el reloj de configuración externo que se puede hacer arbitrariamente lento para que el número de bits invertidos en cada ronda de descifrado se pueda ver de forma trivial al observar el consumo de energía

Las cosas obviamente han mejorado desde entonces, pero en general, el cripto bitstream FPGA sigue siendo un área mal revisada / auditada que depende en gran medida de la oscuridad.

    
respondido por el Dmitry Grigoryev 06.11.2018 - 15:25
fuente

Lea otras preguntas en las etiquetas