Protección de microchips contra ingeniería inversa y entrada no autorizada


"CVAX: cuando te pones bastante roba lo mejor".
La inscripción dejada por los ingenieros estadounidenses para los colegas soviéticos en la topología del microprocesador.

La ingenier√≠a inversa de microchips es un dolor de cabeza para los fabricantes desde los primeros a√Īos de existencia de la microelectr√≥nica. Toda la electr√≥nica sovi√©tica en un momento se construy√≥ sobre ella, y ahora est√°n haciendo lo mismo en el Imperio Celestial, y no solo en √©l, a una escala mucho mayor. De hecho, la ingenier√≠a inversa es absolutamente legal en los EE. UU., La Uni√≥n Europea y muchos otros lugares, con el objetivo (cito la ley estadounidense) de "ense√Īar, analizar o evaluar los conceptos o t√©cnicas realizadas en el trabajo de m√°scara o en el circuito".

Los usos legales m√°s comunes para la ingenier√≠a inversa son los tribunales de patentes y con licencia. El espionaje industrial tambi√©n es com√ļn, especialmente porque los circuitos el√©ctricos (especialmente los anal√≥gicos) a menudo son propiedad intelectual clave y rara vez se patentan, solo para evitar la divulgaci√≥n de IP y la participaci√≥n en tribunales de patentes como acusador. Por supuesto, en una situaci√≥n en la que necesita proteger su propiedad intelectual sin patentarla, los desarrolladores y fabricantes est√°n tratando de encontrar formas de evitar la copia de sus desarrollos.

Otra área no menos importante (o incluso más importante) de proteger los microchips de la ingeniería inversa es garantizar la seguridad de la información almacenada en la memoria. Dicha información puede ser tanto firmware de FPGA (que es, nuevamente, propiedad intelectual del desarrollador) como, por ejemplo, un código PIN de una tarjeta bancaria o una clave de cifrado para una unidad flash segura. Mientras más información valiosa confiemos en el mundo que nos rodea, más importante es proteger esta información en todos los niveles de los sistemas de procesamiento, y el nivel de hardware no es una excepción.
Primero lo primero: algo importante para entender. Hablando tanto de la ingeniería inversa como de la protección contra la copia de datos, debe comprender que no existen métodos de protección absolutamente estables, y todo lo que es real es hacer que el proceso sea tan largo y / o costoso que se vuelva económicamente inoportuno.

Hace muchos a√Īos, el trabajo de un ingeniero inverso o un pirata microelectr√≥nico era mucho m√°s f√°cil que ahora. Mire, por ejemplo, esta imagen (gracias a BarsMonster por nuestra infancia feliz y buenas fotos): con una comprensi√≥n b√°sica de la tecnolog√≠a, restaurar un circuito el√©ctrico es cuesti√≥n de varias horas.

imagen
Figura 2. Una instantánea de la topología del amplificador operacional OPA134PA. Fuente - zeptobars.com

Aquí , por cierto, hay un ejemplo de ingeniería inversa del chip TL431 hecho por Ken Shirriff a partir de fotografías de BarsMonster. Y aquí está la traducción al ruso. El blog de Ken tiene muchas cosas interesantes si te interesa el tema de la ingeniería inversa amateur.

Y aqu√≠ (¬°con cuidado, tr√°fico!) Hay un informe de la ingenier√≠a inversa del chip Zilog Z80-CTC, realizado en 1979, casi inmediatamente despu√©s del lanzamiento del chip. Ahora, este es un documento hist√≥rico √ļnico, y luego fue informaci√≥n de gran valor comercial y obtenida (a juzgar por varias referencias a est√°ndares militares), probablemente en el proceso de certificaci√≥n de un microcircuito para aplicaciones especiales.

Pero vivimos en 2019, y no en 1979, y ahora invertir el esquema completo de un nuevo microprocesador Intel es cuesti√≥n de muchos meses o a√Īos, incluso con un buen nivel de automatizaci√≥n del proceso (sin mencionar el hecho de que incluso con una resoluci√≥n aceptable podemos disparar la topolog√≠a con est√°ndares de dise√Īo 14 -10-7 nm es una tarea muy dif√≠cil). ¬ŅQu√© es Intel? Compare la cantidad de trabajo en ingenier√≠a inversa o an√°lisis del amplificador de la imagen anterior y el procesador Baikal-T1, realizado de acuerdo con el muy popular y relativamente asequible proceso de fabricaci√≥n de 28 nm. La ingenier√≠a inversa completa de productos tan grandes es extremadamente rara, a menudo es interesante observar algunos bloques espec√≠ficos y relativamente peque√Īos. Por ejemplo, para averiguar si violan su patente o para comparar su decisi√≥n con los productos de la competencia y tratar de entender por qu√© es mejor o peor. O, para descubrirlo, los propios desarrolladores de chips implementaron esta o aquella funcionalidad, o tomaron prestado su bloque de IP.

imagen
Figura 3. Una instantánea de la topología del procesador Baikal-T1. Fuente - zeptobars.com

Aqu√≠ pasamos a la siguiente parte importante en la historia de la ingenier√≠a inversa. En la antig√ľedad, todo el chip se desarroll√≥ de principio a fin dentro de una empresa, a veces incluso por las fuerzas de un equipo muy peque√Īo o un solitario solitario como Bob Widlar. Los microcircuitos modernos est√°n llenos de bloques de IP, cuya venta y compra es un gran mercado que, por supuesto, tambi√©n tiene control de derechos de autor, espionaje industrial y pirater√≠a. Por lo tanto, es posible y necesario analizar el problema de la protecci√≥n contra la copia no autorizada no solo desde el punto de vista del desarrollador del producto final, sino tambi√©n desde el punto de vista del desarrollador de IP, para quien el desarrollador del producto tambi√©n puede ser un pirata.

En el caso de la piratería, la estructura interna del intruso generalmente no es interesante para recibir datos, y se realiza una ingeniería inversa parcial (si es que existe) para encontrar vulnerabilidades y explotar estas vulnerabilidades, ya sea mediante conexión directa o mediante otros métodos. La tarea del desarrollador contra la piratería es evitar el uso de puntos potencialmente débiles y, si es necesario, destruir datos confidenciales cuando se intenta piratear.

PERSONAS ACTUALES


Para comenzar, descubramos qui√©n puede proteger el dise√Īo del chip de eso. Las siguientes entidades est√°n involucradas en la cadena desde la idea hasta la aplicaci√≥n, y tienen diferentes tipos de acceso a la informaci√≥n sobre el contenido del microcircuito.

  1. Desarrollador de bloque de IP. Tiene toda la información, todos los archivos necesarios, métodos de medición, etc. etc.
  2. Desarrollador de chips. En el caso de Soft IP, Verilog / VHDL tiene un código de bloqueo; en el caso de Hard IP, puede tener una topología o una caja negra. Si hay partes programables o de software en la unidad, también tiene acceso a ellas.
  3. La fábrica Tiene acceso a los archivos de topología GDSII, pero no tiene acceso a la parte del chip que depende del software (por ejemplo, al firmware PROM).
  4. Embalaje y pruebas de producción. Tiene acceso al chip, así como a métodos de prueba y tarjetas de firmware para memoria programable de una sola vez. Raramente alguien defiende a propósito de ellos, pero deberían estar en la lista, porque algunos de los métodos adecuados para la protección de la fábrica no funcionan en su contra.
  5. Competidor / cracker. Solo tiene acceso al producto terminado y a la documentación del usuario.

En el caso m√°s simple, el dise√Īador de chips (2) quiere protegerse de la copia por parte de un competidor (5) o hacer un chip con memoria protegida de lectura no autorizada. En un poco m√°s complicado, el desarrollador de IP (1) quiere asegurarse de que el desarrollador cumpla con el chip (2) del acuerdo de licencia. Tambi√©n sucede que el desarrollador del chip (2) no conf√≠a en la f√°brica (3) y sospecha que puede conducir falsificaciones en el turno de noche.

Escrib√≠ en detalle sobre qu√© es IP en circuitos integrados hace alg√ļn tiempo, as√≠ que no repetir√© este art√≠culo. Tambi√©n hay un poco sobre c√≥mo los desarrolladores de IP protegen su propiedad intelectual. En resumen, para proteger la topolog√≠a, la f√°brica generalmente participa como un tercero, y el comprador no recibe la topolog√≠a propiamente dicha, y se utilizan t√©cnicas de ofuscaci√≥n similares a las de cualquier otro c√≥digo para asegurar el c√≥digo Verilog.

Herramientas


¬ŅQu√© herramientas de an√°lisis de microchip existen? El primer nivel es un poco de √°cido para abrir primero la carcasa del microcircuito, y luego eliminar las capas una por una, y un microscopio √≥ptico regular con una c√°mara. Es econ√≥mico, es f√°cil trabajar con ellos, y para el an√°lisis de circuitos simples realizados con las √ļltimas tecnolog√≠as, esto es suficiente.

Para esquemas más grandes, existen sistemas CAD especiales que permiten de una forma u otra automatizar la restauración de datos desde la topología, proporcionando al ingeniero inverso una interfaz más conveniente para el trabajo que simplemente dibujar líneas en un editor gráfico. La automatización también se simplifica por el hecho de que todos los circuitos digitales modernos se construyen a partir de bibliotecas, y después de la ingeniería inversa, los elementos de la biblioteca para ensamblar un circuito son cuestión de tiempo (o potencia de procesamiento disponible).

El siguiente nivel, inaccesible para los aficionados, pero presente en laboratorios especializados es un microscopio electrónico de barrido (SEM). Utiliza un haz de electrones enfocado en lugar de un haz de luz. La resolución SEM puede ir hasta 1 nm e incluso un poco más baja, lo que es suficiente para analizar cualquier circuito integrado moderno.
FIB es un an√°logo de SEM, solo que usa un haz de iones m√°s pesados ‚Äč‚Äčen lugar de un haz de electrones. En realidad, FIB es un haz de iones enfocado. La principal diferencia entre FIB y SEM es que con su ayuda no solo puede analizar el microcircuito, sino tambi√©n modificarlo, por ejemplo, hacer cortes (para ver la secci√≥n transversal del microcircuito o eliminar una pieza) o rociar material (para crear una conexi√≥n all√≠ donde no est√°) Los desarrolladores y fabricantes de microcircuitos utilizan ampliamente las FIB para trabajar con muestras de prueba, ya que lleva mucho tiempo corregir el error al usarlo, pero a√ļn as√≠ es mucho m√°s r√°pido y econ√≥mico que reiniciar un lote experimental. Para un ingeniero inverso, esta tambi√©n es una forma √ļnica de llegar a aquellas partes del cristal que, de acuerdo con la intenci√≥n del desarrollador, no deber√≠an estar disponibles. Y, al dise√Īar un chip protegido contra pirater√≠a, esto tambi√©n debe tenerse en cuenta.


Figura 4. Sección transversal de un microcircuito hecho con FIB. Fuente - SERESSA-2015 (cuidadosamente, mucho tráfico en pdf desde el enlace).


Figura 5. Realizado por modificación FIB del chip, cambiando varias conexiones.

Otra herramienta indispensable para un ingeniero inverso es un conjunto de l√°seres. Los fan√°ticos pueden usar l√°seres potentes con los que pueden abrir microcircuitos en cajas de pl√°stico y obtener acceso al cristal. Para los l√°seres profesionales, dependiendo de la longitud de onda, algunas partes del dise√Īo del microcircuito pueden ser transparentes y otras no transparentes. Esto le permite utilizar un l√°ser, por ejemplo, para abrir con precisi√≥n la pasivaci√≥n y el aislamiento, de modo que luego pueda unir c√≥modamente la l√≠nea de metal sin correr el riesgo de cortocircuitarla con sus vecinos. Otros par√°metros le permitir√°n cortar metal o quemar transistores individuales. El tercero es inducir corriente en los transistores cambiando las celdas de cach√© o alg√ļn tipo de l√≠neas l√≥gicas. La √ļltima opci√≥n se usa universalmente como una simulaci√≥n econ√≥mica de los efectos de part√≠culas cargadas pesadas, pero en principio, el mal funcionamiento de un microcircuito en funcionamiento tambi√©n puede ser √ļtil para comprometer la informaci√≥n contenida en √©l. Por ejemplo, puede ser interesante reescribir alguna bandera en el archivo de registro o corregir ligeramente la operaci√≥n del generador de n√ļmeros aleatorios.


Figura 6. Aspecto del l√°ser para estudiar el efecto de fallas individuales en microcircuitos. Fuente - SERESSA-2015.


Figura 7. Un ejemplo de la sensibilidad de una parte de un microcircuito a una sola falla y falla obtenida usando una tarjeta l√°ser. Fuente - SERESSA-2015.

En los laboratorios avanzados de ingenier√≠a inversa, puede encontrar muchas otras herramientas interesantes; por ejemplo, una se√Īal digital de hasta varias decenas de MHz se puede monitorear en tiempo real colocando un peque√Īo trozo de niobato de litio en la l√≠nea correspondiente e ilumin√°ndola nuevamente con un l√°ser.

CASO 1: F√ĀBRICA NO CONFIABLE


¬ŅCu√°l podr√≠a ser la raz√≥n para no confiar en la f√°brica donde haces tus cristales? En un mundo ideal, por supuesto, no te involucrar√°s con una f√°brica en la que no conf√≠as, pero a veces las consideraciones comerciales te obligan a correr riesgos. Se puede minimizar de dos maneras principales:

  1. La llamada fabricaci√≥n dividida o, de manera simple, producci√≥n en dos f√°bricas. Pero no en paralelo (como se suele hacer para minimizar el riesgo de escasez en caso de retrasos imprevistos en la producci√≥n), sino parte de las operaciones en una f√°brica y parte en otra. Esto es bastante inconveniente para todos los participantes en el proceso (y ciertamente no todas las f√°bricas estar√°n de acuerdo con esto), pero esto obligar√° a la f√°brica poco confiable a al menos revertir el resto del dise√Īo del chip y crear las m√°scaras que faltan por s√≠ mismas. (que, idealmente, deber√≠a hacer que el juego no valga la pena). La principal desventaja de este enfoque es que las capas superiores del chip son metalizadas, cuya ingenier√≠a inversa es bastante simple. Sin embargo, la fabricaci√≥n dividida puede ser realmente efectiva en combinaci√≥n con algunos conocimientos tecnol√≥gicos en metales, que una f√°brica poco confiable no puede reproducir. Por ejemplo, si la segunda f√°brica de su elecci√≥n sabe c√≥mo hacer memoria no vol√°til (MRAM, memristors o algo as√≠) en la capa superior de metalizaci√≥n, sin la cual todo el dise√Īo pierde su significado.
  2. Si no tiene ning√ļn conocimiento tecnol√≥gico, entonces la manera simple y confiable es hacer que el chip no tenga sentido sin m√°s programaci√≥n. Los bloques programables se pueden hacer de forma independiente utilizando la memoria de configuraci√≥n, o en forma de un bloque basado en un FPGA incorporado (existen tales IP en el mercado). La memoria de configuraci√≥n como una forma de protecci√≥n le permite estar seguro de que la f√°brica no puede simplemente tomar y producir su chip sin pasar por usted. Pero puedes leer la memoria de configuraci√≥n, ¬Ņverdad? S√≠, pero la presencia de memoria de configuraci√≥n obliga a una f√°brica poco confiable, en lugar de una forma simple de aumentar los vol√ļmenes de producci√≥n, a realizar la misma ingenier√≠a inversa que todos los dem√°s atacantes.

Por separado, observo que los dos métodos de protección descritos de una fábrica poco confiable ayudan contra la copia no autorizada, pero no se guardan de los "marcadores" populares en círculos estrechos. Además, un poco más adelante hablaré sobre cómo marcar la topología nosotros mismos.

CASO 2: PROTECCI√ďN DE MEMORIA


La presencia de bloques programables y memoria de configuraci√≥n en el chip es un atributo casi indispensable de cualquier dise√Īo moderno, tanto digital como anal√≥gico. Con una disminuci√≥n en los est√°ndares de dise√Īo, aumenta la difusi√≥n de los par√°metros de un chip a otro, y el ajuste digital es la forma m√°s f√°cil y confiable de superarlo. Y los circuitos digitales (por ejemplo, microcontroladores) generalmente almacenan datos directamente en el chip y pueden tener una estructura de memoria de varios niveles, cuyas diferentes partes tienen diferentes niveles de acceso y protecci√≥n. Por lo tanto, parece l√≥gico utilizar en primer lugar la herramienta que ya tenemos para aumentar la seguridad y la resistencia a las grietas, y en segundo lugar, la idea de pensar detenidamente sobre qu√© tipo de memoria utilizar.

Firmware con conexiones metálicas (ROM de máscara). Por lo general, parece la presencia o ausencia de contacto entre dos líneas de metal, un poco menos frecuente, como la presencia o ausencia de un transistor entre ellas. El más roble se usa en cristales de matriz base (BMC), no solo en la antigua industria de defensa, como se podría pensar, sino también en soluciones bastante modernas, por ejemplo, en chips auxiliares dentro de procesadores Xeon. Además, utilizando dicha memoria, se crean familias de microcircuitos (principalmente microcontroladores), porque flashear la memoria en la fábrica cambiando una máscara es más barato que el firmware universal de cada cristal producido en una placa o en un estuche. Máscara ROM se lee muy fácilmente con un microscopio y grabado preciso. En casa puedes manejarlo.


Figura 8. Firmware ROM con interconexiones met√°licas en un chip FTDI FT232RL falso. Fuente - zeptobars.com

Tambi√©n debe se√Īalarse aqu√≠ que es posible flashear la memoria no solo con una capa de contactos entre metales, sino tambi√©n con la presencia y ausencia de metal (f√°cil de leer √≥pticamente), la presencia o ausencia de dopaje (f√°cil de leer √≥pticamente), o, por ejemplo, el voltaje umbral de un transistor controlado por el nivel de dopaje (mal leer √≥pticamente). Entonces, en principio, la ROM de m√°scara no tiene todo perdido si realmente quieres ocultar su contenido.

Memoria en puentes quemados (Fuse ROM). Permite una grabaci√≥n (incluida la grabaci√≥n del usuario en el dispositivo terminado) y un n√ļmero ilimitado de lecturas, es muy simple de fabricar y programar, y por lo tanto popular para todo tipo de memoria de configuraci√≥n y firmware.


Figura 9. Dos estados de Fuse ROM. Fuente - semiengineering.com

Como puede ver, el estado de un puente fusible com√ļn (Fusible) es muy f√°cil de ver a trav√©s de un microscopio, es decir, es simplemente imposible protegerse de abrir un cristal con √©l. Bueno, y adem√°s de todo lo dem√°s, el puente quemado cl√°sico es bastante grande (varias micras cuadradas) y, por lo tanto, no es adecuado para grandes cantidades de memoria.

Memoria flash y otras opciones de EPROM y EEPROM basadas en transistores de puerta flotante.


Figura 10. Esquema de grabación flash. Fuente - techreport.com

El principio de funcionamiento de este tipo de memoria es bastante simple: una puerta "flotante" se encuentra en una capa gruesa de un diel√©ctrico. Se puede colocar una carga el√©ctrica en este obturador haciendo un t√ļnel, aplicando un alto voltaje. Y luego, si no aplica alto voltaje, la carga puede almacenarse en el obturador "flotante" durante mucho tiempo.
¬ŅQu√© hay de la seguridad?La buena noticia es que el estado de la EEPROM no se puede ver con un microscopio. Mal? Hay varios de ellos a la vez.

La primera mala noticia es que la EEPROM se borra no solo por el alto voltaje, sino tambi√©n por la exposici√≥n a la radiaci√≥n ultravioleta (los antiguos probablemente recuerden los chips con vidrio de cuarzo). Al mismo tiempo, si observa cuidadosamente la topolog√≠a con un microscopio, es posible que pueda cubrir toda la memoria con un material opaco, a excepci√≥n de esos pocos bits que incluyen protecci√≥n contra lectura y, despu√©s de la exposici√≥n, su chip. Moraleja: Usando EEPROM en su proyecto, c√ļbralo con metal en la parte superior. Y es deseable no solo con un escudo s√≥lido contra la radiaci√≥n, sino tambi√©n con algunas l√≠neas significativas, para que el escudo no se pueda grabar con precisi√≥n. Sin embargo, una emboscada tambi√©n est√° oculta aqu√≠ (es la segunda mala noticia), porque en principio un microcircuito o sus partes individuales se pueden resaltar desde abajo. Esto no es f√°cil, porque lo m√°s probable es que requiera retirar el chip de la carcasa y,por ejemplo, grabar el fondo del sustrato, pero es posible. Dichas t√©cnicas son populares para probar microcircuitos de un solo chip, ya que la metalizaci√≥n es opaca tanto para los rayos UV como para el l√°ser, y el sustrato de silicio es casi transparente, la pregunta es c√≥mo enfocar el haz de radiaci√≥n correctamente si se necesita exposici√≥n local.

Como opción alternativa, puede configurar los bits de activación / desactivación de la protección para que su borrado active la protección y no la desactive.
La tercera mala noticia es que hay sensores que pueden leer la carga eléctrica en una puerta flotante o sus restos después de una operación de borrado. Además, para leer eléctricamente la memoria, en general, no es necesario alimentar el chip, es decir, no hay riesgo de activar los mecanismos de destrucción de información incorporados.

Mram, aunque relativamente raro, sin embargo, también merece nuestra atención. Es, como flash, no puede considerarse ópticamente. MRAM, por supuesto, no se puede borrar con luz ultravioleta, pero existen sensores de campo magnético con una resolución lo suficientemente alta como para enfrentar los metales superiores y leer la memoria poco a poco. Buenas noticias? Es poco probable que un atacante potencial los encuentre rápida y económicamente. En general, MRAM es una buena alternativa al flash desde el punto de vista de la seguridad, pero hasta el momento no está ampliamente disponible y acaba de entrar en producción en masa en tecnologías disponibles para empresas sin fábrica.

Hoy, la ROM antifusible se considera la memoria m√°s protegida de la ingenier√≠a inversa.. Como su nombre lo indica, representa una cierta ant√≠poda de puentes quemados, es decir, tiene una alta resistencia en un estado no programado y baja en un programado. ¬ŅC√≥mo se logra esto? Con la ruptura de la puerta de la puerta diel√©ctrico de un transistor con un alto voltaje. La regi√≥n de descomposici√≥n es tan peque√Īa que no es visible desde arriba en el microscopio o en la secci√≥n de la FIB, pero tambi√©n proporciona un cambio bueno y confiable en la resistencia en varios √≥rdenes de magnitud, que es suficiente para una lectura confiable del estado de la memoria de manera regular. Sin embargo, dicha celda de memoria puede leerse conect√°ndose directamente a la puerta y fuente del transistor de memoria. Una celda ininterrumpida se comporta como un condensador, una celda unida se comporta como una resistencia.


Figura 11. Sección celular de una memoria antifusible. Se muestran varias áreas de posible descomposición del transistor. Esto puede complicar el esquema de lectura.

Por supuesto, hay otras formas de averiguar el contenido de la memoria, adem√°s de la inspecci√≥n visual de las c√©lulas. La forma m√°s f√°cil es usar FIB para conectarse directamente a las l√≠neas de lectura correspondientes y enviarles cualquier se√Īal de control que deba enviarse para leer informaci√≥n inaccesible de manera normal. Anteriormente, puede desactivar la protecci√≥n contra lectura cortando f√≠sicamente las l√≠neas que conducen a los bits de memoria correspondientes. ¬ŅC√≥mo protegerse de esto? Despu√©s de haber dise√Īado correctamente la topolog√≠a de su chip y, posiblemente, haber integrado algunas funciones adicionales en √©l. Aqu√≠ hay un ejemplo de c√≥mo Cypress hace esto:

It is possible to configure the nvSRAM to provide password protected access. In this configuration, instead of performing the normal power up recall sequence on power up, the part waits for the user to enter a 5-byte password followed by an End Password Entry soft sequence. The End Password Entry soft sequence is a specific seven-address read sequence. If you enter the correct password, the part completes the boot up sequence and is ready for the normal nvSRAM operations. If you enter the incorrect password three times or you do not enter the right password within a specified period of time, the part locks up or fills the SRAM memory with random data, as the application requirement may be. The part can be configured to additionally destroy the functionality and cause physical damage to the chip.

Por lo general, esto se hace: la memoria est√° cubierta desde arriba por una cuadr√≠cula de tierra y l√≠neas el√©ctricas, y todas las l√≠neas de se√Īal se encuentran estrictamente debajo de ellas. En este caso, se debe tener cuidado para garantizar que las l√≠neas de alimentaci√≥n, por un lado, no se dupliquen entre s√≠ (es decir, al cortar cualquiera de ellas, parte del microcircuito deja de funcionar) y, por otro lado, para que cada una de ellas sirva a muchos bits de memoria , y la inserci√≥n de un amper√≠metro en la l√≠nea de alimentaci√≥n no podr√≠a permitirnos estimar el estado de la memoria por consumo en modo de lectura (que difiere para diferentes estados l√≥gicos en la mayor√≠a de los tipos de memoria). Con tal organizaci√≥n de las capas superiores del chip, ser√° extremadamente dif√≠cil para un atacante abrir parte de la metalizaci√≥n para conectarse a donde necesita.

Incluso en la red de tierras y fuentes de alimentaci√≥n, se disponen l√≠neas de protecci√≥n adicionales para que una ruptura en ellas (o su cortocircuito a la alimentaci√≥n o a la tierra) cuando se suministre energ√≠a al chip inicie la eliminaci√≥n completa del contenido de la memoria protegida (o, como vimos anteriormente, da√Īo f√≠sico chip). Dichas l√≠neas de protecci√≥n, ubicadas al lado del suelo y las l√≠neas el√©ctricas, complican enormemente el trabajo de los atacantes, porque las operaciones con la FIB requieren un lugar tangible seg√ļn los est√°ndares de los procesos tecnol√≥gicos actuales. Adem√°s, debido a la forma en forma de cono del recorte creado por el microscopio, cuanto m√°s baja sea la capa a la que desea conectarse, m√°s √°rea necesita limpiar sobre ella.

Pero, de hecho, muy a menudo, un atacante puede no necesitar el valor exacto del contenido de la memoria, puede ser suficiente para reducir el n√ļmero de opciones para ordenar en varios √≥rdenes de magnitud. Por ejemplo, si una celda de memoria consume mientras lee una unidad l√≥gica X, y mientras lee un cero l√≥gico 100 * X, al leer un byte de dicha memoria, obtendremos un consumo diferente dependiendo del contenido de la memoria:

0 - 800 * X
1,2,4, ..., 64, 128 - 701 * X
3, 6, 7, ..., 160, 192 - 602 * X
....
255 - 8 * X

En total, si no tocamos la memoria, necesitamos 256 intentos para seleccionar la contrase√Īa que contiene. Y si sabemos que el consumo en modo de lectura es 701 * X, entonces solo hay ocho. Conveniente, ¬Ņno es as√≠? La forma m√°s f√°cil de hacer algo con este problema es almacenar los datos en forma de un valor y su inversi√≥n en una celda vecina; entonces el consumo de cualquier cantidad de memoria en modo de lectura no depender√° de la informaci√≥n almacenada. Es cierto, requiere el doble de memoria, pero la seguridad es importante para nosotros, ¬Ņverdad?

CASO 3: SIN MEMORIA


Pero, ¬Ņqu√© pasa si su chip no contiene memoria de configuraci√≥n o contiene solo unos pocos bits, que no tienen sentido ocultar? Por qu√© Por lo tanto, es mucho m√°s barato (no tanto al reducir el costo de las m√°scaras para la litograf√≠a, sino por un proceso m√°s simple de empaquetado y prueba), y para la mayor√≠a de los chips simples, el precio es una gran ventaja competitiva.

Hablando de pruebas. El proceso de rechazo de cristales en obleas y memoria de configuraci√≥n intermitente a menudo se subcontrata, especialmente por peque√Īas empresas, porque el equipo apropiado generalmente no es asequible para las nuevas empresas, y se debe garantizar la calidad. Por lo tanto, si la producci√≥n de terceros est√° actualizada con sus m√©todos de prueba y tiene firmware de memoria de configuraci√≥n, entonces ser√≠a mejor para usted confiar completamente en estas personas. O tenga m√©todos adicionales de protecci√≥n contra ingenier√≠a inversa que no est√©n vinculados a la memoria de configuraci√≥n.

Entonces, ¬Ņqu√© hacer si la memoria de configuraci√≥n no es una opci√≥n de protecci√≥n o si no es suficiente?

El principal inconveniente de un microscopio √≥ptico y SEM es que es muy dif√≠cil distinguir entre los tipos de dopaje de silicio. Es decir, la presencia de aleaci√≥n es visible, pero el tipo no lo es. Por lo tanto, al analizar la topolog√≠a y la extracci√≥n del circuito, el tipo de dopaje se restaura desde el contexto y la l√≥gica impl√≠cita del circuito (los transistores de canal n est√°n conectados a tierra, los transistores de canal p est√°n conectados a la alimentaci√≥n, etc., etc.). Despu√©s de haber dibujado la topolog√≠a de su microcircuito para que no coincida con la opci√≥n m√°s intuitiva, probablemente puede estropear la sangre de un ingeniero reverso. Especialmente si usa varios esquemas diferentes disfrazados de lo mismo. Con cierta destreza, no solo puede complicar el an√°lisis de su circuito, sino que tambi√©n puede hacer que el dispositivo (o al menos modelado, pero m√°s divertido si se produce) utilizando la topolog√≠a restaurada haga algo espec√≠fico, desde acortar el suelo con potencia hasta emitir palabras obscenas a todas las salidas. El comportamiento determinista de un dise√Īo robado incorrectamente, por cierto, puede ser √ļtil no solo para quemar un osciloscopio a los piratas, sino tambi√©n para garantizar que cuando m√°s tarde recibas usuarios decepcionados de tus chips, puedas demostrarles claramente que compraron falso


Figura 12. Sección de tres estructuras indistinguibles por un microscopio. El izquierdo es pMOSFET, el del medio es un cortocircuito, el derecho es un diodo polarizado (gap).


Figura 13. Topología de tres celdas de biblioteca digital que no se pueden distinguir con un microscopio. El izquierdo es el inversor, el medio es la conexión directa de la entrada y la salida, el derecho es la unidad lógica de salida.

Cada una de las celdas de la figura anterior se parece casi al inversor m√°s com√ļn, pero en realidad puede ser un inversor, repetidor o generador de un cero l√≥gico o una unidad l√≥gica. Solo nuestros contactos para difusi√≥n desde la entrada y la salida emiten nuestro "inversor". Sin embargo, al abandonarlos, obtendremos un circuito completamente indistinguible a cambio de la imposibilidad de implementar la conexi√≥n de entrada y salida (pero podemos usar dos inversores para este prop√≥sito). Sin embargo, con la capacidad de invertir o no invertir una se√Īal usando la misma celda, la lucha contra un atacante es mucho m√°s interesante, porque nada complica los intentos de lidiar con problemas de un dise√Īo desconocido como un inversor adicional en alg√ļn lugar del reloj o circuito de encendido / apagado.

Aunque no, sucede. Una topología manual bien construida suele leerse bien. Un gran ejemplo es el ya mencionado blog de Ken Schirriff.


Figura 14. Unidad lógica aritmética (ALU) del chip Intel 8008. Se muestran dígitos separados.

En la topolog√≠a de ALU Intel 8008, ocho circuitos id√©nticos son perfectamente visibles, por la cantidad de bits. Al comprender que esto es ALU, puede restaurar f√°cilmente el esquema de topolog√≠a. Si algunos de los elementos que contiene son falsos, esto complicar√° un poco su trabajo, pero no m√°s. Y todo porque la topolog√≠a encaja bien en la idea b√°sica de las interfaces entre las partes constituyentes. Para confundir tanto a un atacante que abandone los intentos de ingenier√≠a inversa, es necesario hacer que la topolog√≠a sea impredecible y no se repita. La forma m√°s f√°cil no es hacer bloques manualmente, sino generar la lista de redes completa del chip usando CAD. Los trazadores autom√°ticos, a pesar del enorme ahorro de tiempo en la creaci√≥n de una topolog√≠a (en comparaci√≥n con el trabajo manual), hacen un excelente trabajo al crear una disposici√≥n no intuitiva de elementos y en lugares completamente locos. Y cuanto m√°s grande es el dise√Īo, cuya topolog√≠a se sintetiz√≥ en su conjunto, m√°s dif√≠cil es realizar ingenier√≠a inversa.

Pero esta es la forma más fácil. Hay más opciones interesantes. Por ejemplo, use un conjunto de celdas de camaleón como un conjunto de generadores de ceros lógicos y unos para las entradas del multiplexor, mientras realiza una función lógica arbitraria. En realidad, así es como se organizan los elementos de FPGA, LUT (tabla de consulta).


Figura 15. Implementación de una LUT de tres entradas. Fuente

Al colocar varias LUT en diferentes lugares del circuito y llevar algunas se√Īales a las entradas de las "celdas de memoria", resolveremos varios problemas a la vez:

  1. Si nuestra maniobra permanece sin resolver, podremos establecer cómo se comportará exactamente el circuito de ingeniería inversa. Opciones: cualquiera, limitada solo por su imaginación.
  2. El uso de se√Īales arbitrarias de otros bloques como "entrada" para las celdas que generan cero l√≥gico y uno complicar√° el proceso de separaci√≥n visual del dise√Īo en bloques.
  3. Incluso si el ingeniero inverso se da cuenta de que estamos usando tales LUT protegidas, tendr√° que clasificar muchas opciones para restaurar la funcionalidad del circuito de acuerdo con la topolog√≠a, de modo que incluso un n√ļmero relativamente peque√Īo de celdas protegidas puede hacer que la ingenier√≠a inversa requiera innecesariamente mucho tiempo. Mi favorito es ensamblar una m√°quina de estado en tales LUT que controle las transiciones del microcircuito de un modo operativo a otro.

DIAGRAMAS DE PRUEBA


Los buenos ingenieros son muy aficionados a probar exhaustivamente sus chips. Y por "exhaustivamente" quiero decir, aproximadamente de la misma manera que en el convertidor TI DC / DC en la figura a continuaci√≥n. Decenas de peque√Īas almohadillas de contacto, a las que puede conectarse antes de cortar la placa en cristales individuales, para verificar todos los par√°metros necesarios, el estado de las l√≠neas internas importantes, decidir si el chip es adecuado o no y, si es necesario, averiguar la causa de los problemas.

imagen
Figura 16. Topología TPS 62321 de Texas Instruments. Fuente - zeptobars.com

Una buena cobertura con almohadillas de prueba para lanzamientos de prueba y prototipos es especialmente importante, pero para la producci√≥n en serie a menudo se desactivan (mediante la correcci√≥n de una o dos m√°scaras o puentes quemables) para minimizar el efecto sobre el comportamiento del producto. Entonces, ¬Ņde qu√© estoy hablando? Las almohadillas de contacto de prueba son de gran ayuda para un atacante, ya que no solo se√Īala puntos importantes en el dise√Īo usted mismo, sino que tambi√©n le brinda un acceso conveniente. El puente quemado se restaura f√°cilmente en FIB, ¬°y listo! Idealmente, la seguridad requiere la eliminaci√≥n completa de las almohadillas de prueba del chip en serie. Si esta opci√≥n es irracional (por ejemplo, tambi√©n necesita pruebas en la placa en la producci√≥n en serie), entonces al menos aseg√ļrese de que el mecanismo para desconectar los sitios de prueba no sea recuperable, por ejemplo, est√© ubicado directamente debajo de la plataforma y se dibuje de manera que la brecha No se pudo conectar convenientemente.

Ni siquiera quiero comenzar por el hecho de que todos los dise√Īos digitales modernos tienen un JTAG incorporado para pruebas, que le permite ver directamente el estado de cualquier disparador en un chip. La idoneidad de la prueba es una de las caracter√≠sticas clave de cualquier dise√Īo, y es este hecho el que hace que sea extremadamente importante desactivar de forma segura y permanente todas las interfaces de prueba antes de que el chip salga de las paredes del fabricante.

A√ļn as√≠, a los buenos ingenieros les gusta colocar circuitos de prueba en la periferia del chip para las pr√≥ximas revisiones. Por lo general, estos son esquemas bastante importantes, de lo contrario, ¬Ņpor qu√© perder tiempo y esfuerzo organizando sus pruebas? "¬ŅLos circuitos importantes que componen su propiedad intelectual y son cr√≠ticos para el funcionamiento del chip?" ¬ŅCuidadosamente separado de todo el dise√Īo? ¬°Muchas gracias! - El ingeniero inverso le dir√° por un regalo tan real. Si no desea que los de prueba ayuden a un atacante a estudiar y copiar su dise√Īo, aseg√ļrese de que no entren en cristales para la producci√≥n en masa o que se destruyan despu√©s de probar en placas durante el proceso de cortar la placa en cristales.

UNA PEQUE√ĎA PR√ĀCTICA


Para demostrar una vez más cómo funciona esto, el ejemplo de abrir el microcontrolador PIC12C508A descrito en la disertación de Sergei Skorobogatov, defendido en 2004 en Cambridge. La traducción es corta y bastante gratuita:

Es necesario abrir el estuche y encontrar en el chip una memoria protectora borrada por la radiación ultravioleta. Esto se hace con bastante facilidad al ver las líneas que van al pin de programación del chip. Luego, cubre la memoria principal con un material opaco para los rayos UV, y después de cinco a diez minutos de exposición, puede considerar la memoria como un programador regular. Otra opción: después de encontrar la memoria de protección de copia, simplemente corte la ruta de metal que lo conduce, que en este chip se encuentra lejos de otras líneas, por lo que puede cortarla no solo con FIB, sino solo con una aguja.


Figura 17. Y aquí está la línea muy desafortunada. De hecho, se encuentra en el medio de un espacio vacío, no está protegido de ninguna manera, se puede cortar.

CONCLUSION


Por supuesto, es imposible comprender la inmensidad, porque la tecnolog√≠a y la ingenier√≠a inversa de los microcircuitos, y la protecci√≥n contra ellos, no se detienen y se mejoran constantemente. El tema de la seguridad de la informaci√≥n es una de las claves en el dise√Īo para Internet de las cosas, por lo que los desarrolladores le prestan mucha atenci√≥n, y los ingenieros inversos no pueden esperar una extracci√≥n tan f√°cil como hace quince o veinte a√Īos. Sin embargo, uno siempre debe recordar que un sistema mal protegido significa p√©rdidas potenciales, p√©rdidas enormes o incluso la vida de las personas, y la protecci√≥n contra el acceso no autorizado y la ingenier√≠a inversa debe ser parte del sistema en todos los niveles de operaci√≥n, sin excluir el hardware .

Source: https://habr.com/ru/post/436998/


All Articles