4 votos

Lectura del programa de una FPGA

Supongamos que tengo algún software propietario sensible (VHDL/Verilog) en una FPGA conectada a mi servidor para poder controlarla por SSH. Ahora supongamos que un atacante compromete mi servidor y puede comunicarse con la FPGA. ¿Podría el atacante leer el software sensible de mi FPGA?

7voto

GSerg Puntos 33571

El flujo de bits que controla la funcionalidad de su FPGA se llama normalmente "configuración", no "software". El flujo de bits de configuración se genera utilizando las herramientas de síntesis de la FPGA para compilar el código fuente Verilog/VHDL.

Hay varias formas de transferir la configuración a la FPGA cada vez que ésta "arranca". A grandes rasgos, son:

  • La configuración puede ser cargada directamente por el sistema de desarrollo a través de la interfaz JTAG.
  • La configuración puede ser autocargada por la propia FPGA desde un dispositivo EEPROM conectado. El propio dispositivo EEPROM suele programarse también a través de la interfaz JTAG.
  • La configuración puede ser cargada por la CPU de su servidor desde un archivo de disco.

Si un atacante consigue el control de la CPU de su servidor, entonces obviamente puede leer el archivo del disco si se está utilizando la tercera configuración.

Si la CPU del servidor tiene una conexión directa con la interfaz JTAG de la FPGA, entonces el atacante podría leer la configuración de la FPGA directamente desde la FPGA, o indirectamente leyendo el dispositivo EEPROM.

En una aplicación sensible a la seguridad, querrás usar la segunda configuración, con la FPGA leyendo la configuración desde la EEPROM, y querrá asegurarse de que la CPU del servidor hace no tienen acceso al puerto JTAG de la FPGA/EEPROM. Obviamente, tampoco almacenarás nada del código fuente Verilog/VHDL de la FPGA en el servidor.

1voto

user13107 Puntos 313

A menos que el atacante pueda reprogramar la lógica, leer la flash/eeprom/boot rom o acceder a sus archivos de programación en el ordenador, la respuesta es no. Realmente no hay manera de determinar completamente los ajustes de los interruptores en la capa de celdas que contienen el ajuste de configuración a menos que tenga acceso directo a ellos a través del puerto JTAG / programación.

Es posible que puedas inferir algunas configuraciones en algunas situaciones, pero apenas rascarías la superficie.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X