ES2938771T3 - Verificación de integridad de hardware - Google Patents

Verificación de integridad de hardware Download PDF

Info

Publication number
ES2938771T3
ES2938771T3 ES16812931T ES16812931T ES2938771T3 ES 2938771 T3 ES2938771 T3 ES 2938771T3 ES 16812931 T ES16812931 T ES 16812931T ES 16812931 T ES16812931 T ES 16812931T ES 2938771 T3 ES2938771 T3 ES 2938771T3
Authority
ES
Spain
Prior art keywords
hardware component
response
challenge
chain
remaining
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES16812931T
Other languages
English (en)
Inventor
Edouard Forler
Jonathan Borgeaud
Steven Seltzer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nagravision SARL
Original Assignee
Nagravision SARL
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nagravision SARL filed Critical Nagravision SARL
Application granted granted Critical
Publication of ES2938771T3 publication Critical patent/ES2938771T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/86Secure or tamper-resistant housings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Image Processing (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Information Transfer Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Hardware Redundancy (AREA)
  • Image Analysis (AREA)

Abstract

Se divulga un dispositivo de procesamiento de datos, que comprende una pluralidad de componentes de hardware de procesamiento de datos, como uno o más de un microprocesador, una unidad central de procesamiento, un componente de hardware de sistema en chip, un componente de hardware de acceso condicional, un componente de hardware decodificador, un componente de hardware de gráficos, un componente de hardware de video y un componente de hardware de matriz de puerta programable en campo. Un primer componente de hardware de la pluralidad de componentes de hardware de procesamiento de datos está configurado para enviar un desafío a al menos un componente de hardware restante de la pluralidad de componentes de hardware de procesamiento de datos. Cada componente de hardware restante está configurado para recibir un desafío respectivo y procesar el desafío para producir una o más respuestas respectivas. El dispositivo está configurado para usar una o más respuestas para verificar la integridad del dispositivo. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Verificación de integridad de hardware
La presente invención se refiere a la detección de manipulación de hardware y a la verificación de la integridad física de un dispositivo de procesamiento de datos, en particular para facilitar la protección contra modificaciones de hardware y la detección de modificaciones de componentes de hardware en el dispositivo.
Antecedentes de la invención
En la actualidad, la mayoría de los ataques destinados a secuestrar dispositivos digitales se centran en el software, pero a medida que la solidez del software seguro sigue aumentando, los ataques se centrarán cada vez más en el hardware. Se conocen ataques basados en la manipulación del hardware mediante la eliminación, adición o intercambio de uno o más circuitos integrados u otros componentes de hardware en un dispositivo o la emulación de tales componentes de hardware con un dispositivo externo. Por lo tanto, será cada vez más importante verificar la integridad del dispositivo a nivel de hardware. Este es particularmente el caso cuando la integridad del dispositivo es crucial para proteger los flujos de ingresos, como en los sistemas de acceso condicional, por ejemplo, en los decodificadores de televisión o la gestión de derechos digitales, pero también en todas las plataformas informáticas de uso general, como los ordenadores personales y dispositivos portátiles como ordenadores portátiles, teléfonos móviles, teléfonos inteligentes, tabletas, etc., que se utilizan cada vez más para aplicaciones sensibles, incluidas las preocupaciones de privacidad y seguridad, como la banca electrónica o la salud electrónica. Con la conectividad cada vez mayor de casi todos los dispositivos cotidianos (internet de las cosas), la necesidad de realizar comprobaciones de integridad del hardware se generalizará.
Se conocen varias soluciones que aseguran la integridad del software en un sistema de procesamiento de datos e incluyen varios enfoques, por ejemplo, crear firmas de componentes de software almacenando un hash de cada componente de software y comparando un hash creado a partir de cada componente de software al iniciar el sistema. Dichas soluciones a veces son facilitadas por hardware de seguridad dedicado, como el Módulo de Plataforma Segura (TPM) desarrollado por Trusted Computing Group (TGC). En la arquitectura Trusted Network Connect (TNC) de TCG, el TPM se utiliza para la medición de integridad y la certificación remota. Durante el proceso de inicio, TPM mide (codifica) todos los componentes críticos de software y microprograma de una PC, incluido el BIOS, el cargador de inicio y el kernel del sistema operativo, antes de que se carguen. Al realizar estas mediciones antes de que se ejecute el software y almacenarlas en el TPM, las mediciones se aíslan y protegen de los intentos de modificación posteriores. Cuando la PC se conecta a la red, las mediciones almacenadas se envían a un servidor TNC, se comparan con la lista de configuraciones aceptables del servidor y se ponen en cuarentena como un punto final infectado si no hay coincidencia.
El documento de patente US 2004/064457 A1 divulga una plataforma segura y los métodos de autenticación correspondientes. El documento de patente US 2010/115625 A1 divulga una entidad confiable y métodos asociados que funcionan en una plataforma informática confiable. El documento de patente US 2014/108786 A1 divulga técnicas para mejorar la resistencia a la manipulación del hardware que puede usarse en un sistema de transacciones. El documento de patente US 2005/289343 A1 divulga técnicas para vincular un componente de hardware y una plataforma a través del registro de claves criptográficas entre el componente de hardware y la plataforma.
Resumen
Los aspectos de la divulgación se establecen en las reivindicaciones independientes. Algunas características opcionales de las realizaciones descritas se exponen en las reivindicaciones dependientes.
En algunos aspectos de la divulgación, se propone un dispositivo de procesamiento de datos de acuerdo con la reivindicación 1.
En algunas realizaciones, el dispositivo se configura para generar una clave de verificación de dispositivo basada en las respuestas producida(s) por el al menos un componente de hardware restante, pudiendo usarse la clave de verificación de dispositivo para verificar la integridad del dispositivo de procesamiento de datos. Por ejemplo, el primer componente de hardware puede recibir una o más respuestas, generar la clave de verificación del dispositivo y verificarla o usarla de otro modo, o estas tareas pueden ser realizadas por diferentes componentes de hardware en el dispositivo. Por ejemplo, el primer componente de hardware puede enviar información sobre una o más respuestas a un segundo componente de hardware generando la clave de verificación del dispositivo utilizando la información recibida y descifrando la información crítica de la misión o enviando la clave de verificación del dispositivo a un tercer componente de hardware, que descifra la información crítica de la misión. Se pueden generar una o más claves de verificación de dispositivos en base a la respuesta colectiva del componente de hardware o componentes de hardware y la clave o claves de verificación de dispositivos pueden ser simplemente la respuesta o las respuestas de los componentes de hardware.
En algunas realizaciones, el dispositivo comprende una memoria que almacena información de misión crítica en forma cifrada. El dispositivo o un aspecto del dispositivo requiere información de misión crítica en forma descifrada para funcionar. El dispositivo puede usar una o más claves de verificación del dispositivo en base a las respuestas producidas por los componentes de hardware restantes para descifrar la información de misión crítica cifrada (ya sea por el componente de hardware que genera una o más claves de verificación del dispositivo u otro componente de hardware que reciben la una o más claves de verificación de dispositivo de ese componente de hardware). Por lo tanto, la aclaración del dispositivo puede estar implícita en el éxito (o fracaso) para descifrar la información de misión crítica). La una o más claves de verificación del dispositivo pueden generarse en base a las respuestas o pueden ser simplemente las respuestas. En el caso de más de un componente de hardware restante, por ejemplo, una o más de las respuestas pueden usarse como la clave o claves de verificación del dispositivo, dependiendo, por ejemplo, de si las respuestas se generan de forma independiente o en una Cadena con cada respuesta dependiendo de respuestas anteriores. En general, por lo tanto, la respuesta colectiva de los componentes de hardware restantes, por ejemplo, las respuestas individuales o una o más de las respuestas dependiendo de las respuestas individuales restantes, puede usarse para descifrar la información de misión crítica. Ventajosamente, al usar la respuesta de los componentes de hardware restantes para descifrar la información de misión crítica requerida por el dispositivo (o un aspecto del mismo) para funcionar, fallaría un ataque al dispositivo que simplemente intentaría eludir la verificación del dispositivo. Dado que la respuesta se usa para descifrar información de misión crítica, en lugar de solo para verificar uno o más valores esperados, eludir el paso de verificación dejaría el dispositivo sin funcionar en ausencia de la información de misión crítica.
Un ejemplo de información de misión crítica es el microprograma (u otro software) requerido para que el dispositivo o un aspecto del dispositivo funcione. Por ejemplo, la información de misión crítica puede componer uno o más de un BIOS, un núcleo del sistema operativo, un controlador de componente de hardware, un cargador de arranque, una clave de descifrado de contenido. En un ejemplo específico, el dispositivo de procesamiento de datos comprende un dispositivo de acceso condicional y la información de misión crítica comprende una clave de descifrado para uso del dispositivo de acceso condicional para controlar el acceso al contenido consumible usando el dispositivo de procesamiento de datos. En otro ejemplo específico, el dispositivo de procesamiento de datos comprende un descifrador de video y la información de misión crítica comprende una clave de descifrado para que la use el descifrador de video para descifrar una señal de video.
En algunas realizaciones, un componente de hardware restante inicial se configura para recibir su desafío del primer componente de hardware y el desafío recibido por cada componente de hardware restante posterior es la respuesta producida por un respectivo componente de hardware restante anterior. Por ejemplo, cada componente de hardware restante posterior puede recibir la respuesta producida por su componente de hardware anterior directamente del componente de hardware anterior o el componente de hardware anterior puede enviar su respuesta al primero u otro componente de hardware, que luego la envía al componente de hardware posterior. Un último de los componentes de hardware restantes se configura para enviar su respuesta al primer componente de hardware, directamente o a través de un componente de hardware intermedio. El dispositivo puede configurarse para generar la clave de verificación del dispositivo utilizando la respuesta recibida del último de los componentes de hardware restantes, en el primero u otro componente de hardware, como se describió anteriormente. La respuesta recibida puede utilizarse directamente como clave de verificación del dispositivo.
En las realizaciones en las que cada componente de hardware restante posterior recibe como su desafío la respuesta del componente de hardware anterior directamente desde el componente de hardware anterior, la comunicación se simplifica en el sentido de que las respuestas/desafíos se enrutan entre los componentes de hardware en cuestión en lugar de tener que enrutarlos de regreso y hacia adelante con la participación de un primer componente de hardware u otro centro de comunicación.
Cada uno de los componentes de hardware restantes puede configurarse para aplicar una función no transitiva a un desafío recibido para producir su respuesta. Ventajosamente, en realizaciones en las que el desafío para un componente de hardware posterior es la respuesta del componente de hardware anterior, el uso de una función de respuesta no transitiva hace que la respuesta general sea sensible al orden en el que se pasa el desafío de un componente de hardware a otro de modo que una última respuesta correcta o una clave de verificación de dispositivo generada verifique no solo los componentes de hardware individuales sino también el orden de su disposición en la cadena de verificación.
Los componentes de hardware se pueden conectar en varias configuraciones usando varios medios. En algunas realizaciones, los componentes de hardware se interconectan mediante un bus, por ejemplo, un bus I2C. En algunas realizaciones, los componentes de hardware pueden interconectarse utilizando conexiones físicas dedicadas, por ejemplo, cada componente de hardware restante está conectado al primer componente de hardware mediante una línea física dedicada sobre la cual el primer componente de hardware puede escribir y leer de los componentes de hardware restantes.
Estas realizaciones emplean un modelo de conexión física en cadena, pero pueden admitir el envío de desafíos individuales a cada componente de hardware restante y recibir respuestas individuales en el primer componente de hardware haciendo que todos menos el componente de hardware restante "activo" reciba un desafío y proporcione una respuesta para simplemente pasar a través del desafío (aguas arriba del componente de hardware "activo") y la respuesta (aguas abajo del componente de hardware "activo").
Al igual que con cualquiera de los esquemas de conexión física discutidos aquí, los desafíos individuales pueden ser iguales o diferentes para cada componente de hardware restante, pueden ser específicos para cada componente de hardware restante o pueden ser (o estar determinados por) una respuesta recibida previamente por el primer componente de hardware. Los desafíos pueden ser fijos o variar con el tiempo. Por supuesto, la cadena de conexión física, en algunas realizaciones, también facilita una cadena lógica en la que cada respuesta se pasa directamente desde un componente de hardware anterior a un componente de hardware posterior como desafío para el componente de hardware posterior. La una o más respuestas recibidas por el primer componente de hardware pueden ser utilizadas por el dispositivo para la verificación de la integridad del dispositivo como se describió anteriormente, por ejemplo, por el primer componente de hardware o uno o más componentes de hardware diferentes del dispositivo que reciben información sobre una o más respuestas como lo recibió el primer componente de hardware.
Cada componente de hardware restante en la cadena puede implementar una infraestructura similar a la especificación del estándar IEEE 1149.1 (JTAG). Consulte el estándar IEEE 1149.1-2013 o cualquier versión publicada anteriormente. Específicamente, cada componente de hardware restante puede tener un registro de desplazamiento de instrucciones para recibir una instrucción de un conjunto de instrucciones. El conjunto de instrucciones puede incluir al menos una instrucción de desafío de proceso para procesar un desafío y producir una respuesta. Cada componente de hardware restante puede tener además un registro de desplazamiento de datos que corresponde a la instrucción de desafío del proceso, para recibir un desafío. Cada componente de hardware restante puede configurarse para implementar varios modos. Por ejemplo, cada uno de estos modos puede implementarse utilizando Estados de una máquina de estado similar a JTAG.
Se entenderá que el término "registro de desplazamiento" se usa aquí para cubrir cualquier implementación de un registro o almacenamiento de datos en el que los bits se desplazan en un lado del registro (por ejemplo, el bit menos significativo) y se desplazan en el otro lado (por ejemplo, bit más significativo) sobre la base de primero en entrar, primero en salir, ya sea que se implemente como un registro físico de circuitos electrónicos digitales, como flip-flops, mediante lógica digital de propósito general o de otra manera. Asimismo, un "registro de desplazamiento" como se entiende aquí puede tener una interfaz paralela al registro para lectura, escritura o ambas. Por ejemplo, en el contexto de un registro de desplazamiento utilizado en la implementación de un punto de acceso de prueba (TAP) JTAG, o implementaciones similares, los bits se pueden escribir/leer en paralelo dentro del componente de hardware (por ejemplo, un circuito integrado), por ejemplo en seleccionar IR, seleccionar DR, actualizar IR y/o actualizar Estados DR de la máquina de estado TAP.
Específicamente, en un primer modo, cada componente de hardware restante puede configurarse para desplazar un bit a la vez desde su entrada al registro de desplazamiento de instrucciones y desde el registro de desplazamiento de instrucciones a su salida. En un segundo modo, cada componente de hardware restante puede configurarse para desplazar un bit a la vez desde su entrada al registro de desplazamiento de datos y desde el registro de desplazamiento de datos a su salida. En un tercer modo, cada componente de hardware restante puede configurarse para, cuando hay una instrucción de desafío de proceso en el registro de desplazamiento de instrucciones, leer el desafío en el registro de desplazamiento de datos, procesar el desafío para producir una respuesta y escribir la respuesta en el registro de desplazamiento de datos. El primer componente de hardware puede configurarse para controlar el modo de todos los componentes de hardware restantes juntos sobre una línea de control de modo común a todos los componentes de hardware restantes. Es decir, todos los componentes de hardware restantes pueden controlarse de modo que estén en el mismo modo en cualquier momento.
El primer componente de hardware puede configurarse para controlar el modo de los componentes de hardware restantes para desplazar las instrucciones respectivas a los registros de desplazamiento de instrucciones, desplazar los desafíos a los registros de desplazamiento de datos, hacer que los componentes de hardware restantes procesen los desafíos para producir respuestas y desplazar las respuestas fuera de los registros de desplazamiento de datos, recibiendo de esta manera una o más respuestas de los componentes de hardware restantes. En realizaciones en las que se proporcionan desafíos y se recibe la respuesta individualmente, se recibe una respuesta en el primer componente de hardware de cada componente de hardware restante. En realizaciones donde las respuestas se pasan de un componente de hardware restante al siguiente como desafíos, el primer componente de hardware recibe solo una única respuesta, del último componente de hardware en la Cadena.
Algunas realizaciones implementan tanto una Cadena lógica, que pasa una respuesta de un componente de hardware restante como un desafío al siguiente, y una Cadena física, que pasa la respuesta de un componente de hardware como un desafío directamente al siguiente a través de una línea de comunicaciones física que conecta los dos componentes de hardware restantes. Ventajosamente, al implementar una conexión en cadena física y lógica de los componentes de hardware restantes en una arquitectura similar a JTAG, se proporciona una implementación eficiente para la verificación de dispositivos que utiliza relativamente pocas instrucciones y puede aprovechar la infraestructura existente proporcionada en la mayoría de los componentes de hardware para fines de prueba.
En algunas de tales realizaciones, el primer componente de hardware se configura para hacer que un desafío se desplace de bit a bit al registro de desplazamiento de datos del componente de hardware restante inicial, el componente de hardware restante inicial para procesar el desafío y escribir su respuesta a su registro de desplazamiento de datos, la respuesta del registro de desplazamiento de datos del componente de hardware anterior respectivo en la cadena para ser desplazada bit a bit al registro de desplazamiento de datos de cada componente de hardware restante posterior en la cadena, cada componente de hardware posterior procesa la respuesta del respectivo componente de hardware anterior en su registro de desplazamiento de datos como su desafío para escribir su respuesta en el registro de desplazamiento de datos y la respuesta escrita en el registro de desplazamiento de datos respectivo del último componente de hardware restante en la cadena para ser desplazada bit a bit a la entrada del primer componente de hardware.
El primer componente de hardware puede configurarse para hacer que una instrucción de desafío de proceso sea ejecutada por cada componente de hardware restante posterior en la cadena no antes de que el respectivo componente de hardware anterior en la cadena haya escrito su respuesta en su registro de datos. Esto puede implementarse en algunas realizaciones mediante el uso de una combinación de instrucciones de desafío de proceso e instrucciones de derivación (que hacen que el componente de hardware restante en cuestión pase la señal desde su entrada hasta su salida). En otras realizaciones, se puede usar un conjunto de instrucciones más simple. En particular, en algunas realizaciones, una instrucción de desafío de proceso se carga en todos los registros de desplazamiento de instrucción y los desafíos y la respuesta simplemente se desplazan de un componente de hardware al siguiente, ancho de registro de desplazamiento de datos por ancho de registro de desplazamiento de datos, con respuestas no deseadas a datos intermedios no válidos o irrelevantes simplemente descartados. Sin embargo, en realizaciones en las que la instrucción de desafío del proceso solo se ejecuta cuando la respuesta del componente de hardware restante anterior se ha cargado en el registro de desplazamiento de datos correspondiente, los componentes de hardware restantes pueden ventajosamente mantener un estado interno para producir solo una respuesta una vez cuando el desafío se pasa por la cadena. Esto permite implementaciones en las que es deseable que la cadena de desafío/respuesta se ejecute solo una vez después del inicio del dispositivo.
En algunas realizaciones, el primer componente de hardware se configura para hacer que cada componente de hardware restante en la cadena solo ejecute una instrucción de desafío de proceso una vez entre desplazar el desafío al registro de desplazamiento de datos del componente de hardware restante inicial en la cadena y desplazar la respuesta escrita al registro de desplazamiento de datos del último componente de hardware restante en la cadena a la entrada del primer componente de hardware. Al ejecutar la instrucción de respuesta de desafío solo una vez para cada cadena de desafío/respuesta, los componentes de hardware restantes pueden mantener un estado interno en función del procesamiento del desafío, por ejemplo, devolver una respuesta diferente para cada ejecución de cadena de desafío/respuesta, tal como proporcionar una respuesta que es una función del desafío actual y una respuesta de una ejecución anterior de la cadena de desafío/respuesta. Ventajosamente, esto permite que cada respuesta dependa de todos los desafíos anteriores, por ejemplo, para encadenar verificaciones de dispositivos.
En algunas realizaciones, una capa física utilizada para implementar comunicaciones entre los primeros componentes de hardware y los restantes y entre los componentes de hardware restantes cumple con la especificación del estándar IEEE 1149.1 (JTAG), comprendiendo cada componente de hardware restante un pin TMS, TCK, TDI y TDO y una máquina de estado que cumple con la especificación e implementando al menos el conjunto mínimo de instrucciones requeridas por la especificación. El primer componente de hardware puede monitorear el pin TDO del último componente de hardware restante, por ejemplo, el primer componente de hardware puede tener un pin de entrada conectado al pin TDO del último componente de hardware restante.
Por lo general, una respuesta se produce en función del desafío. En todos los aspectos y realizaciones, producir una respuesta puede comprender combinar el desafío con una clave de componente de hardware asociada con el componente de hardware restante que produce la respuesta y, por ejemplo, aplicar una función unidireccional a la combinación. La función unidireccional puede ser una función hash criptográfica. El procesamiento de un desafío para producir una respuesta puede comprender codificar el desafío junto con la clave del componente de hardware. La codificación se puede realizar utilizando una función hash criptográfica, por ejemplo, MD5, SHA-0, SHA-1, SHA-2 o SHA-3. componente de hardware. En general, cada uno de los componentes de hardware puede producir una respuesta que es específica para la marca, el tipo o la versión específicos del componente de hardware, o específica y única para el componente de hardware individual. Típicamente, la respuesta también será específica para el desafío, es decir, dos desafíos diferentes provocarán respuestas diferentes correspondientes de un componente de hardware. Además, la respuesta puede depender de un estado interno del componente de hardware, que a su vez puede depender de desafíos anteriores.
Breve descripción de las figuras
Las realizaciones específicas se describirán ahora a manera de ejemplo solamente, con referencia a los dibujos acompañantes en los cuales:
Las figuras 1a, 1b y 1c ilustran dispositivos de procesamiento de datos con una pluralidad de componentes de hardware de procesamiento de datos interconectados para la verificación del dispositivo usando varios esquemas de conexión;
La figura 2 ilustra un método de verificación de dispositivos;
La figura 3 ilustra un método de verificación de dispositivos que incluye el descifrado de información crítica de misión cifrada;
Las figuras 4a y 4b ilustran ejemplos del método de la figura 3;
Las figuras 5a y 5b ilustran un método basado en pares de respuesta de desafío individuales;
La figura 6 ilustra una implementación del método de las figuras 5a y 5b con componentes de hardware de procesamiento de datos conectados en una cadena para la verificación del dispositivo;
La figura 7 ilustra los detalles de un esquema de conexión en cadena que cumple con IEEE-1149.1;
La figura 8 ilustra los estados de los componentes de hardware de procesamiento de datos en la cadena durante la recopilación de pares de respuesta de desafío de los componentes de hardware de procesamiento de datos;
La figura 9 ilustra un método basado en una cadena de pares de respuesta de desafío con una respuesta anterior que actúa como un desafío posterior, respectivamente en un primer y cada componente de hardware restante; La figura 10 ilustra una implementación del método de las figuras 9a y 9b con componentes de hardware de procesamiento de datos conectados en una cadena para la verificación del dispositivo;
La figura 11 ilustra los estados de los componentes de hardware de procesamiento de datos en la cadena durante la ejecución de la cadena de par de respuesta de desafío usando una sola instrucción;
La figura 12 ilustra los estados de los componentes de hardware de procesamiento de datos en la cadena durante la ejecución de la cadena de par de respuesta de desafío usando dos instrucciones para permitir que los componentes de hardware de procesamiento de datos se limiten a producir un solo par de respuesta de desafío; y
La figura 13 ilustra los estados de los componentes de hardware de procesamiento de datos en la cadena durante la ejecución de la cadena de par de respuesta de desafío utilizando tres instrucciones para permitir que los componentes de hardware de procesamiento de datos se limiten a producir múltiples pares de respuesta de desafío mientras se mantiene un estado interno relacionado con cada par de respuesta de desafío.
Descripción específica
Con referencia a las figuras 1A, 1B y 1C, un dispositivo de procesamiento de datos 100 comprende una pluralidad de componentes de hardware de procesamiento de datos 102, 104, 106, 108. El dispositivo 100 puede ser cualquier dispositivo que procese datos, por ejemplo, un servidor; ordenador personal; dispositivo tipo ordenador móvil como un teléfono inteligente o una tableta; decodificador; Televisión inteligente; grabadora de vídeo digital; cámara; cámara de video; grabadora de vídeo; consumo de medios, dispositivo de acceso o grabación; dispositivo de control de acceso para controlar un portón o una puerta; puerta de peaje; puerta del telesilla; dispositivo de control; dispositivo de control de procesos industriales; dispositivo electrónico de fitness o de salud; dispositivo doméstico conectado; etc. Normalmente, el dispositivo 100 tendrá una o más interfaces de entrada, como un teclado; lector de tarjetas; Lector RFID; cámara; micrófono; uno o más conectores; una conexión de red cableada y/o inalámbrica; etc., y una o más interfaces de salida, como una pantalla; un altavoz; una impresora; uno o más conectores; una conexión de red cableada y/o inalámbrica; etc.
Los componentes de hardware 102. 104. 106 y 108 pueden disponerse en un recinto o carcasa de dispositivo común.
Los componentes de hardware normalmente serán o incluirán circuitos integrados o chips, por ejemplo, un microprocesador, una unidad central de procesamiento (CPU) o un sistema en chip (SoC). Los componentes de hardware normalmente tienen pines para recibir entradas y presentar salidas y normalmente están interconectados por conductores, por ejemplo, pistas conductoras en una placa de circuito, cables, etc. Uno de los componentes de hardware puede, con el fin de verificar el dispositivo, actuar como un componente de hardware maestro 102 para impulsar las comunicaciones con los componentes de hardware restantes, donde los componentes de hardware restantes actúan como componentes de hardware esclavos 104, 106, 108 que reciben y responden a las señales de componente de hardware 102. Los componentes de hardware 102, 104, 106 y 108 están, en algunas realizaciones, dispuestos en una cadena con desafíos y/o respuestas que pasan de un componente de hardware al siguiente (ver figura 1A), como se describirá con más detalle a continuación. Con referencia a las figuras 1B, en otras realizaciones, los componentes de hardware 104, 106 y 108 se comunican con el componente de hardware 102 a través de conexiones bidireccionales dedicadas entre el componente de hardware 102 y cada uno de los componentes de hardware 104, 106 y 108. En algunas realizaciones, los componentes de hardware 102, 104, 106 y 108 se comunican a través de un bus 110 (ver figura 1C). En algunas realizaciones, el bus 110 es un bus I2C y el componente de hardware 102 actúa como maestro en el bus I2C, leyendo y escribiendo desde y hacia los componentes de hardware 104, 106 y 108 para obtener y recopilar respuestas para la verificación del dispositivo.
En algunas realizaciones, el componente de hardware 102 es un componente de hardware que ejecuta un arranque inicial para el dispositivo de procesamiento de datos 100, por ejemplo, un CPU o un SoC. Sin embargo, en otras realizaciones, el componente de hardware 102 puede ser cualquier componente de hardware en el dispositivo 100 configurado para obtener y recopilar respuestas. En el ejemplo del dispositivo de procesamiento de datos 100 que implementa un decodificador, los componentes de hardware restantes 104, 106 y 108 pueden ser un módulo de acceso condicional, un decodificador de video y una interfaz de comunicaciones, por ejemplo. Por supuesto, se apreciará que las realizaciones no se limitan a cuatro componentes de hardware (un componente de hardware que inicia el desafío y tres componentes de hardware que responden), sino que podría incluir cualquier número de componentes de hardware, por ejemplo, dos componentes de hardware (un componente de hardware de inicio, un componente de hardware de respuesta), tres componentes de hardware (un componente de hardware de inicio, dos componentes de hardware de respuesta) o cualquier número de componentes de hardware superior a cuatro.
Con referencia a la figura 2, el dispositivo de procesamiento de datos 100 se configura para enviar desafíos a los componentes de hardware en el dispositivo 100 en el paso 202, recibir una respuesta de los componentes de hardware en el paso 204 y usar la respuesta para verificar la integridad del dispositivo en el paso 206. La verificación de la integridad del dispositivo se puede realizar de varias formas, por ejemplo, comparando la respuesta con una respuesta esperada. La respuesta de los componentes de hardware puede ser el conjunto de respuestas de cada componente de hardware, una respuesta de un último componente de hardware en una cadena de respuestas, dependiendo cada respuesta de las respuestas anteriores (como se describe en detalle a continuación) y/o una cantidad derivada, tal como una o más claves de verificación de dispositivos derivadas de la respuesta o respuestas.
Con referencia a las figuras 3, en algunas realizaciones, el dispositivo 100 se configura para enviar desafíos a los componentes de hardware en el dispositivo 100 en el paso 302, para recibir una respuesta de los componentes de hardware en el paso 304 y para usar la respuesta para descifrar información de misión crítica en el paso 306. La información de misión crítica es información que se almacena en el dispositivo 100 en forma cifrada pero que se necesita en forma descifrada para que funcione el dispositivo 100 o un aspecto del dispositivo 100. En el paso 308, el dispositivo usa la Información de misión crítica para la inicialización del dispositivo, el funcionamiento del dispositivo o un aspecto de la inicialización o el funcionamiento del dispositivo. En caso de una respuesta incorrecta de los componentes de hardware, por ejemplo cuando uno o más de los componentes de hardware han sido manipulados, la información de misión crítica no se descifrará correctamente en el paso 306 y, en consecuencia, fallará el paso 308. Por lo tanto, el paso 308 solo puede llevarse a cabo si los componentes de hardware han proporcionado la respuesta correcta.
A lo largo de esta descripción, se entenderá por desafío cualquier elemento de datos, por ejemplo, un número, una cadena alfanumérica, una secuencia de bits, en cualquier formato o base apropiados, que se transmite de un componente de hardware a otro componente de hardware para obtener una respuesta del otro componente de hardware, típicamente en función del desafío. La respuesta puede producirse, por ejemplo, combinando, por ejemplo, concatenando, el desafío con una clave de componente de hardware específica del componente de hardware y pasando el resultado a través de una función hash, por ejemplo, MD5, SHA-1, SHA-2 o SHA-3.
La verificación de si la respuesta es la esperada basada en el conocimiento acerca de cómo la respuesta es producida por un componente de hardware válido y no manipulado permite la verificación de la integridad del componente de hardware. La respuesta esperada para los componentes de hardware válidos puede determinarse en base al conocimiento previo del comportamiento de respuesta de cada componente de hardware, o puede establecerse durante una fase de configuración como parte del proceso de fabricación, donde uno o más desafíos se envían al componentes de hardware, las respuestas observadas y una respuesta esperada (o información que permite su verificación, tal como un hash) pueden registrarse, típicamente en una memoria física de escritura única en una parte segura del dispositivo 100, por ejemplo en el componente de hardware 102.
Como se describió anteriormente, en algunas realizaciones, la respuesta real se compara con una respuesta esperada para la verificación del sistema, mientras que en algunas realizaciones la respuesta esperada se usa para cifrar información crítica para la misión. En el primer caso, las respuestas se pueden comparar utilizando los respectivos valores hash, lo que reduce el riesgo de descubrimiento de la respuesta esperada al almacenar solo un hash de la respuesta en el dispositivo. Específicamente, se puede almacenar un hash de la respuesta esperada y compararlo con un hash de la respuesta real para evitar almacenar la respuesta esperada. En el último caso, la información de misión crítica puede cifrarse una vez durante la fabricación o configuración del dispositivo, utilizando la respuesta esperada, y almacenarse de forma cifrada. Como resultado, no es necesario almacenar la respuesta esperada en el dispositivo 100, eliminando una posible vía de ataque. Alternativamente, la respuesta esperada puede almacenarse si es necesario actualizar la información crítica de la misión de vez en cuando. Por lo tanto, una respuesta (colectiva) o respuestas individuales de una pluralidad de componentes de hardware en un dispositivo pueden usarse para verificar la integridad de la pluralidad de componentes de hardware/el dispositivo de varias maneras.
Algunas realizaciones, en las que la secuencia de inicio del dispositivo de procesamiento de datos 100 carga el microprograma, se describen ahora con referencia a la figura 4A. En algunas de estas realizaciones, el componente de hardware 102 inicia y ejecuta una secuencia de inicio en el paso 402. Como parte de la secuencia de inicio, el componente de hardware 102 envía un desafío a los componentes de hardware 104, 106 y 108 en el paso 404 y recibe una respuesta en el paso 406. Por ejemplo, el componente de hardware 102 envía un desafío al componente de hardware 104, que devuelve una respuesta al componente de hardware 102. Esto luego se repite para los componentes de hardware 106 y 108. El desafío para los componentes de hardware 106 y 108 puede ser la respuesta recibida previamente (es decir, la respuesta del componente de hardware 104 y 106, respectivamente) o tal vez el mismo o diferente desafío independiente para cada componente de hardware. Alternativamente, el componente de hardware 104 puede enviar su respuesta al componente de hardware 106 como un desafío, con el componente de hardware 106 enviando su respuesta al componente de hardware 108 como un desafío y el componente de hardware 108 devolviendo su respuesta al componente de hardware 102. Esto se describirá en más detalle a continuación.
En el paso 408, el componente de hardware 102 usa la respuesta para descifrar el microprograma cifrado y luego continúa la secuencia de arranque con el microprograma descifrado en el paso 410. Por supuesto, se entenderá que el componente de hardware que gestiona la parte de respuesta de desafío de la verificación del dispositivo no necesita ser el mismo componente de hardware que el componente de hardware que hace uso de la respuesta (en estas realizaciones para el descifrado del microprograma) y posteriormente usa la información de misión crítica (en estas realizaciones continuando la secuencia de arranque con el microprograma descifrado). La gestión de la parte de respuesta al desafío, el uso de la respuesta y el uso de la información de misión crítica descifrada pueden, dependiendo de la realización y los requisitos específicos, llevarse a cabo en el mismo componente de hardware único, en los componentes de hardware respectivos para cada tarea o pueden distribuirse de cualquier forma adecuada entre cualquier número de componentes de hardware.
Algunas realizaciones, en las que un módulo de acceso condicional del dispositivo de procesamiento de datos 100 requiere una clave de contenido para descifrar el contenido y permitir que se presente a un usuario, se describen ahora con referencia a la figura 4B. Los pasos 402 a 406 son los mismos que los descritos anteriormente con referencia a la figura 4A. En el paso 412, el componente de hardware 102 (o más generalmente el dispositivo 100) usa la respuesta para descifrar la clave de contenido y, en el paso 414, usa la clave de contenido descifrado para descifrar el contenido cifrado para su visualización.
Algunas realizaciones, en las que el componente de hardware 102 envía un desafío y recibe una respuesta de cada componente de hardware 104, 106 y 108, se describen ahora con referencia a la figura 5A y la figura 5B. En el paso 502, el componente de hardware 102 envía un desafío a uno de los otros componentes de hardware 104, 106, 108. El desafío se recibe en el otro componente de hardware en el paso 504, que produce una respuesta en el paso 506.
En el paso 508, el otro componente de hardware devuelve la respuesta al componente de hardware 102, que la recibe en el paso 510. Los pasos 502 a 510 se repiten hasta que el componente de hardware 102 haya recibido todas las respuestas. Como se mencionó anteriormente, se apreciará que los desafíos pueden ser independientes entre sí, de modo que las respuestas sean independientes entre sí y se usen colectivamente para verificar la integridad del dispositivo (en cuyo caso los desafíos pueden enviarse y las respuestas se reciben intercaladas o en paralelo), o todos, excepto el primer desafío, puede ser la respuesta recibida del componente de hardware anterior (o derivada de esa respuesta), de modo que solo la respuesta del último componente de hardware que se desafió se puede usar para la verificación del dispositivo.
En el paso 512, el componente de hardware 102 usa la respuesta o respuestas para descifrar información de misión crítica, por ejemplo generando una clave de verificación del dispositivo a partir de la respuesta o respuestas, y usa la información de misión crítica en el paso 514, como se describió anteriormente. Se apreciará que los pasos 512 y 514 se pueden reemplazar con cualquier paso que haga uso de la respuesta o respuestas para verificar la integridad del dispositivo.
El proceso descrito anteriormente con referencia a las figuras 5A y 5B puede implementarse en cualquiera de las arquitecturas descritas anteriormente con referencia a las figuras 1A, 1B y 1C. Una realización específica que implementa este proceso con una disposición de conexión en cadena descrita anteriormente con referencia a la figura 1A se describe ahora con referencia a la figura 6. El componente de hardware 102 actúa como un maestro y cada uno de los componentes de hardware 104, 106 y 108, conectados para formar una cadena que comienza en un componente de hardware 102 y termina en el componente de hardware 102, implementa una función de respuesta respectiva A, B, C (I).
El componente de hardware 102 transmite un desafío al componente de hardware 104, que aplica la función de respuesta A al desafío. Luego, la respuesta se envía de regreso al componente de hardware 102 a través de los componentes de hardware 104 y 106, que simplemente pasan por la respuesta (II). Luego, el componente de hardware 102 envía un desafío al componente de hardware 106 a través del componente de hardware 104, que hace que el desafío lo atraviese. El componente de hardware 106 aplica la función de respuesta B al desafío y la respuesta se transmite de vuelta al componente de hardware 102 a través del componente de hardware 108, que hace que la respuesta lo atraviese (III). De manera similar, el componente de hardware 108 recibe un desafío, pasa a través de los componentes de hardware 104 y 106, y la respuesta producida por el componente de hardware 108 al aplicar la función de respuesta C se transmite de vuelta al componente de hardware 102 (IV). El componente de hardware 102 luego usa las respuestas (o la última respuesta, según sea el caso) para verificar la integridad del dispositivo como se describió anteriormente (V). Las funciones de respuesta, en algunas realizaciones, combinan su entrada (desafío) con una clave específica de componente de hardware y producen un hash de la combinación, o de otro modo producen una respuesta, como se describió anteriormente.
Se pueden emplear varias capas físicas y protocolos para implementar una disposición en encadena como se acaba de describir, cuyo ejemplo se especifica en el estándar IEEE 1149.1. Una realización específica que puede implementarse utilizando la especificación del estándar IEEE 1149.1 se describe ahora con referencia a la figura 7.
Con referencia a la figura 7, cada uno de los componentes de hardware 104, 106 y 108 tiene un pin de entrada 702, un pin de salida 704 y una pluralidad de registros de desplazamiento 706 que se pueden conectar entre los pines de entrada y salida 702, 704. El pin de entrada 702 de cada componente de hardware posterior, por ejemplo, el componente de hardware 106, está conectado al pin de salida 704 de cada componente de hardware anterior en la cadena, por ejemplo, el componente de hardware 104, mediante una línea de datos (un conductor) 708. El pin de salida del último componente de hardware, 108, en la cadena está conectado a una entrada de datos I del componente de hardware 102 por una línea de datos 710. La entrada del componente de hardware inicial, el componente de hardware 104, está conectada a una salida de datos O del componente de hardware 102 a través de una línea de datos 712.
Cada componente de hardware 104, 106 y 108 tiene varios modos, incluido un primer modo en el que el componente de hardware 102 puede cargar instrucciones en un registro de desplazamiento de instrucciones (no mostrado) de cada componente de hardware. El componente de hardware 102 se configura para hacerlo desplazando bits desde su salida O hacia su entrada I a través de los pines 702 y 704 de los componentes de hardware 104, 106 y 108 y los respectivos registros de desplazamiento de instrucciones. En un segundo modo, el componente de hardware 102 puede cargar datos, en particular un desafío, en un registro de desplazamiento de datos asociado con una instrucción actualmente cargada en cada componente de hardware 104, 106, 108. El componente de hardware 102 se configura para hacerlo desplazando bits desde su salida O hacia su entrada I a través de los pines 702 y 704 de los componentes de hardware 104, 106 y 108 y los respectivos registros de desplazamiento de datos. Por lo tanto, una instrucción cargada en el registro de desplazamiento de instrucciones en el primer modo actúa como un interruptor que determina qué datos del registro de desplazamiento de datos se desplazan en el segundo modo. Se apreciará que, a medida que los datos se desplazan al registro de desplazamiento de datos del componente de hardware 104, los datos que antes estaban en el registro de desplazamiento de datos del componente de hardware 104 se desplazan progresivamente al registro de desplazamiento de datos del componente de hardware 106 y así sucesivamente, donde los datos en el registro de desplazamiento de datos del componente de hardware 108 se desplazan fuera del registro de desplazamiento de datos del componente de hardware 108 y regresan a la entrada I del componente de hardware 102. En un tercer modo, se hace que cada componente de hardware 104, 106 y 108 procese los datos en su registro de desplazamiento de datos respectivo para generar una respuesta y escribir la respuesta de nuevo en el registro de desplazamiento de datos.
El desplazamiento de bits y el cambio de modos en cada componente de hardware 104, 106 y 108 es controlado por el componente de hardware 102 mediante una señal en un pin de selección de modo MS del componente de hardware 102 conectado por una línea de selección de modo 712 a los respectivos pines de selección de modo 714 de los componentes de hardware 104, 106 y 108. Los modos de los componentes de hardware 104, 106 y 108 se controlan por medio de una máquina de estado, con transiciones de estado determinadas por el valor en el pin de selección de modo MS cronometrado por una señal de reloj (en el borde anterior y/o descendente) en un pin de reloj CK conectado por una línea de reloj 716 a los respectivos pines de reloj 718 de los componentes de hardware 104, 106 y 108.
En algunas realizaciones, los componentes de hardware 104, 106 y 108 implementan la especificación del estándar IEEE 1149.1 y el componente de hardware 102, que actúa como maestro, proporciona en sus pines MS y CK las señales TMS y TCK especificadas por el estándar IEEE 1149.1 para los componentes de hardware 104, 106, 108 y los pines 714 y 718 de los componentes de hardware 104, 106 y 108 son, respectivamente, los pines TMS y TCK de acuerdo con IEEE-1149.1. Además, en estas realizaciones, el componente de hardware 102 se conecta al pin TDI 702 especificado por el estándar IEEE 1149.1 del componente de hardware 104 (el componente de hardware inicial en la cadena) con su pin O y al pin TDO 704 especificado por el estándar IEEE 1149.1 del componente de hardware 108 (el último componente de hardware de la cadena) con su pin I para recibir datos de vuelta de la cadena. En estas implementaciones, cada componente de hardware implementa el conjunto de instrucciones mínimo requerido por el estándar IEEE 1149.1. En algunas realizaciones, los componentes de hardware 104, 106 y 108 cumplen solo parcialmente con el estándar IEEE 1149.1 y solo se implementa parte o ninguno del conjunto mínimo de instrucciones. El componente de hardware 102 no necesita implementar un TAP de acuerdo con el propio estándar IEEE 1149.1, pero puede actuar únicamente como un maestro que controla las comunicaciones con los componentes de hardware 104, 106 y 108 que actúan como TAP que utilizan el estándar IEEE 1149.1. Por supuesto, el componente de hardware 102 también puede implementar un TAP en sí mismo con pines TCK, TMS, TDI y TDO separados para ser controlados, por ejemplo, con fines de prueba, por un componente de hardware adicional, tal como un componente de hardware de prueba externo. En algunas de tales realizaciones, uno o más (o todos) los pines TCK, TMS, TDO y TDI pueden ser los mismos que los pines CK, MS, O e I correspondientes del componente de hardware 102 y el componente 102 puede tener un primer modo en el que se obtienen respuestas de los componentes 104, 106 y 108 y un segundo modo en el que actúa como un TAP en una cadena de TAP y no acciona los pines TMS y TCK de estos componentes. Por ejemplo, el componente 102 puede usar los pines CK, MS y O como pines TCK, TMS y TDO, respectivamente, en el segundo modo, tener un pin TDI separado conectado al TAP anterior en la cadena y dejar de escuchar las respuestas en el pin I en el segundo modo.
Independientemente del cumplimiento o no del estándar IEEE 1149.1 del conjunto de instrucciones, los componentes de hardware 104, 106 y 108, en algunas realizaciones, implementan una instrucción personalizada ("desafío de proceso") para procesar un desafío en el registro de desplazamiento de datos 706 correspondiente a la instrucción (cuando corresponda), para producir una respuesta al desafío y escribir la respuesta en el registro de desplazamiento de datos en lugar del desafío. En algunas realizaciones, descritas con más detalle a continuación, otras instrucciones personalizadas retienen una respuesta ("retención de desafío de proceso"), seleccionando el mismo registro de desplazamiento de datos que la instrucción de desafío de proceso sin hacer que se procesen los datos en ese registro de desplazamiento de datos. En algunas realizaciones, se implementan y utilizan la instrucción BYPASS del estándar IEEE 1149.1 y un registro de desplazamiento de bit único correspondiente.
Los estados del dispositivo de algunas realizaciones que implementan un proceso como se describió anteriormente con referencia a las figuras 5A y 5B (el componente de hardware 102 recopila respuestas de los componentes de hardware 104, 106, 108) usando una configuración como se describe con referencia a las figuras 6 y 7 ahora se describen con referencia a la figura 8. En estas realizaciones, como se describió anteriormente, el desafío que se envía a los componentes de hardware posteriores es la respuesta recibida de un componente de hardware anterior, pero se apreciará que estas realizaciones son igualmente aplicables al envío de desafíos independientes a cada componente de hardware reemplazando la respuesta del componente de hardware anterior con un desafío independiente.
En un primer estado, el componente de hardware 102 desplaza una instrucción de desafío de proceso al registro de instrucciones del componente de hardware 104 y una instrucción de derivación a los registros de instrucciones de los componentes de hardware 106 y 108. Luego, el componente de hardware 102 desplaza el desafío al registro de datos asociado con la instrucción de desafío de proceso en el componente de hardware 104, donde los bits desplazados en consecuencia fuera del componente de hardware 104 se desplazan a través del registro de datos de derivación de los componentes de hardware 106 y 108 y la salida de la cadena es descartada por el componente de hardware 102. La instrucción de desafío del proceso luego hace que el componente de hardware 104 produzca una respuesta como una salida de la función A y la escriba en el registro de datos de desplazamiento ("una respuesta") durante una transición a un segundo estado.
En el segundo estado del dispositivo, el componente de hardware 102 desplaza datos fijos o ficticios al registro de datos de desplazamiento del componente de hardware 104 sin cambiar la instrucción en ninguno de los componentes de hardware para desplazar la respuesta producida por el componente de hardware 104 a la salida de la cadena donde es capturado en I por el componente de hardware 102. El componente de hardware 102 luego desplaza una instrucción de derivación al registro de instrucciones del componente de hardware 104, en el proceso que desplaza la instrucción de desafío del proceso del componente de hardware 104 al componente de hardware 106 y la instrucción de derivación del componente de hardware 106 al componente de hardware 108. El componente de hardware 102 desplaza aún más la respuesta que ha recibido del componente de hardware 104 en el segundo estado al componente de hardware 106 a través del registro de desplazamiento de datos de derivación del componente de hardware 104, lo que da como resultado un tercer estado del dispositivo. En la transición del tercer al cuarto estado, el componente de hardware 106 produce una respuesta y la escribe en el registro de desplazamiento de datos asociado con la instrucción de desafío del proceso (“respuesta b”).
De manera análoga al segundo estado, en el cuarto estado, el componente de hardware 102 luego desplaza la respuesta del componente de hardware 106 a su entrada I y procede de manera análoga para el componente de hardware 108 en el quinto y sexto estado ilustrado en la figura 8.
Si bien la secuencia de desplazamiento de instrucciones a través de los registros de instrucciones es en algunas realizaciones como se describió anteriormente, es decir, la instrucción de desafío del proceso se desplaza de un componente de hardware al siguiente para que todos los componentes de hardware reciban las mismas instrucciones de desafío del proceso, en otras realizaciones, algunos o todos los componentes de hardware pueden tener instrucciones de desafío de proceso mutuamente diferentes y el tamaño del registro de instrucciones puede variar entre los componentes de hardware. En esas realizaciones, en lugar de desplazar las instrucciones de desafío de proceso de un componente de hardware al siguiente, cada componente de hardware puede recibir su propia instrucción de desafío de proceso particular desplazando en consecuencia los bits de instrucción del componente de hardware 102 a través de la cadena de componentes de hardware.
Puede observarse que en el segundo, cuarto y sexto estado, el componente de hardware 104, 106 y 108, respectivamente, produce una respuesta no utilizada utilizando los datos nulos o ficticios insertados en el registro de datos mientras se carga con la instrucción de desafío del proceso. Para evitar esto, por ejemplo para permitir que los componentes de hardware mantengan un estado de respuesta preciso, se puede usar una instrucción de retención de desafío de proceso como se describió anteriormente en lugar de la instrucción de desafío de proceso en el segundo, cuarto y sexto estado descrito anteriormente.
En lugar de usar una instrucción de retención de desafío de proceso, en algunas realizaciones, el registro de desplazamiento de datos asociado con el desafío de proceso tiene un bit adicional además de los bits para el desafío/respuesta, que indica si el contenido del registro de desplazamiento de datos debe procesarse en la actualización del registro de desplazamiento de datos o no. Específicamente, cuando el desafío que incluye el bit adicional se inserta en el registro de desplazamiento de datos por primera vez, el bit adicional se establece en un valor, digamos 1, que indica que el desafío debe procesarse. Al actualizar el registro de desplazamiento de datos, el componente de hardware lee el bit adicional, determina a partir del valor que se procesará el desafío, procesa el desafío y vuelve a escribir la respuesta en el registro de desplazamiento de datos, invirtiendo el valor del bit adicional. Entonces, en la próxima actualización, si no se ha introducido ningún desafío nuevo en el registro de desplazamiento de datos, el bit adicional permanecerá en el valor invertido y cuando el componente de hardware lea los datos en el registro de desplazamiento de datos durante la próxima actualización (con el proceso instrucción de desafío todavía en el registro de instrucción), el componente de hardware suprime el procesamiento del desafío y la escritura de la respuesta en respuesta al valor invertido del bit adicional que se detecta. Por supuesto, se apreciará que son igualmente posibles otras formas de realizar un seguimiento de un estado de proceso interno/de no procesar.
Con referencia a las figuras 9, ahora se describen realizaciones en las que se provoca una cadena de respuestas de desafío de manera que cada respuesta depende de todas las respuestas anteriores y del desafío. Estas realizaciones se pueden implementar utilizando cualquiera de las arquitecturas descritas anteriormente con referencia a las figuras 1A, 1B y 1C. Por ejemplo, se puede enrutar una respuesta desde el componente de hardware 104 al componente de hardware 106, a través del bus 110 (consulte la figura 1C) o directamente desde el componente de hardware 104 al componente de hardware 106 (consulte la figura 1A). Esto último se describirá en más detalle a continuación.
En el paso 902, un maestro, por ejemplo el componente de hardware 102, envía un desafío, por ejemplo, al componente de hardware 104, el primer componente de hardware de la cadena. En el paso 904, el componente de hardware 104 recibe el desafío del componente de hardware 102 y produce una respuesta, que se envía al siguiente componente de hardware de la cadena, el componente de hardware 106 en el presente ejemplo. En el paso 906, el siguiente componente de hardware en la cadena recibe la respuesta del componente de hardware anterior en la cadena (por ejemplo, el componente de hardware 106 recibe la respuesta del componente de hardware 104) y produce su respuesta, que se envía al siguiente componente de hardware. Esto se repite hasta que un último componente de hardware de la cadena recibe la respuesta del componente de hardware anterior y produce su respuesta, que se envía de vuelta al maestro (en este ejemplo, el componente de hardware 108 produce su respuesta, que se envía al componente de hardware 102) en el paso 908.
En el paso 910, el maestro recibe la respuesta del último componente de hardware de la cadena y, en el paso 912, usa la respuesta para descifrar información de misión crítica, que luego se usa en el paso 914. Como se indicó anteriormente, se apreciará que los pasos 912 y 114 se pueden reemplazar con cualquier paso que utilice las respuestas para verificar la integridad del dispositivo, ya sea en el componente de hardware maestro y/o en un componente de hardware diferente en el dispositivo de procesamiento de datos 100. Del mismo modo, las respuestas pueden producirse de cualquiera de las formas descritas anteriormente.
Con referencia a la figura 10, en algunas realizaciones que implementan el proceso descrito anteriormente con referencia a la figura 9 en una arquitectura descrita anteriormente con referencia a la figura 1A, el componente de hardware 102 actúa como maestro y los componentes de hardware 104, 108 y 110 implementan las respectivas funciones de respuesta de desafío A, B, C (I). El componente de hardware 102 envía un desafío al componente de hardware 104, que aplica la función A al desafío para producir una respuesta (II). A continuación, la respuesta se envía desde el componente de hardware 104 al componente de hardware 106, que aplica su función de respuesta B a la respuesta recibida del componente de hardware 104 (III). La respuesta producida por la función de respuesta B en el componente de hardware 106 se envía luego al componente de hardware 108, que aplica su función de respuesta C a la respuesta recibida (IV). La respuesta producida por el componente de hardware 108, que depende del desafío y las respuestas de los componentes de hardware 104 y 106, se envía luego al componente de hardware 102, donde se usa (V).
En algunas realizaciones, las realizaciones que se acaban de describir con referencia a la figura 10 se implementan utilizando una disposición de componentes de hardware en cadena como se describió anteriormente con referencia a la figura 7, en base a la instrucción de desplazamiento y los datos de desafío/respuesta a través de los componentes de hardware 104, 106 y 108. El funcionamiento de dichas realizaciones se describe ahora con referencia a la figura 11. Específicamente, en un primer estado del dispositivo, se desplaza una instrucción de desafío de proceso al registro de instrucciones de cada componente de hardware 104, 106 y 108 y se desplaza un desafío al registro de desplazamiento de datos del componente de hardware 104, con los datos nulos o ficticios desplazados a través de la cadena hacia los registros de desplazamiento de datos de los componentes de hardware 106 y 108. En una transición del estado del primer dispositivo a un estado del segundo dispositivo, el componente de hardware 104 produce su respuesta y la escribe en su registro de desplazamiento de datos. Dado que los componentes de hardware 106 y 108 también tienen cargada la instrucción de desafío del proceso, estos producirán una respuesta a los datos en el registro de desplazamiento de datos, aunque esta es una respuesta no utilizada que se descarta a medida que los bits se desplazan a lo largo de la cadena.
En un segundo estado del dispositivo, se desplaza una cantidad suficiente de bits al registro de datos del componente de hardware 104 para desplazar la respuesta producida por el componente de hardware 104 al registro de desplazamiento de datos del componente de hardware 106. Similar al componente de hardware 104, en una transición del segundo estado del dispositivo a un tercer estado del dispositivo, el componente de hardware 106 produce una respuesta al contenido de su registro de datos (la respuesta producida por el componente de hardware 104) y lo escribe en su registro de datos. En el tercer estado del dispositivo, una cantidad de bits se insertan nuevamente en el dispositivo para mover la respuesta del componente de hardware 106 al registro de datos del componente de hardware 108, que luego se actualiza para escribir su respuesta en su registro de datos, luego de lo cual, en el estado cuatro del dispositivo, se inserta una cantidad adicional de bits en la cadena para enviar la respuesta producida por el componente de hardware 108 a la salida del componente de hardware 108 de modo que pueda capturarse en el pin I del componente de hardware 102 como la respuesta de la cadena de componentes de hardware.
El enfoque descrito anteriormente con referencia a la figura 11 tiene la ventaja de la simplicidad en que la cadena se carga una vez con instrucciones de desafío del proceso que luego se ejecutan cada vez que un desafío/respuesta se mueve de un componente de hardware al siguiente. Sin embargo, esto significa que hay múltiples repeticiones de la ejecución de la instrucción de desafío del proceso que se descartan. Esto puede no ser deseable cuando la carga de procesamiento en los componentes de hardware de la cadena es una preocupación, o cuando los componentes de hardware necesitan mantener un estado interno, por ejemplo, para forzar la ejecución del componente de hardware de desafío del proceso solo una vez en el ciclo de arranque, o para hacer que cada respuesta posterior de cualquier componente de hardware dado dependa de una o más respuestas anteriores de ese componente de hardware.
En un enfoque, ahora descrito con referencia a la figura 12, la secuencia de instrucciones se modifica para que cada componente de hardware no ejecute una instrucción de desafío de proceso antes de que se cargue el registro de datos correspondiente con la respuesta del componente de hardware anterior. Con ese fin, el estado del primer dispositivo discutido anteriormente con referencia a la figura 11 se modifica cargando solo el componente de hardware 104 (es decir, el primer componente de hardware en la cadena) con una instrucción de desafío de proceso y cargando los componentes de hardware 106 y 108 con una construcción de derivación discutida anteriormente con referencia al estándar IEEE 1149.1.
En el segundo estado del dispositivo, una instrucción de desafío de proceso adicional se desplaza al registro de instrucciones del componente de hardware 104, desplazando de esta manera la instrucción de desafío de proceso del componente de hardware 104 al registro de instrucciones del componente de hardware 106. La respuesta del componente de hardware 104 se desplaza al registro de desplazamiento de datos del componente de hardware 106, como antes. De manera similar, en el tercer estado del dispositivo, una instrucción de desafío de proceso adicional se desplaza a la cadena de registros de instrucciones, desplazando la instrucción de desafío de proceso del componente de hardware 106 al registro de desplazamiento de instrucciones del componente de hardware 108. La respuesta del registro de desplazamiento de datos del componente de hardware 106 se desplaza nuevamente al registro de desplazamiento de datos del componente de hardware 108. Como consecuencia, el componente de hardware 104 produce su respuesta usada (primera) en la transición del estado 1 al estado 2, el componente de hardware 106 produce su respuesta usada (primera) en la transición del estado 2 al estado 3 y, en la transición del tercer al cuarto estado del dispositivo, el componente de hardware 108 produce su (primera) respuesta usada y la escribe en su registro de datos, que luego se envía a través de la salida del componente de hardware 108 para ser capturado en el pin I del componente de hardware 102 como la respuesta de la cadena en el cuarto estado del dispositivo.
En un enfoque adicional, ahora descrito con referencia a la figura 13, la secuencia de instrucciones se modifica para que cada componente de hardware ejecute instrucciones de desafío de proceso solo una vez durante el recorrido de una respuesta a través de la cadena. Específicamente, el primer estado del dispositivo es el mismo que se describió anteriormente con referencia a la figura 12, pero en el segundo estado del dispositivo, una instrucción de retención de desafío del proceso se desplaza al registro de desplazamiento de instrucciones del componente de hardware 104 en lugar de la instrucción de desafío del proceso. La instrucción de retención de desafío del proceso selecciona el mismo registro de datos que la instrucción de desafío del proceso, pero no provoca ningún efecto adicional. Al desplazar la instrucción de retención de desafío de proceso al registro de desplazamiento de instrucciones del componente de hardware 104, se desplaza la instrucción de desafío de proceso del componente de hardware 104 al componente de hardware 106. En los estados de dispositivo tercero y cuarto, una instrucción de derivación se desplaza al registro de desplazamiento de instrucciones del componente de hardware 104, desplazando cada vez las instrucciones adyacentes de retención de desafío de proceso y de desafío de proceso más abajo en la cadena, como se puede apreciar en una inspección de la figura 13.
En cada estado del dispositivo después del primer estado del dispositivo, una cantidad de bits nulos o ficticios se desplazan al registro de desplazamiento de datos del primer componente de hardware 104 para provocar que el desafío producido por el respectivo componente de hardware en la transición de un estado al siguiente se desplace al siguiente componente de hardware, desplazando la respuesta del componente de hardware 104 al componente de hardware 106 en el segundo estado del dispositivo, del componente de hardware 106 al componente de hardware 108 en el tercer estado del dispositivo y del componente de hardware 108 para ser capturado en el pin I del componente de hardware 102 en el cuarto estado del dispositivo. De esta manera, una instrucción de desafío de proceso solo está presente en un componente de hardware a la vez durante una transición de un estado de dispositivo al siguiente, de modo que cada componente de hardware en la cadena solo ejecuta una instrucción de desafío de proceso una vez durante la transición del desafío/respuesta a través de la cadena.
Se apreciará que, como en las realizaciones descritas anteriormente, el uso de la instrucción de retención de desafío del proceso se puede reemplazar con la adición de un bit adicional al registro de desplazamiento de datos, indicando el bit adicional si una respuesta al contenido del registro de desplazamiento de datos se debe producir y escribir en el registro de desplazamiento de datos, como se describió en detalle anteriormente con respecto a la realización descrita con referencia a la figura 8. En las realizaciones que usan el bit adicional en el registro de desplazamiento de datos, solo se producirá una respuesta una vez independientemente de la instrucción, hasta que el bit adicional se restablezca (a su valor que indica que se debe producir y escribir una respuesta) mediante el componente de hardware 102 presionando un nuevo desafío que incluye un bit adicional configurado apropiadamente en uno o más de los registros de desplazamiento de datos.
Habiendo leído la descripción específica anterior de algunas realizaciones, será evidente para el experto en la materia que son posibles muchas variaciones, modificaciones y yuxtaposiciones de las realizaciones y características descritas anteriormente y estarán dentro del alcance de las reivindicaciones adjuntas. En particular, será evidente que se han descrito varios enfoques para recopilar una respuesta de una pluralidad de componentes de hardware (respuestas individuales o una respuesta que depende de las respuestas restantes), usando cualquiera de las implementaciones físicas y protocolos divulgados. La respuesta se puede utilizar de cualquiera de las diversas formas descritas anteriormente, independientemente de cómo se recopile la respuesta o la infraestructura utilizada para recopilar la respuesta.

Claims (12)

REIVINDICACIONES
1. Un dispositivo de procesamiento de datos (100) que comprende una pluralidad de componentes de hardware de procesamiento de datos (102, 104, 106, 108), los componentes de hardware de procesamiento de datos que comprenden un primer componente de hardware (102) y uno o más componentes de hardware restantes (104, 106, 108), en donde:
los componentes de hardware están conectados en una cadena con una entrada de un componente de hardware restante inicial (104) en la cadena conectada a una salida del primer componente de hardware; una entrada de cada componente de hardware restante posterior (106) en la cadena conectada a una salida de un respectivo componente de hardware restante anterior en la cadena; y una entrada del primer componente de hardware conectado a una salida del último de los componentes de hardware restantes en la cadena (108);
el primer componente de hardware se configura para enviar un desafío a la entrada del componente de hardware restante inicial en la cadena;
cada uno de los componentes de hardware restantes en la cadena se configura para recibir un desafío respectivo en su entrada y procesar el desafío para producir y enviar una respuesta a una entrada del siguiente componente de hardware en la cadena;
el primer componente de hardware se configura para recibir una respuesta producida por el último componente de hardware restante en la cadena; y
el dispositivo se configura para verificar la integridad del dispositivo en base a una o más respuestas producidas por el uno o más componentes de hardware restantes.
2. Un dispositivo de procesamiento de datos de acuerdo con la reivindicación 1, que comprende una memoria que almacena información de misión crítica en forma cifrada,
en donde el dispositivo o un aspecto del dispositivo requiere la información de misión crítica en forma descifrada para funcionar, y
en donde el dispositivo se configura para descifrar la información de misión crítica cifrada utilizando una o más claves de verificación del dispositivo en base a la una o más respuestas producidas por el uno o más componentes de hardware restantes.
3. Un dispositivo de procesamiento de datos de acuerdo con la reivindicación 2, en donde la información de misión crítica comprende uno o más de software; microprograma requerido para el dispositivo o un aspecto del dispositivo para que funcione; un BIOS; un núcleo del sistema operativo; un controlador de componentes de hardware; un cargador de arranque; y una clave de descifrado contenida.
4. Un dispositivo de procesamiento de datos de acuerdo con la reivindicación 2 o 3, en donde el dispositivo de procesamiento de datos comprende un dispositivo de acceso condicional y la información de misión crítica comprende una clave de descifrado para que la use el dispositivo de acceso condicional para controlar el acceso al contenido consumible utilizando el dispositivo de procesamiento de datos.
5. Un dispositivo de procesamiento de datos de acuerdo con la reivindicación 1, en donde cada uno de los componentes de hardware restantes se configura para aplicar una función no transitiva a su desafío para producir su respuesta.
6. Un dispositivo de procesamiento de datos de acuerdo con la reivindicación 1, en donde cada componente de hardware restante comprende:
un registro de desplazamiento de instrucciones para recibir una instrucción de un conjunto de instrucciones, el conjunto de instrucciones incluye al menos una instrucción de desafío de proceso para procesar un desafío y producir una respuesta; y
un registro de desplazamiento de datos, correspondiente a la instrucción de desafío del proceso, para recibir un desafío,
en donde cada componente de hardware restante se configura para:
en un primer modo, desplazar un bit a la vez desde su entrada al registro de desplazamiento de instrucciones y un bit a la vez desde el registro de desplazamiento de instrucciones a su salida;
en un segundo modo, desplazar un bit a la vez desde su entrada al registro de desplazamiento de datos y un bit a la vez desde el registro de desplazamiento de datos a su salida; y
en un tercer modo, cuando una instrucción de desafío de proceso está en el registro de desplazamiento de instrucciones, leer el desafío en el registro de desplazamiento de datos, procesar el desafío para producir una respuesta y escribir la respuesta en el registro de desplazamiento de datos,
en donde el primer componente de hardware se configura para controlar el modo de los componentes de hardware restantes para:
desplazar las instrucciones respectivas a los registros de desplazamiento de instrucciones; desplazar los desafíos a los registros de desplazamiento de datos;
hacer que los componentes de hardware restantes procesen los desafíos para producir respuestas; y desplazar las respuestas fuera de los registros de desplazamiento de datos, recibiendo de esta manera una o más respuestas de los componentes de hardware restantes, y
en donde el primer componente de hardware se configura para controlar el modo de todos los componentes de hardware restantes juntos sobre una línea de control de modo común a todos los componentes de hardware restantes.
7. Un dispositivo de procesamiento de datos de acuerdo con la reivindicación 6, en donde el primer componente de hardware se configura para provocar:
un desafío para ser desplazado bit a bit al registro de desplazamiento de datos del componente de hardware restante inicial;
el componente de hardware restante inicial para procesar el desafío y escribir su respuesta en su registro de desplazamiento de datos;
la respuesta del registro de desplazamiento de datos del componente de hardware anterior respectivo en la cadena para ser desplazada bit a bit al registro de desplazamiento de datos de cada componente de hardware restante posterior en la cadena;
cada componente de hardware posterior para procesar la respuesta del componente de hardware anterior respectivo en su registro de desplazamiento de datos como su desafío para escribir su respuesta en el registro de desplazamiento de datos; y
la respuesta escrita en el registro de desplazamiento de datos respectivo del último componente de hardware restante en la cadena para ser desplazada bit a bit a la entrada del primer componente de hardware.
8. Un dispositivo de procesamiento de datos de acuerdo con la reivindicación 7, en donde el primer componente de hardware se configura para hacer que una instrucción de desafío de proceso sea ejecutada por cada componente de hardware restante posterior en la cadena, no antes de que el respectivo componente de hardware anterior en la cadena haya escrito su respuesta a su registro de datos.
9. Un dispositivo de procesamiento de datos de acuerdo con la reivindicación 7, en donde el primer componente de hardware se configura para hacer que cada componente de hardware restante en la cadena solo ejecute una instrucción de desafío de proceso una vez entre desplazar el desafío al registro de desplazamiento de datos del componente de hardware restante inicial en la cadena y desplazar la respuesta escrita en el registro de desplazamiento de datos del último componente de hardware restante en la cadena a la entrada del primer componente de hardware.
10. Un dispositivo de procesamiento de datos de acuerdo con cualquiera de las reivindicaciones anteriores, en donde una capa física utilizada para implementar comunicaciones entre los componentes de hardware iniciales y restantes y entre los componentes de hardware restantes cumple con la especificación IEEE-1 149.1 (JTAG), cada componente de hardware restante comprende un pin TMS, TCK, TDI y TDO y una máquina de estado compatible con las especificaciones.
11. Un método para verificar la integridad de un dispositivo de procesamiento de datos de acuerdo con la reivindicación 1, el método que comprende:
enviar (502, 902), por parte del primer componente de hardware, un desafío a la entrada del componente de hardware restante inicial en la cadena;
recibir (904) por cada uno de los componentes de hardware restantes en la cadena, un desafío respectivo en su entrada y procesar el desafío para producir y enviar una respuesta a una entrada del siguiente componente de hardware en la cadena;
recibir (504, 910), a la entrada del primer componente de hardware, una respuesta producida por el último componente de hardware restante en la cadena;
usar (512, 912), por el dispositivo de procesamiento de datos, una o más respuestas producidas por uno o más componentes restantes para verificar la integridad del aparato de procesamiento de datos.
12. Un método de acuerdo con la reivindicación 11, el método que comprende usar la respuesta de la pluralidad de componentes de hardware para descifrar información que se requiere en forma descifrada para el funcionamiento del dispositivo o de un aspecto del dispositivo.
ES16812931T 2015-12-16 2016-12-13 Verificación de integridad de hardware Active ES2938771T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB1522244.1A GB201522244D0 (en) 2015-12-16 2015-12-16 Hardware integrity check
PCT/EP2016/080859 WO2017102766A1 (en) 2015-12-16 2016-12-13 Hardware integrity check

Publications (1)

Publication Number Publication Date
ES2938771T3 true ES2938771T3 (es) 2023-04-14

Family

ID=55274883

Family Applications (1)

Application Number Title Priority Date Filing Date
ES16812931T Active ES2938771T3 (es) 2015-12-16 2016-12-13 Verificación de integridad de hardware

Country Status (11)

Country Link
US (1) US20180367317A1 (es)
EP (1) EP3391276B1 (es)
JP (1) JP6949843B2 (es)
CN (2) CN108701191B (es)
BR (1) BR112018012130A2 (es)
CA (1) CA3007579A1 (es)
ES (1) ES2938771T3 (es)
GB (1) GB201522244D0 (es)
MX (2) MX2018007302A (es)
SG (1) SG11201804841VA (es)
WO (1) WO2017102766A1 (es)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10972265B2 (en) 2017-01-26 2021-04-06 Microsoft Technology Licensing, Llc Addressing a trusted execution environment
US10897360B2 (en) 2017-01-26 2021-01-19 Microsoft Technology Licensing, Llc Addressing a trusted execution environment using clean room provisioning
US10897459B2 (en) * 2017-01-26 2021-01-19 Microsoft Technology Licensing, Llc Addressing a trusted execution environment using encryption key
JP6972721B2 (ja) * 2017-07-18 2021-11-24 富士フイルムビジネスイノベーション株式会社 情報処理装置及び情報処理プログラム
US10826690B2 (en) * 2017-12-28 2020-11-03 Intel Corporation Technologies for establishing device locality
CN110677250B (zh) 2018-07-02 2022-09-02 阿里巴巴集团控股有限公司 密钥和证书分发方法、身份信息处理方法、设备、介质
CN110795774B (zh) 2018-08-02 2023-04-11 阿里巴巴集团控股有限公司 基于可信高速加密卡的度量方法、设备和系统
CN110795742B (zh) 2018-08-02 2023-05-02 阿里巴巴集团控股有限公司 高速密码运算的度量处理方法、装置、存储介质及处理器
CN108985044A (zh) * 2018-08-07 2018-12-11 长沙龙生光启新材料科技有限公司 一种数据处理设备及验证其完整性的方法
CN110874478B (zh) 2018-08-29 2023-05-02 阿里巴巴集团控股有限公司 密钥处理方法及装置、存储介质和处理器
US11269522B2 (en) * 2019-07-16 2022-03-08 Microsoft Technology Licensing, Llc Private data analytics
CN112311718B (zh) * 2019-07-24 2023-08-22 华为技术有限公司 检测硬件的方法、装置、设备及存储介质
WO2023113825A1 (en) * 2021-12-17 2023-06-22 Hewlett-Packard Development Company, L.P. Backlight controls

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5859657A (en) * 1995-12-28 1999-01-12 Eastman Kodak Company Led printhead and driver chip for use therewith having boundary scan test architecture
US20040064457A1 (en) * 2002-09-27 2004-04-01 Zimmer Vincent J. Mechanism for providing both a secure and attested boot
US7751312B2 (en) * 2003-06-13 2010-07-06 International Business Machines Corporation System and method for packet switch cards re-synchronization
US20050289343A1 (en) * 2004-06-23 2005-12-29 Sun Microsystems, Inc. Systems and methods for binding a hardware component and a platform
ATE424566T1 (de) * 2004-11-22 2009-03-15 Freescale Semiconductor Inc Integrierte schaltung und verfahren zur gesicherten prüfung
US20080260152A1 (en) * 2005-11-29 2008-10-23 Koninklijke Philips Elecetronics, N.V. Proofs of Vicinity Using Cpufs
US20090204964A1 (en) * 2007-10-12 2009-08-13 Foley Peter F Distributed trusted virtualization platform
GB2464966B (en) * 2008-10-31 2012-08-29 Hewlett Packard Development Co Policy enforcement in trusted platforms
US8544092B2 (en) * 2009-03-12 2013-09-24 International Business Machines Corporation Integrity verification using a peripheral device
JP5423088B2 (ja) * 2009-03-25 2014-02-19 ソニー株式会社 集積回路、暗号通信装置、暗号通信システム、情報処理方法、及び暗号通信方法
WO2012122994A1 (en) * 2011-03-11 2012-09-20 Kreft Heinz Off-line transfer of electronic tokens between peer-devices
US8612766B2 (en) * 2011-07-05 2013-12-17 Microsoft Corporation Secure credential unlock using trusted execution environments
KR102013841B1 (ko) * 2012-08-06 2019-08-23 삼성전자주식회사 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치
US9940486B2 (en) * 2015-02-23 2018-04-10 Cisco Technology, Inc. Detection of hardware tampering

Also Published As

Publication number Publication date
US20180367317A1 (en) 2018-12-20
EP3391276B1 (en) 2023-02-01
CN108701191A (zh) 2018-10-23
MX2022004044A (es) 2022-05-06
EP3391276A1 (en) 2018-10-24
MX2018007302A (es) 2018-09-28
CA3007579A1 (en) 2017-06-22
SG11201804841VA (en) 2018-07-30
CN108701191B (zh) 2022-04-05
JP6949843B2 (ja) 2021-10-13
CN114756869A (zh) 2022-07-15
GB201522244D0 (en) 2016-01-27
BR112018012130A2 (pt) 2018-11-27
WO2017102766A1 (en) 2017-06-22
JP2018537793A (ja) 2018-12-20

Similar Documents

Publication Publication Date Title
ES2938771T3 (es) Verificación de integridad de hardware
O’Flynn et al. On-Device Power Analysis Across Hardware Security Domains.: Stop Hitting Yourself.
US20220292226A1 (en) Peripheral Device Comportability with Security Circuitry
US12001689B2 (en) Transparently attached flash memory security
US11928215B2 (en) Firmware verification mechanism
ES2894890T3 (es) Verificación de secuencias
TWI807766B (zh) 安全之全晶片通信
US20240184932A1 (en) Read-Only Memory (ROM) Security
TWI821971B (zh) 安全加密協同處理器
US20220391540A1 (en) Register File Protection
Shepherd Techniques for Establishing Trust in Modern Constrained Sensing Platforms with Trusted Execution Environments
TW202240591A (zh) 唯讀記憶體(rom)安全性
Arias Towards Hardware Assisted Cyber Security