Logotipo de Zephyrnet

Seguimiento del flujo de información en RTL. Innovación en Verificación – Semiwiki

Fecha:

Las vías furtivas explícitas e implícitas para filtrar o comprometer información siguen representando una amenaza para la seguridad. Este documento busca un refinamiento de las técnicas existentes de seguimiento del flujo de información (IFT) a nivel de puerta extendidas a RTL, fomentando la optimización de la seguridad en las primeras etapas. Paul Cunningham (vicepresidente sénior/director general de verificación en Cadence), Raúl Camposano (Silicon Catalyst, emprendedor, ex director de tecnología de Synopsys y ahora director de tecnología de Silvaco) y yo continuamos nuestra serie sobre ideas de investigación. Como siempre, los comentarios son bienvenidos.

Innovación Nuevo

La innovación

La elección de este mes es Registre el seguimiento del flujo de información del nivel de transferencia para un diseño de hardware demostrablemente seguro. Este artículo apareció en la FECHA 2017 y ha reunido la impresionante cantidad de 53 citas. Los autores son de la Universidad de California en San Diego.

Este grupo desarrolló anteriormente la tecnología IFT a nivel de puerta (GLIFT), lanzándola como un producto bajo Tortuga Logic (más tarde rebautizada como Cycuity). Las técnicas de flujo de información ofrecen un enfoque más general y formal para modelar y razonar sobre propiedades de seguridad que las pruebas mediante casos de uso de vulnerabilidad. El método se generaliza propagando información corrupta junto con una evaluación lógica regular, marcando, por ejemplo, una señal proveniente de un dominio inseguro que controla una selección de condiciones en un dominio seguro. Combinar esto con métodos de verificación formales ofrece la posibilidad de obtener sólidas garantías de seguridad.

Extender el análisis a RTL permite varias mejoras: escalabilidad a circuitos más grandes, aplicación más temprana en el diseño y una comprensión algo mejorada de las dependencias de nivel superior en la intención del diseño sin necesidad de anotaciones proporcionadas por el usuario. Los autores también describen un método mediante el cual los diseñadores pueden equilibrar el rendimiento de seguridad y verificación para satisfacer las diferentes necesidades del mercado.

Punto de vista de pablo

La verificación de seguridad es algo que me importa profundamente: no podemos confiar en los datos digitales sin ella, ¡y esto incluye mis propios datos personales! El artículo de este mes es de fácil lectura y destaca una de las técnicas principales en la verificación de seguridad: agregar bits "contaminados" (es decir, comprometidos o que ya no son confiables) a todas las señales en un diseño y mejorar los modelos de puertas propagan bits contaminados a través de las puertas, así como los valores de las señales. .

La propagación de bits contaminados es conceptualmente casi idéntica a la “propagación X” en los flujos de verificación de diseño convencionales: si una señal está contaminada, es como si no supiéramos su valor, ya que no confiamos en el valor que tiene.

Este artículo propone dos cosas: primero, realizar anotaciones y propagación de bits contaminados a nivel RTL en lugar de a nivel de puerta; y segundo, hacer el equivalente a lo que las principales herramientas EDA llaman “eliminación del pesimismo X”. Este último se refiere a no marcar el resultado de un operador como X simplemente porque al menos una de sus entradas es X, sino a marcarlo como X solo si realmente es X según la definición de ese operador. Por ejemplo, considere c = a & b. Si a=0 entonces c=0 incluso si b es X. De manera equivalente, en términos de verificación de seguridad, si a=0 y a no está contaminado, entonces c=0 y no está contaminado incluso si b está contaminado. Parece fácil para "&", se vuelve un poco más complicado para las construcciones if, else y case.

Como es de esperar, el artículo concluye con algunas evaluaciones comparativas que muestran claramente que la propagación de bits contaminados en RTL es mucho más rápida que a nivel de puerta, y que la propagación "precisa" de bits contaminados (es decir, la eliminación del pesimismo de bits contaminados) reduce la tasa de falsos positivos. para bits contaminados en los resultados de diseño en un porcentaje significativo. Toda esta evaluación comparativa se realiza en un contexto de prueba formal, no en un contexto de simulación lógica. Caso cerrado.

¡Os deseo a todos unas felices fiestas!

La mirada de Raúl

El seguimiento del flujo de información (IFT) es una técnica de seguridad informática que modela cómo se propaga la información a medida que un sistema calcula. Fue introducido en los años 70 por Denning; se puede encontrar una buena introducción y una encuesta. esta página. La idea básica es etiquetar los datos con una clase de seguridad y luego realizar un seguimiento de estas etiquetas a medida que los datos se utilizan para los cálculos. A los efectos del artículo revisado, la etiqueta indica solo un poco que los datos son "mancha”(etiqueta = 1, no confiable). El enfoque más conservador al usar esta etiqueta es que el resultado de cualquier operación que involucre mancha los datos son mancha; o dicho a la inversa, solo se realizan operaciones con todos los datos de entrada. no contaminar producir un no contaminar producción. El artículo relaja de alguna manera este enfoque, como explicaré más adelante.

La seguridad informática tiene como objetivo mantener la información. confidencialidad y integridad. Confidencialidad significa que la información sólo se divulga a entidades autorizadas. El IFT verifica si alguna vez se puede revelar información secreta al rastrear que todas las ubicaciones a las que fluye también sean secretas (no contaminar), por ejemplo, una clave secreta no se filtra fuera de un espacio de memoria restringido. La integridad es lo contrario: para mantener la precisión y coherencia de los datos, las entidades que no son de confianza no pueden operar con información confiable. La forma en que la información fluye a través de un sistema informático es crucial para determinar la confidencialidad y la integridad. IFT se encuentra entre las técnicas más utilizadas para modelar y razonar sobre seguridad.

El documento revisa los enfoques IFT existentes a nivel de puerta y nivel RTL. A nivel de puerta, la reconvergencia es una fuente de imprecisión. En un multiplexor, una señal de selección de contaminación producirá una mancha salida incluso si ambas entradas son no contaminar. Modelar un multiplexor a nivel RTL permite solucionar este problema. Los enfoques de nivel RTL existentes implican la necesidad de modificar el código RTL. El sistema implementado por los autores, RTLIFT, soluciona las dos deficiencias anteriores. Proporciona una biblioteca de operadores RTL que permite implementar diferentes enfoques para IFT, como contaminar las salidas si alguna entrada es mancha (conservador) o un enfoque más matizado, como contaminar las salidas de un multiplexor sólo si una de las entradas de datos es mancha (evita falsos positivos). También proporciona una traducción automática de un diseño RTL en Verilog a una versión mejorada con IFT que se puede utilizar con fines de verificación.

Los resultados en núcleos criptográficos muestran que RTLIFT es aproximadamente 5 veces más rápido que IFT a nivel de puerta (GLIFT). En una colección de 8 sumadores, multiplicadores y lógica de ruta de control, RTLIFT muestra una disminución del 5% al ​​37% en falsos positivos (falsos mancha) sobre GLIFT para una simulación de 220 muestras de entrada aleatorias.

Un documento completo sobre seguridad, que extiende IFT a RTL, ¡una lectura muy agradable!

Comparte esta publicación a través de:

punto_img

Información más reciente

punto_img