La ofuscación de hardware es una técnica mediante la cual se modifica la descripción o la estructura del hardware electrónico para ocultar intencionalmente su funcionalidad , lo que hace que sea significativamente más difícil realizar ingeniería inversa. En otras palabras, la ofuscación de hardware modifica el diseño de tal manera que la arquitectura resultante se vuelve no obvia para un adversario. [1] La ofuscación de hardware puede ser de dos tipos según la plataforma de hardware a la que se dirija: (a) Ofuscación de hardware del núcleo DSP : este tipo de ofuscación realiza cierta transformación de alto nivel en la representación del gráfico de flujo de datos del núcleo DSP para convertirlo en una forma desconocida que refleja una arquitectura no obvia a nivel RTL o de compuerta. Este tipo de ofuscación también se denomina " ofuscación estructural" . Otro tipo de método de ofuscación del núcleo DSP se denomina " ofuscación funcional" : utiliza una combinación de bloques de bloqueo de núcleo AES e IP (ILB) para bloquear la funcionalidad del núcleo DSP utilizando bits clave. Sin la aplicación de la secuencia de teclas correcta, el núcleo del DSP produce una salida incorrecta o ninguna salida en absoluto [2] (b) Ofuscación de hardware combinacional/secuencial : este tipo de ofuscación realiza cambios en la estructura de nivel de puerta del circuito en sí. [3] [4]
En esencia, es diferente de la marca de agua digital (donde la propiedad está oculta en el contenido digital mismo), o de la marca de agua de propiedad intelectual (PI) de hardware [5] donde la información de propiedad está incrustada y oculta en la descripción de un circuito . También es diferente de las técnicas de protección de PI de hardware basadas en criptografía comunes en el flujo de diseño de matrices de puertas programables en campo . [6] [7]
La importancia de las marcas de agua de hardware ha aumentado en los últimos años debido a la adopción generalizada de prácticas de diseño basadas en IP de hardware para circuitos integrados (CI) modernos, como los sistemas en chips (SoC). Los principales problemas de seguridad asociados con las IP de hardware incluyen: (a) infracción de la propiedad intelectual de hardware durante el diseño de SoC; (b) ingeniería inversa de los CI fabricados o la base de datos de diseño de CI (en instalaciones de fabricación ) para producir CI falsificados o clonados; y (c) modificaciones maliciosas de una IP a través de la inserción de troyanos de hardware para causar fallas funcionales en el campo . La ofuscación de hardware tiene como objetivo minimizar estas amenazas a nivel de IP o chip al dificultar que un adversario comprenda la funcionalidad real de un diseño.
Las técnicas de ofuscación de hardware se pueden clasificar en dos categorías principales: (a) las técnicas "pasivas", que no afectan directamente la funcionalidad del sistema electrónico , y (b) las técnicas "activas", que alteran directamente la funcionalidad del sistema. A menudo, las técnicas de ofuscación de hardware activas están "basadas en claves", de modo que la funcionalidad normal del diseño ofuscado solo se puede habilitar mediante la aplicación exitosa de una clave predeterminada única o una secuencia de claves secretas en la entrada; de lo contrario, el circuito opera en un modo que exhibe una funcionalidad incorrecta. Esto se puede hacer incorporando una máquina de estados finitos (FSM) bien oculta en el circuito para controlar los modos funcionales según la aplicación de la clave. La técnica de ofuscación de hardware activa basada en claves es similar en principio a los enfoques criptográficos de clave privada para la protección de la información , ya que la "secuencia de claves" para el diseño ofuscado juega un papel similar al de la clave criptográfica. La técnica se puede aplicar en diferentes niveles de descripción de hardware, a saber, diseño a nivel de compuerta o a nivel de transferencia de registro (RTL) y, por lo tanto, se puede utilizar para proteger núcleos IP blandos, firmes y duros. [8] La ofuscación también puede ayudar a ocultar de manera efectiva las características de seguridad en un CI y, por lo tanto, permitir la protección de los CI contra la falsificación y la clonación en las instalaciones de fabricación. [9]
Por el contrario, las técnicas pasivas modifican la descripción del circuito de forma suave (por ejemplo, cambios sintácticos), de modo que resulta difícil para un lector humano comprender la funcionalidad del circuito. Estos enfoques suelen emplear la sustitución de cadenas (incluido el cambio de nombre de variable, la eliminación de comentarios, etc.), [10] o el cambio estructural en la descripción del circuito en lenguaje de descripción de hardware (HDL) (incluido el desenrollado de bucle , el cambio de nombre de registro , etc.). [11] Una deficiencia importante de los enfoques pasivos es que no modifican la funcionalidad de caja negra de un circuito y, por lo tanto, no pueden evitar el uso potencial de una IP como caja negra en un diseño. Además, la fuerza real de dicha ofuscación pasiva es discutible, ya que, en general, la ofuscación de caja negra no existe, al menos para los programas de software que calculan ciertas funciones matemáticas . [12]
La marca de agua de hardware se puede utilizar junto con la ofuscación de hardware. En un diseño ofuscado, la marca de agua puede ser eficaz para proporcionar una segunda línea de defensa contra intentos de copia sin licencia. [13]
La ofuscación de hardware en informática probablemente tiene su origen en las CPU de mainframes , principalmente las fabricadas por IBM durante los años 1960 y 1970. IBM, con el fin de mantener cierta ventaja competitiva, implementó códigos de operación secretos que sólo serían utilizados por el sistema operativo de código cerrado en el mainframe. [ cita requerida ]