ES2381355T3 - Plataforma informática de confianza - Google Patents

Plataforma informática de confianza Download PDF

Info

Publication number
ES2381355T3
ES2381355T3 ES03742347T ES03742347T ES2381355T3 ES 2381355 T3 ES2381355 T3 ES 2381355T3 ES 03742347 T ES03742347 T ES 03742347T ES 03742347 T ES03742347 T ES 03742347T ES 2381355 T3 ES2381355 T3 ES 2381355T3
Authority
ES
Spain
Prior art keywords
platform
initialization
module
guidelines
code
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.)
Expired - Lifetime
Application number
ES03742347T
Other languages
English (en)
Inventor
Willard Wiseman
David Grawrock
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of ES2381355T3 publication Critical patent/ES2381355T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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
    • G06F21/575Secure boot
    • 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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2145Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2153Using hardware token as a secondary aspect
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general

Abstract

Un aparato que comprende: una plataforma (102) de cálculo que incluye: una raíz de confianza para un módulo (104) de medición que comprende un bloque (108) de arranque de inicialización de la plataforma; un procesador (124) para ejecutar instrucciones, incluido el código de inicialización de la plataforma, que incluye el bloque (108) de arranque de inicialización de la plataforma que comienza en un punto (122) de entrada dentro de la raíz de confianza para el módulo de medición y un código (148) de inicialización de la plataforma principal, ejecutando dicho bloque de arranque de inicialización de la plataforma código para habilitar dispositivos en la plataforma necesarios para que se ejecute el código de inicialización de la plataforma principal; y llevando a cabo dicho código de inicialización de la plataforma principal funciones necesarias para completar la inicialización de la plataforma de cálculo; un cargador (150) de sistema operativo; un módulo (112) de plataforma de confianza que incluye valores cargados de antemano almacenados en un emplazamiento (120) de almacenamiento blindado, estando relacionados dichos valores cargados de antemano con la integridad de la plataforma de cálculo; un módulo (106) de directrices de propiedades de seguridad de la plataforma que incluye una tabla (118) de directrices que contiene información de directrices (D1 - Dn) que definen propiedades de seguridad de la plataforma a las que hay que atenerse durante la inicialización de la plataforma; 20 un módulo (130) de comparación acoplado en comunicación con la raíz de confianza para el módulo (104) de medición; y en la que dicho bloque de arranque de inicialización de la plataforma y dicho módulo de directrices de propiedades de seguridad de la plataforma son para determinar si son dignos de confianza mediante la medición y la comparación con uno de dichos valores cargados de antemano de dicho módulo de plataforma de confianza usando código interno a dicho bloque de arranque de inicialización de la plataforma, en la que la medición es la acción de obtener un valor que pueda ser directamente asociado con la integridad de una entidad, y en la que el módulo de comparación verifica acto seguido que el valor medido coincide con uno de dichos valores cargados de antemano del módulo (112) de programa de confianza y, si no, impide el resto del procedimiento de arranque, permitiendo, de lo contrario, que la ejecución continúe con el bloque de arranque de inicialización de la plataforma para medir y verificar si la información de las directrices relativa al código de inicialización de la plataforma principal satisface una correspondiente directriz localizada en el módulo de plataforma de confianza y, si no, abstenerse de transferir el control a dicho código de inicialización principal, y, en caso afirmativo, permitir la ejecución del código de inicialización de la plataforma principal para medir y verificar si dispositivos adicionales (DISP1 a DISPn) acoplados a la plataforma satisfacen la información de las directrices y, en caso afirmativo, permitir la ejecución del código de inicialización de la plataforma principal y verificar si el cargador del sistema operativo satisface la información de las directrices y, en caso afirmativo, permitir que el procesador cargue un sistema operativo (110) y, si no, abstenerse de cargar un sistema operativo; y en la que el sistema operativo, si se carga, ha de ser ejecutado por el procesador.

Description

Plataforma informática de confianza
La presente invención versa en general acerca de aparatos, sistemas y procedimientos que proporcionan seguridad para plataformas de cálculo. Más en particular, la presente invención versa acerca de aparatos, sistemas y procedimientos usados para proporcionar autenticación de soporte físico y soporte lógico, como pueden darse en plataformas informáticas de confianza.
En un mundo crecientemente influido por la existencia de redes que conectan un amplio conjunto de recursos informáticos, nunca han sido más importantes los temas de la seguridad de los datos, la protección de la información y la privacidad de los usuarios. Típicamente, los ordenadores personales (PC) ofrecen una arquitectura abierta como estándar industrial que puede ser usado para construir una plataforma informática omnipresente. Sin embargo, la confianza en la plataforma no ha formado comúnmente parte de tales diseños. Tal como se usa en el presente documento, puede interpretarse que el término “plataforma” significa cualquier tipo de dispositivo, incluyendo soporte físico, soporte lógico o cualquier combinación de estos, cuya actividad se dirija según una pluralidad de instrucciones programadas.
Típicamente, las plataformas se ejecutan bajo el control de un sistema operativo (SO) cuando han de ejecutarse aplicaciones. Los sistemas operativos y los componentes previos al sistema operativo son complejos y requieren un procedimiento de carga (es decir, de “arranque”) para cargarlos en la memoria de la plataforma. La plataforma carga el SO cuando la plataforma pasa de un estado apagado o suspendido a un estado encendido, o cuando se aplica una señal de reposición a la línea de reposición de la plataforma. En el presente documento, la expresión “reposición de la plataforma” puede ser usada para referirse a cualquiera de estas condiciones. El código de inicialización de la plataforma incluye dos componentes: el bloque de arranque de inicialización de la plataforma (PIBB) y el código de inicialización de la plataforma principal (MPIC). Después de que ocurra una reposición de la plataforma, la unidad central de proceso (CPU) comienza la ejecución en una ubicación bien conocida y definida dentro del PIBB. Este código es intencionalmente pequeño, robusto y seguro. El PIBB ejecuta código para habilitar dispositivos en la plataforma necesarios para que se ejecute el código de inicialización de la plataforma principal. El PIBB pasa entonces el control de la plataforma al código de inicialización de la plataforma principal.
El código de inicialización de la plataforma principal lleva a cabo funciones necesarias para completar la inicialización de la plataforma. Tales funciones pueden incluir la inicialización de dispositivos integrados dentro de la plataforma y localizar e inicializar adaptadores opcionales acoplables o integrados (que tienen su propio código de inicialización de dispositivos). Después de esto, el código de inicialización de la plataforma principal localiza el cargador del SO y lo ejecuta. El cargador del SO, a su vez, carga el SO en memoria y comienza a ejecutar el SO. En este punto, se considera que la plataforma está en el estado actual del SO y bajo el control completo del SO cargado.
Siempre que una plataforma sin confianza carga un SO, pueden producirse violaciones de las directrices de seguridad sin tan siquiera conectar la plataforma a la red. Así, la informática de confianza está cobrando importancia en todos los aspectos de las operaciones de cálculo, incluso cuando tales operaciones se realicen aparte de una red.
El documento EP1085396 da a conocer una entidad informática que incluye una unidad autónoma autocontenida de confianza de proceso de datos que comprende un procesador que tiene un primer medio de proceso y un primer medio de memoria. La entidad también comprende una plataforma informática que tiene un medio de proceso principal y un área de memoria principal, junto con una pluralidad de recursos asociados físicos y lógicos, tales como dispositivos periféricos, incluyendo impresoras, módems, programas de aplicación, sistemas operativos y similares. La plataforma informática tiene una pluralidad de estados de operación diferentes, teniendo cada estado de operación un nivel diferente de seguridad y de fiabilidad. Estados seleccionados de los estados comprenden estados de confianza, en los que un usuario puede introducir información confidencial sensible con un alto grado de certeza de que la plataforma informática no se ha visto comprometida por influencias externas, como virus, piratas informáticos u ataques hostiles. Para entrar en un estado de confianza, se realizan automáticamente referencias al componente de confianza, y para salir de un estado de confianza debe hacerse referencia al componente de confianza. Al salir del estado de confianza, se borran de la plataforma informática todas las referencias al estado de confianza. Al entrar en el estado de confianza, se entra en el estado de una manera reproducible y conocida que tiene una configuración reproducible y conocida que es confirmada por el componente de confianza.
Según un aspecto de la presente invención, se proporciona un aparato según la reivindicación 1.
Según otro aspecto de la presente invención, se proporciona un procedimiento según la reivindicación 7.
Breve descripción de los dibujos
La FIG. 1 es un diagrama de bloques de un aparato, de un artículo que incluye un medio accesible por máquina y de un sistema según diversas realizaciones de la invención;
la FIG. 2 es un diagrama de bloques de un módulo de directrices según una realización de la invención; y las FIGURAS 3A y 3B son diagramas de flujo que ilustran un procedimiento de verificar la confianza en una plataforma según una realización de la invención.
Descripción detallada de las realizaciones
La confianza se establece cuando una primera entidad (por ejemplo, un programa que se ejecuta en nombre de una persona u organización) tiene base para creer que el estado, la configuración y las respuestas recibidas de una segunda entidad (por ejemplo, un ordenador personal) son precisamente las representadas para la primera entidad. La Alianza de Plataformas Informáticas de Confianza (TCPA) ha desarrollado un estándar para proporcionar a la industria un conjunto de condiciones operativas que den confianza en las plataformas y los entornos informáticos. Este estándar, “The TCPA Main Specification”, versión 1.1a, de 12 de noviembre de 2001, puede encontrarse en la actualidad en www-trusted computing-org (para evitar hiperenlaces involuntarios, los puntos del precedente URL han sido sustituidos por guiones). Como parte integral de cada plataforma, la “TCPA Main Specification” define elementos del entorno informático que operan para proteger la información dentro de las comunicaciones informáticas comerciales y personales. Los servicios existentes de seguridad basados en soporte lógico son inadecuados para dar prueba de que una plataforma es de confianza. La “TCPA Main Specification” detalla mecanismos que, cuando son implementados en una plataforma, proporcionan mayor confianza y permiten mejoras de los servicios existentes, así como la provisión de nuevos servicios.
La “TCPA Main Specification” también define un conjunto de componentes del que se puede confiar en que opere como se espera. Cuando están integrados en una plataforma, estos componentes medirán de forma fiable información sobre el entorno en esa plataforma, e informarán de ella. Esta “comprobación de integridad” de los componentes complementa y mejora los servicios de seguridad basados solo en componentes lógicos. Los componentes incluyen un motor informático aislado en cuyos procesos se puede confiar porque no pueden ser alterados. Estos procesos de confianza incluyen una almacenamiento protegido, una firma digital y un intercambio de datos de infraestructura de clave pública (PKI).
El comportamiento propuesto para una dispositivo habilitado por la TCPA, un módulo de plataforma de confianza (TPM), es “informar” de la integridad de la plataforma, permitiendo que la plataforma arranque hasta el SO incluso con componentes sin confianza instalados. Esto permite que un recurso externo (por ejemplo, un servidor en una red) determine la fiabilidad de la plataforma, pero no impide el acceso a la plataforma por el usuario.
La FIG. 1 es un diagrama de bloques de un aparato, de un artículo que incluye un medio accesible por máquina y de un sistema según diversas realizaciones de la invención. En una realización de la invención, un aparato 100 para proporcionar confianza en una plataforma 102 puede incluir una raíz de confianza para el módulo 104 de medición (RTM) y un módulo 106, 106’ de directrices de propiedades de seguridad de la plataforma. El RTM 104 establece la base de la confianza en la plataforma 102. Así, el usuario de la plataforma debe decidir en primer lugar confiar en el RTM 104 de la plataforma. Una vez que se ha adoptado esa decisión, puede usarse el aparato 100 descrito en el presente documento para proporcionar una base de la confianza en las porciones restantes del procedimiento de arranque.
Según se describe en el presente documento, se da por sentado que una entidad no autorizada no será capaz de modificar el PIBB 108, que puede ser el RTM 104. También puede darse por sentado que todos los demás componentes y/o módulos dentro de la plataforma 102 están sujetos a ataques o a modificación, intencional o no. Así, diversas realizaciones de la invención pueden actuar para evitar la carga del SO 110 (típicamente incluido en una memoria 111 u otro dispositivo de almacenamiento) dentro de la plataforma 102, y pueden alertar al usuario de la plataforma si ocurre una modificación no autorizada de los componentes de la plataforma.
La “TCPA Main Specification” define un conjunto de funciones de confianza y emplazamientos de almacenamiento blindados. Estas funciones y estos emplazamientos de almacenamiento están contenido en un módulo 112 de plataforma de confianza (TPM) que, típica, pero no necesariamente, está implementado como un dispositivo permanentemente conectado a la plataforma 102.
Ejemplos de emplazamientos de almacenamiento blindados incluyen registros 114 de integridad de datos (DIR), registros no volátiles que solo pueden ser modificados por el propietario de la plataforma y registros 116 de configuración de la plataforma (PCR) que contienen valores que miden la integridad de la plataforma 102. Parte de la “TCPA Main Specification” define la generación de una clave calculada de dianas y la puesta de los valores de clave calculada en un emplazamiento de almacenamiento blindado, posiblemente combinando los valores de clave calculada con valores almacenados previamente. Tales dianas pueden incluir código ejecutable, datos de configuración, un registro de información definida por la TCPA y otros elementos.
El módulo 106 de directrices de propiedades de seguridad de la plataforma, que incluye posiblemente información en forma de una tabla 118 de directrices, puede estar incluido en el PIBB 108. Típicamente, la tabla 118 de directrices contiene información que afecta a las operaciones de la plataforma durante el procedimiento de arranque.
Según se describe en el presente documento, uno de los DIR 114 es el DIR 120 de la tabla de directrices. El DIR 120 de la tabla de directrices (incluido en el TPM 112) contiene información puesta por el propietario de la plataforma, o por un agente autorizado, para validar el PIBB 108 y, por extensión, la tabla 118 de directrices. Así, se establece la confianza en el PIBB 108 y en el módulo 106, 106’ de directrices midiendo y comparando con un valor cargado de antemano puesto en el DIR 120 de la tabla de directrices por una entidad autorizada de confianza (es decir, el módulo 106, 106’ de directrices debe ser verificado). La tabla 118 de directrices contiene directrices a las que debe atenerse la plataforma 102 durante el procedimiento de inicialización/arranque.
La medición es la acción de obtener un valor que puede ser directamente asociado con la integridad de la entidad. Un ejemplo es calcular el valor de clave calculada de un gran flujo de bytes o, para valores pequeños, puede usarse directamente el propio valor. La verificación consiste en comparar el valor medido con un valor de confianza conocido. Así, tal como se define en el presente documento, “medir” significa reunir datos sobre un componente, introducir opcionalmente la información reunida en un registro (que puede estar en una ubicación sin confianza), crear opcionalmente una clave calculada de los valores de los datos y/o de los valores registrados, y almacenar los datos o los datos objeto de clave calculada en uno de los PCR 116. “Comparar mediciones” significa comparar valores en la tabla de directrices con los datos objeto de clave calculada o extendidos de un PCR 116 o del registro.
Tal como se ha hecho notar en lo que antecede, el módulo RTM 104 puede ser un PIBB 108 asociado con la plataforma 102, que incluye un punto 122 de entrada. Suponiendo que un procesador 124 dentro de la plataforma 102 esté acoplado con una línea 126 de reposición, el procesador 124 operará típicamente comenzando la ejecución en el punto 122 de entrada tras recibir una señal 128 de reposición por la línea 126 de reposición (es decir, una condición de reposición de la plataforma).
Un módulo 130 de comparación puede estar acoplado en comunicación y situado dentro del módulo RTM 104, con el módulo 106 de directrices de propiedades de seguridad de la plataforma y con diversas funciones internas 131 de medición. El módulo 130 de comparación puede operar evitando la transferencia de control al SO 110 y/o incluso impedir el resto del procedimiento de arranque si se viola una directriz D1-Dn incluida en el módulo 106 de directrices de propiedades de seguridad de la plataforma. Además, si, en cualquier momento durante la inicialización de la plataforma 102 un componente dentro de la plataforma 102 viola una directriz del módulo 106 de directrices de propiedades de seguridad de la plataforma, según la detección del módulo 130 de comparación, la plataforma 102 puede operar, por ejemplo, alertando al usuario de la plataforma (y/o posiblemente a otros dispositivos a través, por ejemplo, de una conexión de red) de que la plataforma 102 intentó inicializarse usando un componente inválido.
Así, el aparato 100 puede incluir un dispositivo 132 de alerto acoplado en comunicación con el procesador 124, posiblemente usando un módulo 134 del dispositivo de alerta. El dispositivo 132 de alerta puede ser accionado por el procesador 124 para proporcionar una señal 136 de alerta cuando se viola una directriz D1-Dn incluida en el módulo 106 de directrices de propiedades de seguridad de la plataforma. El dispositivo 132 de alerta puede ser un mecanismo de soporte físico usado para alertar al usuario de la plataforma que la plataforma no ha logrado completar la secuencia de arranque debido a la falta de conformidad de una o más directrices D1-Dn de seguridad definidas. La señal de alerta puede ser un simple tono audible o una secuencia de tonos, una luz o ráfagas de luz, pulsaciones táctiles, mensajería remota, etc. Además, pueden enviarse una alerta u otro mensaje 140, posiblemente usando el módulo 134 del dispositivo de alerta acoplado al módulo 130 de comparación, a otro dispositivo al otro lado de una red 142, normalmente por medio de una interfaz 144 de red. Después de accionar el dispositivo 132 de alerta, la plataforma 102 puede entrar en un estado que requiera una condición de reposición de la plataforma (por ejemplo, típicamente, una reposición del soporte físico, descrito en lo que antecede) para continuar.
El aparato 100 puede también tener una memoria 146 que incluya un MPIC 148 asociado con la plataforma 102. La memoria 146 puede estar acoplada en comunicación con la plataforma 102, y la plataforma 102 puede estar acoplada en comunicación con el módulo RTM 104.
Antes de transferir el control a la parte siguiente de la secuencia de inicialización de la plataforma, debe obtenerse autorización de la tabla 118 de directrices. La tabla 118 de directrices puede incluir valores no tratados de clave calculada, valores de PCR extendidos o identificadores de las credenciales de validación. Un identificador puede ser un puntero a una ubicación de memoria, un valor de índice o cualquier número único que pueda ser buscado.
Por último, antes de transferir el control de la plataforma 102 al cargador 150 del SO, el código 148 de inicialización de la plataforma principal compara la configuración global y la secuencia de carga de la plataforma 102 comprobando la tabla 118 de directrices para determinar que: existe un conjunto requerido de componentes contenido dentro de la plataforma 102, que la plataforma 102 no contiene componentes rechazados y/o que se ha cargado un conjunto de componentes en una secuencia particular. Así, la plataforma 102 puede incluir una memoria 152 u otro dispositivo de almacenamiento que incluyan la configuración 154 de la plataforma, así como una credencial 156 de aval de la plataforma y una credencial 158 de conformidad de la plataforma.
La TCPA también permite varios tipos de credenciales, incluyendo una credencial de aval, una credencial de plataforma y una credencial de validación. La credencial de aval proporciona seguridad de que la plataforma contiene un TPM válido. La credencial de plataforma proporciona seguridad de que el TPM está debidamente ligado a la plataforma. Y la credencial de validación proporciona seguridad de que un dispositivo o un código de 4
inicialización de dispositivos son del fabricante nombrado en la credencial. El módulo 106 de directrices de propiedades de seguridad de la plataforma (y/o la tabla 118 de directrices) puede también incluir una credencial de aval, una credencial de conformidad de la plataforma, validaciones de estas (por ejemplo, una clave calculada de las credenciales) si son externas al módulo 106 de directrices de propiedades de seguridad de la plataforma y/o un conjunto obligatorio de componentes en secuencia.
La plataforma 102 también puede incluir una memoria 160 u otro dispositivo de almacenamiento que incluya una o más configuraciones 162 de dispositivo asociadas con uno o más dispositivos DISP1-DISPn y sus dispositivoscódigos 164 de inicialización de dispositivos CÓDIGO1-CÓDIGOn. Las memorias 111, 152 y 160 pueden ser contiguas y estar contenidas dentro de una sola memoria mayor 166, o las memorias 111, 152, 160 pueden existir como parte de componentes o dispositivos físicamente separados de la plataforma 102.
La FIG. 2 es un diagrama de bloques de un módulo 206 de directrices según una realización de la invención. Tal como se ha hecho notar en lo que antecede, la tabla 218 de directrices incluida en el módulo 206 de directrices puede ser usada para definir las propiedades de seguridad de la plataforma usando una o más directrices contenidas en la misma. Típicamente, la tabla 218 de directrices reside dentro del PIBB. Alternativamente, la tabla 218 de directrices puede residir fuera del PIBB (véase la ubicación del módulo 106’ en la FIG. 1), pero su valor medido debe estar incluido con el del PIBB cuando se compara con el DIR de la tabla de directrices.
La tabla 218 de directrices puede incluir varias entradas, típicamente agrupadas en secciones 267 de directrices que definen las propiedades de seguridad de la plataforma, tales como: directrices 268 del código de inicialización de la plataforma, directrices 270 de configuración de la plataforma, directrices 272 de código de inicialización de dispositivos, directrices 274 de configuración de dispositivos opcionales o integrados, directrices 276 del cargador del SO, directrices 278 de configuración del cargador del SO y otras reglas y definiciones relacionadas con la seguridad. Cada una de las secciones 267 puede también incluir ninguno, algunos o todos los siguientes: valores 280 no tratados de directrices de clave calculada, valores extendidos 282 de directrices, identificadores 284 de credenciales de validación, valores que identifiquen la credencial 286 de aval de la plataforma, valores que identifiquen la credencial 288 de conformidad de la plataforma y/o valores que identifiquen las credenciales 290 de validación.
Típicamente, cada entrada incluye una bandera que indica la directriz requerida para esa sección. Por ejemplo, la sección puede contener solo valores no tratados de clave calculada que han de ser usados para verificar una directriz o puede contener solo identificador de las credenciales de validación que indique que para esa sección particular solo se permiten los componentes que tienen credenciales de validación.
La verificación de que un elemento/módulo del componente o la plataforma satisface las directrices definidas ocurre comparando mediciones del elemento/módulo con la debida entrada de la tabla de directrices. Puede haber múltiples entradas pertenecientes a un solo componente o módulo en la tabla 218 de directrices. Puede requerirse que ninguna, algunas o todas las entradas coincidan para que ese componente o módulo satisfaga una directriz definida. Por ejemplo, una directriz 274 para un componente requerido 292 puede incluir la comprobación del valor 280 no tratado de clave calculada, la comprobación de los valores extendidos 282 de clave calculada, la validación de al menos una de las credenciales 290 del componente y luego la comparación del valor 280 no tratado de clave calculada con los valores especificados dentro de la credencial 290. Si un componente 292 no logra satisfacer la directriz asociada 274, la entidad que comprobó el componente 292 puede transferir el control de la plataforma al módulo del dispositivo de alerta.
Con referencia de nuevo a la FIG. 1, es ahora fácil entender que una plataforma 102 puede incluir uno o más de los siguientes componentes: un procesador 124, código 194 de inicialización de la plataforma (dotado de un PIBB 108 y de un código 148 de inicialización de la plataforma principal) y diversos dispositivos, tales como dispositivos integrados y/u opcionales DISP1-DISPn dentro de la plataforma 102, que pueden contener sus propios códigosrespectivos CÓDIGO1-CÓDIGOn de inicialización del dispositivo. Típicamente, la plataforma 102 también incluye un dispositivo que incluye o tiene la capacidad de acceder al cargador 150 del SO y un dispositivo que incluye o tiene la capacidad de acceder al SO 110.
Así, en otra realización de la invención, un sistema 196 puede incluir un procesador 124 acoplado con una memoria
198. La memoria 198 puede incluir un módulo RTM 104, un módulo 106 de directrices de propiedades de seguridad de la plataforma (capaz de estar acoplado en comunicación con la memoria 198) y un módulo 130 de comparación (capaz de estar acoplado en comunicación con la memoria 198). Así, la memoria 198 puede incluir un bloque de arranque de inicialización, tal como un PIBB 108. Típicamente, el módulo 130 de comparación opera impidiendo la transferencia del control al sistema operativo 110 o a otros componentes previos al SO (por ejemplo, deteniendo por completo el procedimiento de arranque) cuando se viola una directriz incluida en el módulo 106 de directrices de propiedades de seguridad de la plataforma. Esto puede ocurrir, por ejemplo, cuando falla la medición y la comparación (es decir, la verificación) el módulo 106 de directrices de seguridad de la plataforma con el valor en el DIR 120 de la tabla de directrices incluido en el TPM 112. En esta realización, el módulo 130 de comparación debería ser verificado antes de que haya confianza en él para efectuar comparaciones válidas.
Con referencia aún a la FIG. 1, el sistema 196 también puede incluir una línea 126 de reposición acoplada al procesador 124 en la que el procesador 124 ejecuta un punto 122 de entrada incluido en el RTM 104 cuando se aplica una señal 128 de reposición a la línea 126 de reposición para iniciar una condición de reposición de la plataforma. Por último, debería hacerse notar que el sistema 196 puede también incluir un dispositivo 132 de alerta acoplado en comunicación con el procesador 124, en el que el dispositivo 132 de alerta puede ser accionado por el procesador 124 para proporcionar una señal de alerta cuando se viola una directriz incluida en el módulo 106 de directrices de propiedades de seguridad de la plataforma verificada.
Con referencia ahora tanto a la FIG. 1 como a la 2, el aparato 100; el módulo RTM 104; los módulos 106, 106’, 206 de directrices de propiedades de seguridad de la plataforma (incluyendo cada uno de los diversos elementos dentro de los mismos); el PIBB 108; los DIR 114; los PCR 116; las tablas 118, 218 de directrices; el procesador 124; el módulo 130 de comparación; las funciones internas 131 de medición; el dispositivo 132 de alerta; el módulo 134 del dispositivo de alerta; la interfaz 144 de red; y las memorias 111, 146, 152, 160, 166, 198 pueden ser caracterizados en el presente documento como “módulos”. Tales módulos pueden incluir circuitería de soporte físico y/o un microprocesador y/o circuitos de memoria, módulos de programas de soporte lógico y/o soporte lógico inalterable y combinaciones de los mismos, según desee el arquitecto del aparato 100 y del sistema 196, y apropiados para realizaciones particulares de la invención.
Las aplicaciones que pueden incluir el aparato y el sistema novedosos de la presente invención incluyen circuitería electrónica usada en ordenadores de alta velocidad, circuitería de procesamiento de comunicaciones y señales, módems, módulos de procesador, procesadores integrados y módulos específicos de aplicación, incluyendo módulos multicapa y de chips múltiples. Tales aparatos y sistemas pueden, además, estar incluidos como subcomponentes dentro de una variedad de sistemas electrónicos, tales como televisores, teléfonos celulares, ordenadores personales, radios, vehículos y otros.
Las FIGURAS 3A y 3B son diagramas de flujo que ilustran un procedimiento de verificación de la confianza en una plataforma según una realización de la invención. El procedimiento 313 puede empezar en la FIG. 3A en el bloque 315 cuando un procesador u otro módulo dentro de la plataforma detecta una condición de reposición de la plataforma. El procesador puede entonces comenzar la ejecución del código del punto de entrada en el bloque 317.
El PIBB contiene su propio código para llevar a cabo mediciones (es decir, las funciones internas de medición) porque todos los demás componentes carecen de confianza en este momento. El PIBB, usando el código interno, se mide a sí mismo en el bloque 319 y verifica que satisface la directriz según el DIR de la tabla de directrices dentro del TPM en los bloques 321 y 323. Si la medición no satisface la directriz, típicamente el control se pasa entonces al módulo del dispositivo de alerta y/o al dispositivo de alerta, y el usuario de la plataforma es alertado en el bloque
325. Opcionalmente, el TPM puede ser inhabilitado para que la plataforma se comporte como una plataforma sin confianza, pero se permite que el procedimiento de arranque continúe. Si la medición satisface la directriz, entonces se puede tener confianza en la tabla de directrices, y el procedimiento 313 puede continuar con el bloque 327.
Diversas realizaciones de la invención dada a conocer en el presente documento implican el uso del PIBB para medir el código de inicialización de la plataforma principal en el bloque 327, y verifican que satisface la directriz en el bloque 329. Con referencia aún al bloque 327, si hay extensiones al código de inicialización de la plataforma principal, el PIBB también mide las extensiones y verifica que satisfacen la directriz. Si los resultados de la medición no satisfacen la directriz en el bloque 329, típicamente el control se pasa entonces al módulo del dispositivo de alerta y/o al dispositivo de alerta, y el usuario de la plataforma es alertado en el bloque 325.
Si la plataforma contiene una o varias credenciales de plataforma, conformidad o aval, son verificadas con las entradas respectivas dentro de la tabla de directrices en el bloque 333. Si las credenciales no se verifican, la plataforma no satisface la directriz. Si la medición no satisface la directriz en el bloque 335, el control es típicamente pasado entonces al módulo del dispositivo de alerta y/o al dispositivo de alerta, y el usuario de la plataforma es alertado en el bloque 325.
El código de inicialización de la plataforma principal puede ser usado para examinar la plataforma en busca de dispositivos opcionales o integrados y sus códigos de inicialización del dispositivo. Sin embargo, antes de transferir el control del código de inicialización de la plataforma principal a cualquier código de inicialización de dispositivos, el código de inicialización de la plataforma principal debería verificar que el dispositivo y su código de inicialización del dispositivo satisfacen la directriz en los bloques 337 y 339. Si la medición no satisface la directriz en el bloque 339, el control es típicamente pasado entonces al módulo del dispositivo de alerta y/o al dispositivo de alerta, y el usuario de la plataforma es alertado en el bloque 325.
Los códigos de inicialización de dispositivos pueden validar la configuración de sus dispositivos asociados. En este caso, el control puede ser transferido al código de inicialización de dispositivo en el bloque 341. Para cada dispositivo, si hay una entrada en la tabla de directrices relacionada con un dispositivo seleccionado, el código de inicialización del dispositivo asociado con ese dispositivo puede verificar que la configuración del dispositivo asociado satisface la directriz en el bloque 343, incluyendo cualquier componente oculto del dispositivo asociado. Si la medición no satisface la directriz en el bloque 345, el control es típicamente pasado entonces al módulo del dispositivo de alerta y/o al dispositivo de alerta, y el usuario de la plataforma es alertado en el bloque 325. Si se 6
determina en el bloque 347 que existen que otra entrada de la tabla de directrices y un código de inicialización del dispositivo asociado, el código puede ser medido entonces en el bloque 337 y los procedimientos esquematizados por los bloques 339, 341, 343, 345 y 347 pueden ser repetidos cualquier número de veces.
Después de que todos los códigos de inicialización de dispositivos han sido ejecutados y de que todos los dispositivos han sido inicializados, el procedimiento 313 puede continuar en la FIG. 3B en el bloque 349, en el que puede usarse el código de inicialización de la plataforma principal para reunir información relativa a la configuración de la plataforma y a verificar que satisface la directriz en el bloque 351. Si la medición no satisface la directriz en el bloque 351, el control es típicamente pasado entonces al módulo del dispositivo de alerta y/o al dispositivo de alerta, y el usuario de la plataforma es alertado en el bloque 325.
Tras la conclusión de todas las funciones del código de inicialización de la plataforma principal, el código de inicialización de la plataforma principal puede localizar el cargador del SO y verificar que el cargador del SO satisface la directriz en los bloques 353 y 355. Si la medición no satisface la directriz en el bloque 355, el control es típicamente pasado entonces al módulo del dispositivo de alerta y/o al dispositivo de alerta, y el usuario de la plataforma es alertado en el bloque 325.
Antes de transferir el control al cargador del SO, el código de inicialización de la plataforma principal puede verificar la tabla de directrices en busca de conjuntos requeridos, rechazados y/u obligatorios de componentes en secuencia en el bloque 357. La directriz puede requerir la presencia de componentes particulares; puede rechazar componentes particulares; o puede requerir una secuencia particular de componentes. Si no se satisface alguna de las condiciones requeridas, la plataforma no satisface la directriz en el bloque 359 y el control es típicamente pasado entonces al módulo del dispositivo de alerta y/o al dispositivo de alerta, y el usuario de la plataforma es alertado en el bloque 325.
Si la directriz es satisfecha en el bloque 359, el control es transferido al cargador del SO en el bloque 361. Si el cargador del SO permite opciones, el cargador del SO puede operar verificando que esas opciones satisfacen la directriz en los bloques 363 y 365. Si la medición no satisface la directriz en el bloque 365, el control es típicamente pasado entonces al módulo del dispositivo de alerta y/o al dispositivo de alerta, y el usuario de la plataforma es alertado en el bloque 325. Si la directriz es satisfecha en el bloque 365, entonces se permite que el cargador del SO cargue el SO y el control de la plataforma es transferido al SO en el bloque 369. En este punto finaliza el procedimiento 313.
En resumen, el procedimiento 313 puede incluir la detección de una condición de reposición de la plataforma, el comienzo de la ejecución en un punto de entrada dentro de una raíz de confianza para la medición (RTM), y la determinación de que el RTM es digno de confianza, lo que puede incluir determinar que un módulo de directrices de propiedades de seguridad de la plataforma asociado con el RTM es digno de confianza. Determinar que el módulo de directrices de propiedades de seguridad de la plataforma asociado con el RTM es digno de confianza puede incluir la medición de una tabla de directrices y la comparación de las mediciones con uno o más valores incluidos en un DIR (incluido en un TPM).
El procedimiento puede continuar con la determinación de que un código de inicialización principal asociado con una plataforma es digno de confianza, y con la transferencia del control al código de inicialización principal. Si no, el procedimiento puede operar determinando que un código de inicialización principal asociado con una plataforma no es digno de confianza, y puede abstenerse de transferir el control al código de inicialización principal. Además, el procedimiento puede operar absteniéndose de carga un sistema operativo asociado con la plataforma si se viola una directriz asociada con el RTM.
El procedimiento puede también incluir la determinación de que la configuración de una plataforma no viola una directriz asociada con el RTM, la determinación de que un dispositivo no viola una directriz asociada con el RTM, la determinación de que un código de inicialización de dispositivos asociado con el dispositivo no viola una directriz asociada con el RTM y la transferencia del control al código de inicialización del dispositivo.
El procedimiento puede incluir también la determinación de que un cargado de sistema operativo asociado con la plataforma no viole una directriz asociada con el RTM, la determinación de que está presente un grupo seleccionado de componentes y la transferencia del control a un cargador de sistema operativo asociado con la plataforma. El procedimiento también puede incluir la determinación de que no está presente un grupo seleccionado de componentes rechazados y la transferencia del control a un cargador de sistema operativo asociado con la plataforma.
Así, con referencia de nuevo a la FIG. 1, se entiende ahora fácilmente que otra realización de la invención puede incluir un artículo 199, tal como un ordenador, un sistema de memoria, un disco magnético u óptico, algún otro dispositivo de almacenamiento y/o cualquier tipo de dispositivo o de sistema electrónicos, que comprenda un medio 194 accesible por máquina (por ejemplo, una memoria que incluya un conductor eléctrico, óptico o electromagnético) que tenga datos asociados 108 (por ejemplo, instrucciones de programa de ordenador) que, cuando sean objeto de acceso, den como resultado que una máquina lleve a cabo acciones tales que comiencen la ejecución en un punto de entrada dentro de una raíz de confianza para la medición (RTM), determinando que un código de inicialización
principal asociado con una plataforma es digno de confianza y transfiriendo el control al código de inicialización principal y, si no, determinando que un código de inicialización principal asociado con una plataforma no es digno de confianza y absteniéndose de transferir el control al código de inicialización principal.
Otras acciones pueden incluir determinar que la configuración de una plataforma no viola una directriz asociada con
5 el RTM, determinar que un cargador de sistema operativo asociado con la plataforma no viola una directriz asociada con el RTM, determinar que un grupo seleccionado de componentes está presente, y transferir el control a un cargador de sistema operativo asociado con la plataforma. De forma similar, determinar que no está presente un grupo seleccionado de componentes rechazados y transferir el control a un cargador de sistema operativo asociado con la plataforma también puede estar incluido dentro del alcance de tales actividades.

Claims (8)

  1. REIVINDICACIONES
    1. Un aparato que comprende:
    una plataforma (102) de cálculo que incluye:
    una raíz de confianza para un módulo (104) de medición que comprende un bloque (108) de arranque
    5 de inicialización de la plataforma; un procesador (124) para ejecutar instrucciones, incluido el código de inicialización de la plataforma, que incluye el bloque (108) de arranque de inicialización de la plataforma que comienza en un punto (122) de entrada dentro de la raíz de confianza para el módulo de medición y un código (148) de inicialización de la plataforma principal, ejecutando dicho bloque de arranque de inicialización de la plataforma código
    10 para habilitar dispositivos en la plataforma necesarios para que se ejecute el código de inicialización de la plataforma principal; y llevando a cabo dicho código de inicialización de la plataforma principal funciones necesarias para completar la inicialización de la plataforma de cálculo; un cargador (150) de sistema operativo; un módulo (112) de plataforma de confianza que incluye valores cargados de antemano almacenados
    15 en un emplazamiento (120) de almacenamiento blindado, estando relacionados dichos valores cargados de antemano con la integridad de la plataforma de cálculo; un módulo (106) de directrices de propiedades de seguridad de la plataforma que incluye una tabla
    (118) de directrices que contiene información de directrices (D1 - Dn) que definen propiedades de
    seguridad de la plataforma a las que hay que atenerse durante la inicialización de la plataforma; 20 un módulo (130) de comparación acoplado en comunicación con la raíz de confianza para el módulo
    (104) de medición; y en la que dicho bloque de arranque de inicialización de la plataforma y dicho módulo de directrices de propiedades de seguridad de la plataforma son para determinar si son dignos de confianza mediante la medición y la comparación con uno de dichos valores cargados de antemano de dicho módulo de
    25 plataforma de confianza usando código interno a dicho bloque de arranque de inicialización de la plataforma, en la que la medición es la acción de obtener un valor que pueda ser directamente asociado con la integridad de una entidad, y en la que el módulo de comparación verifica acto seguido que el valor medido coincide con uno de dichos valores cargados de antemano del módulo (112) de programa de confianza y, si no, impide el resto del procedimiento de arranque, permitiendo, de lo contrario, que la
    30 ejecución continúe con el bloque de arranque de inicialización de la plataforma para medir y verificar si la información de las directrices relativa al código de inicialización de la plataforma principal satisface una correspondiente directriz localizada en el módulo de plataforma de confianza y, si no, abstenerse de transferir el control a dicho código de inicialización principal, y, en caso afirmativo, permitir la ejecución del código de
    35 inicialización de la plataforma principal para medir y verificar si dispositivos adicionales (DISP1 a DISPn) acoplados a la plataforma satisfacen la información de las directrices y, en caso afirmativo, permitir la ejecución del código de inicialización de la plataforma principal y verificar si el cargador del sistema operativo satisface la información de las directrices y, en caso afirmativo, permitir que el procesador cargue un sistema operativo (110) y, si no, abstenerse de cargar un sistema operativo; y en la que el
    40 sistema operativo, si se carga, ha de ser ejecutado por el procesador.
  2. 2.
    El aparato de la reivindicación 1 en el que el bloque de arranque de inicialización incluye un punto de entrada capaz de ser ejecutado por el procesador tras la recepción de una señal (128) de reposición en una línea (126) de reposición acoplada al procesador para iniciar una condición de reposición de la plataforma.
  3. 3.
    El aparato de la reivindicación 1 que, además, comprende:
    45 punteros a credenciales (156, 158) de la plataforma incluidas en la tabla (118) de directrices.
  4. 4.
    El aparato de la reivindicación 1 en el que la información de las directrices define un conjunto obligatorio de componentes en secuencia incluidos en la plataforma.
  5. 5.
    El aparato de cualquier reivindicación precedente que, además, comprende:
    un dispositivo (132) de alerta operable para proporcionar una señal (136) de alerta cuando se viola la 50 información de las directrices incluida en la tabla de directrices.
  6. 6. Un procedimiento en un aparato que comprende una plataforma (102) de cálculo que incluye un procesador (124), un cargador (150) de sistema operativo, un módulo (112) de plataforma de confianza que incluye valores cargados de antemano almacenados en un emplazamiento (120) de almacenamiento blindado, estando relacionados dichos valores cargados de antemano con la integridad de la plataforma de cálculo, una raíz de
    55 confianza para un módulo (104) de medición que comprende un bloque (108) de arranque de inicialización de la plataforma, un módulo (106) de directrices de propiedades de seguridad de la plataforma que incluye una tabla (118) de directrices que contiene información de directrices (D1 - Dn) que definen propiedades de
    seguridad de la plataforma a las que hay que atenerse durante la inicialización de la plataforma, un módulo
    (130) de comparación acoplado en comunicación con la raíz de confianza para el módulo (104) de medición, comprendiendo el procedimiento las etapas de que dicho procesador (124) ejecute instrucciones, incluido el código de inicialización de la plataforma, que tiene
    5 dicho bloque (108) de arranque de inicialización de la plataforma y un código (148) de inicialización de la plataforma principal, comenzando dicha ejecución en un punto (122) de entrada dentro de dicha raíz de confianza para el módulo de medición, ejecutando dicho bloque de arranque de inicialización de la plataforma código para habilitar dispositivos en la plataforma necesarios para que se ejecute el código de inicialización de la plataforma principal, y llevando a cabo dicho código de inicialización de la plataforma principal funciones
    10 necesarias para completar la inicialización de la plataforma de cálculo, determinando si dicho bloque de arranque de inicialización de la plataforma y dicho módulo de directrices de propiedades de seguridad de la plataforma son dignos de confianza mediante la medición y la comparación con uno de dichos valores cargados de antemano de dicho módulo de plataforma de confianza usando código interno a dicho bloque de arranque de inicialización de la plataforma, mediante lo cual son verificados dicho
    15 bloque de arranque de inicialización de la plataforma y dicho módulo de directrices de propiedades de seguridad de la plataforma, en el que la medición es la acción de obtener un valor que pueda ser directamente asociado con la integridad de una entidad y, si dicho bloque de arranque de inicialización de la plataforma y dicho módulo de directrices de propiedades de seguridad de la plataforma no son verificados, se detenga la ejecución y, en caso contrario,
    20 medir y verificar, usando dicho bloque de arranque de inicialización de la plataforma, si la información de las directrices relativa al código de inicialización de la plataforma principal satisface una correspondiente directriz localizada en el módulo de plataforma de confianza y, si no, impedir el resto del procedimiento de arranque y, en caso afirmativo, permitir la ejecución del código de inicialización de la plataforma principal para medir y verificar si dispositivos adicionales (DISP1 a DISPn) acoplados a la plataforma satisfacen la información de las
    25 directrices y, en caso afirmativo, permitir la ejecución del código de inicialización de la plataforma principal para medir y verificar si el cargador del sistema operativo satisface la información de las directrices y, en caso afirmativo, permitir que el procesador cargue un sistema operativo (110) y, si no, abstenerse de cargar un sistema operativo; y en el que el sistema operativo, si se carga, ha de ser ejecutado por el procesador.
  7. 7. El procedimiento de la reivindicación 6 que, además, comprende:
    30 detectar una condición de reposición de la plataforma.
  8. 8. Un artículo que comprende un medio accesible por máquina que tiene datos asociados en el que los datos, cuando son objeto de acceso, dan como resultado que una máquina lleve a cabo un procedimiento según cualquiera de las reivindicaciones 6 y 7.
ES03742347T 2002-06-28 2003-06-27 Plataforma informática de confianza Expired - Lifetime ES2381355T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/185,391 US7216369B2 (en) 2002-06-28 2002-06-28 Trusted platform apparatus, system, and method
US185391 2002-06-28
PCT/US2003/020620 WO2004003824A1 (en) 2002-06-28 2003-06-27 Trusted computer platform

Publications (1)

Publication Number Publication Date
ES2381355T3 true ES2381355T3 (es) 2012-05-25

Family

ID=29779616

Family Applications (1)

Application Number Title Priority Date Filing Date
ES03742347T Expired - Lifetime ES2381355T3 (es) 2002-06-28 2003-06-27 Plataforma informática de confianza

Country Status (7)

Country Link
US (1) US7216369B2 (es)
EP (1) EP1518158B1 (es)
CN (1) CN100388150C (es)
AT (1) ATE550728T1 (es)
AU (1) AU2003280494A1 (es)
ES (1) ES2381355T3 (es)
WO (1) WO2004003824A1 (es)

Families Citing this family (114)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7103574B1 (en) * 1999-03-27 2006-09-05 Microsoft Corporation Enforcement architecture and method for digital rights management
GB2376763B (en) * 2001-06-19 2004-12-15 Hewlett Packard Co Demonstrating integrity of a compartment of a compartmented operating system
US7350228B2 (en) * 2001-01-23 2008-03-25 Portauthority Technologies Inc. Method for securing digital content
US7380130B2 (en) * 2001-12-04 2008-05-27 Microsoft Corporation Methods and systems for authentication of components in a graphics system
US7694139B2 (en) * 2002-10-24 2010-04-06 Symantec Corporation Securing executable content using a trusted computing platform
US8881270B2 (en) 2002-12-20 2014-11-04 Creative Mines Llc Method and apparatus for selectively enabling a microprocessor-based system
US8041933B2 (en) * 2002-12-20 2011-10-18 The Invention Science Fund I Method and apparatus for selectively enabling a microprocessor-based system
US7210034B2 (en) * 2003-01-30 2007-04-24 Intel Corporation Distributed control of integrity measurement using a trusted fixed token
US7370212B2 (en) * 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
GB2403820A (en) * 2003-03-28 2005-01-12 Hewlett Packard Development Co Security policy in trusted computing systems
GB2399902A (en) * 2003-03-28 2004-09-29 Hewlett Packard Development Co Security in trusted computing systems
US7366305B2 (en) * 2003-09-30 2008-04-29 Intel Corporation Platform and method for establishing trust without revealing identity
JP4064914B2 (ja) * 2003-12-02 2008-03-19 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、サーバ装置、情報処理装置のための方法、サーバ装置のための方法および装置実行可能なプログラム
US8037314B2 (en) 2003-12-22 2011-10-11 Intel Corporation Replacing blinded authentication authority
US7587607B2 (en) * 2003-12-22 2009-09-08 Intel Corporation Attesting to platform configuration
US7421588B2 (en) * 2003-12-30 2008-09-02 Lenovo Pte Ltd Apparatus, system, and method for sealing a data repository to a trusted computing platform
US7330977B2 (en) * 2003-12-30 2008-02-12 Lenovo Pte Ltd Apparatus, system, and method for secure mass storage backup
US7526649B2 (en) * 2003-12-30 2009-04-28 Intel Corporation Session key exchange
US7574600B2 (en) * 2004-03-24 2009-08-11 Intel Corporation System and method for combining user and platform authentication in negotiated channel security protocols
US7484091B2 (en) * 2004-04-29 2009-01-27 International Business Machines Corporation Method and system for providing a trusted platform module in a hypervisor environment
US7664965B2 (en) * 2004-04-29 2010-02-16 International Business Machines Corporation Method and system for bootstrapping a trusted server having redundant trusted platform modules
US20060242406A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation Protected computing environment
US7546447B2 (en) * 2004-05-08 2009-06-09 Intel Corporation Firmware interface runtime environment protection field
GB0411654D0 (en) * 2004-05-25 2004-06-30 Hewlett Packard Development Co A generic trusted platform architecture
US8006100B2 (en) * 2004-06-10 2011-08-23 Oracle America, Inc. Enhancing trusted platform module performance
US8429423B1 (en) 2004-06-10 2013-04-23 Oracle America, Inc. Trusted platform modules
US20050283601A1 (en) * 2004-06-22 2005-12-22 Sun Microsystems, Inc. Systems and methods for securing a computer boot
US7568225B2 (en) 2004-09-08 2009-07-28 Hewlett-Packard Development Company, L.P. System and method for remote security enablement
US7711942B2 (en) * 2004-09-23 2010-05-04 Hewlett-Packard Development Company, L.P. Computer security system and method
US8347078B2 (en) * 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
US20060089917A1 (en) * 2004-10-22 2006-04-27 Microsoft Corporation License synchronization
US20060090085A1 (en) * 2004-10-23 2006-04-27 Mckenney Paul E Method and apparatus for improving computer security
US8176564B2 (en) * 2004-11-15 2012-05-08 Microsoft Corporation Special PC mode entered upon detection of undesired state
US8336085B2 (en) * 2004-11-15 2012-12-18 Microsoft Corporation Tuning product policy using observed evidence of customer behavior
US8464348B2 (en) * 2004-11-15 2013-06-11 Microsoft Corporation Isolated computing environment anchored into CPU and motherboard
US20060106920A1 (en) * 2004-11-15 2006-05-18 Microsoft Corporation Method and apparatus for dynamically activating/deactivating an operating system
US10204338B2 (en) * 2004-11-24 2019-02-12 Microsoft Technology Licensing, Llc Synchronizing contents of removable storage devices with a multimedia network
US7725703B2 (en) * 2005-01-07 2010-05-25 Microsoft Corporation Systems and methods for securely booting a computer with a trusted processing module
US7565553B2 (en) * 2005-01-14 2009-07-21 Microsoft Corporation Systems and methods for controlling access to data on a computer with a secure boot process
GB2424494A (en) * 2005-03-22 2006-09-27 Hewlett Packard Development Co Methods, devices and data structures for trusted data
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
US8725646B2 (en) * 2005-04-15 2014-05-13 Microsoft Corporation Output protection levels
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US9436804B2 (en) * 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
US8972743B2 (en) * 2005-05-16 2015-03-03 Hewlett-Packard Development Company, L.P. Computer security system and method
US20060265758A1 (en) * 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
US7396257B2 (en) * 2005-05-26 2008-07-08 Itt Manufacturing Enterprises, Inc. Computer input/output (I/O) connector assembly having a security circuit disposed therein
US8353046B2 (en) * 2005-06-08 2013-01-08 Microsoft Corporation System and method for delivery of a modular operating system
US7603707B2 (en) * 2005-06-30 2009-10-13 Intel Corporation Tamper-aware virtual TPM
US20070061535A1 (en) * 2005-09-12 2007-03-15 Microsoft Corporation Processing unit enclosed operating system
US8201240B2 (en) 2005-09-16 2012-06-12 Nokia Corporation Simple scalable and configurable secure boot for trusted mobile phones
US9268971B2 (en) * 2005-09-21 2016-02-23 Broadcom Corporation Secure processor supporting multiple security functions
US20070192580A1 (en) * 2006-02-10 2007-08-16 Challener David C Secure remote management of a TPM
US7581141B2 (en) * 2006-03-01 2009-08-25 Sun Microsystems, Inc. Kernel module compatibility validation
GB2440170B8 (en) 2006-07-14 2014-07-16 Vodafone Plc Digital rights management
US20080077592A1 (en) * 2006-09-27 2008-03-27 Shane Brodie method and apparatus for device authentication
US9135444B2 (en) * 2006-10-19 2015-09-15 Novell, Inc. Trusted platform module (TPM) assisted data center management
JP4288292B2 (ja) * 2006-10-31 2009-07-01 株式会社エヌ・ティ・ティ・ドコモ オペレーティングシステム監視設定情報生成装置及びオペレーティングシステム監視装置
US8117429B2 (en) * 2006-11-01 2012-02-14 Nokia Corporation System and method for a distributed and flexible configuration of a TCG TPM-based local verifier
GB0623101D0 (en) * 2006-11-20 2006-12-27 British Telecomm Secure network architecture
US20080178257A1 (en) * 2007-01-20 2008-07-24 Takuya Mishina Method for integrity metrics management
US20080184026A1 (en) * 2007-01-29 2008-07-31 Hall Martin H Metered Personal Computer Lifecycle
US20080235754A1 (en) * 2007-03-19 2008-09-25 Wiseman Willard M Methods and apparatus for enforcing launch policies in processing systems
US8291495B1 (en) 2007-08-08 2012-10-16 Juniper Networks, Inc. Identifying applications for intrusion detection systems
MY145949A (en) * 2007-09-20 2012-05-31 Mimos Berhad Trusted computer platform method and system without trust credential
WO2009044533A1 (ja) * 2007-10-05 2009-04-09 Panasonic Corporation セキュアブート端末、セキュアブート方法、セキュアブートプログラム、記録媒体及び集積回路
US7921286B2 (en) * 2007-11-14 2011-04-05 Microsoft Corporation Computer initialization for secure kernel
US8677108B2 (en) * 2008-01-30 2014-03-18 Panasonic Corporation Method for finding next component to be booted based on booting status of current component to continue booting process by using a component look-up table
US8661234B2 (en) * 2008-01-31 2014-02-25 Microsoft Corporation Individualized per device initialization of computing devices in avoidance of mass exploitation of vulnerabilities
US20100325625A1 (en) * 2008-02-13 2010-12-23 Osvaldo Diaz Managing electronic devices with different types of device location limited device management clients
WO2009102354A1 (en) * 2008-02-13 2009-08-20 Hewlett-Packard Development Company, L.P. Managing electronic devices using an electronic device as a root of trust
WO2009118801A1 (ja) * 2008-03-28 2009-10-01 パナソニック株式会社 ソフトウェア更新装置、ソフトウェア更新システム、無効化方法、及び無効化プログラム
JP2009278015A (ja) * 2008-05-16 2009-11-26 Nec Corp 平面光波回路及びこれを備えた波長可変レーザ装置
US8103909B2 (en) * 2008-09-15 2012-01-24 Juniper Networks, Inc. Automatic hardware-based recovery of a compromised computer
US8923520B2 (en) 2009-02-06 2014-12-30 Dell Products L.P. System and method for recovery key management
WO2011001685A1 (en) * 2009-07-01 2011-01-06 Panasonic Corporation Secure boot method and secure boot apparatus
US8990584B2 (en) 2010-05-28 2015-03-24 Dell Products, Lp System and method for supporting task oriented devices in a client hosted virtualization system
US8938774B2 (en) * 2010-05-28 2015-01-20 Dell Products, Lp System and method for I/O port assignment and security policy application in a client hosted virtualization system
US8458490B2 (en) 2010-05-28 2013-06-04 Dell Products, Lp System and method for supporting full volume encryption devices in a client hosted virtualization system
US8996851B2 (en) 2010-08-10 2015-03-31 Sandisk Il Ltd. Host device and method for securely booting the host device with operating system code loaded from a storage device
US9208318B2 (en) * 2010-08-20 2015-12-08 Fujitsu Limited Method and system for device integrity authentication
US9087196B2 (en) 2010-12-24 2015-07-21 Intel Corporation Secure application attestation using dynamic measurement kernels
US20120179904A1 (en) * 2011-01-11 2012-07-12 Safenet, Inc. Remote Pre-Boot Authentication
US9256745B2 (en) 2011-03-01 2016-02-09 Microsoft Technology Licensing, Llc Protecting operating system configuration values using a policy identifying operating system configuration settings
US8782389B2 (en) 2011-07-19 2014-07-15 Sandisk Technologies Inc. Storage device and method for updating a shadow master boot record
US8973158B2 (en) 2011-07-20 2015-03-03 Microsoft Technology Licensing Llc Trust level activation
US8924737B2 (en) * 2011-08-25 2014-12-30 Microsoft Corporation Digital signing authority dependent platform secret
JP5779281B2 (ja) * 2011-09-30 2015-09-16 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. コンピュータシステムにおける仮想化装置の制御
US8775784B2 (en) 2011-11-11 2014-07-08 International Business Machines Corporation Secure boot up of a computer based on a hardware based root of trust
US8949954B2 (en) 2011-12-08 2015-02-03 Uniloc Luxembourg, S.A. Customer notification program alerting customer-specified network address of unauthorized access attempts to customer account
AU2012100460B4 (en) 2012-01-04 2012-11-08 Uniloc Usa, Inc. Method and system implementing zone-restricted behavior of a computing device
AU2012100462B4 (en) 2012-02-06 2012-11-08 Uniloc Usa, Inc. Near field authentication through communication of enclosed content sound waves
US8938796B2 (en) 2012-09-20 2015-01-20 Paul Case, SR. Case secure computer architecture
US9152793B2 (en) * 2012-09-28 2015-10-06 Intel Corporation Methods, systems and apparatus to self authorize platform code
AU2013100355B4 (en) 2013-02-28 2013-10-31 Netauthority, Inc Device-specific content delivery
US9230081B2 (en) 2013-03-05 2016-01-05 Intel Corporation User authorization and presence detection in isolation from interference from and control by host central processing unit and operating system
AU2013100883B4 (en) * 2013-04-25 2014-02-20 Uniloc Luxembourg S.A. Detection of device tampering
EP3014507B1 (en) 2013-06-27 2018-04-04 Intel Corporation Continuous multi-factor authentication
US9239918B2 (en) 2013-10-02 2016-01-19 Andes Technology Corporation Method and apparatus for software-hardware authentication of electronic apparatus
US9830456B2 (en) * 2013-10-21 2017-11-28 Cisco Technology, Inc. Trust transference from a trusted processor to an untrusted processor
US10108168B2 (en) 2014-06-01 2018-10-23 Si-Ga Data Security (2014) Ltd. Industrial control system smart hardware monitoring
CN104573423B (zh) * 2015-01-26 2017-10-31 无锡信捷电气股份有限公司 一种plc软硬件结合加密保护方法
EP3073405B1 (en) * 2015-03-23 2019-02-06 ABB Schweiz AG Method and device providing secure vendor service access
US9858412B2 (en) * 2015-06-25 2018-01-02 Intel Corporation Secure trusted execution environment data store
US10073964B2 (en) 2015-09-25 2018-09-11 Intel Corporation Secure authentication protocol systems and methods
US10210333B2 (en) * 2016-06-30 2019-02-19 General Electric Company Secure industrial control platform
US11398906B2 (en) 2016-11-10 2022-07-26 Brickell Cryptology Llc Confirming receipt of audit records for audited use of a cryptographic key
US10498712B2 (en) 2016-11-10 2019-12-03 Ernest Brickell Balancing public and personal security needs
US11405201B2 (en) 2016-11-10 2022-08-02 Brickell Cryptology Llc Secure transfer of protected application storage keys with change of trusted computing base
US10855465B2 (en) 2016-11-10 2020-12-01 Ernest Brickell Audited use of a cryptographic key
US10348706B2 (en) 2017-05-04 2019-07-09 Ernest Brickell Assuring external accessibility for devices on a network
US10652245B2 (en) 2017-05-04 2020-05-12 Ernest Brickell External accessibility for network devices
JP7318305B2 (ja) 2019-05-17 2023-08-01 富士フイルムビジネスイノベーション株式会社 発光装置
US11386234B2 (en) * 2019-12-17 2022-07-12 Nuvoton Technology Corporation Security systems and methods for integrated circuits

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4975950A (en) * 1988-11-03 1990-12-04 Lentz Stephen A System and method of protecting integrity of computer data and software
US5944821A (en) * 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
US5953502A (en) * 1997-02-13 1999-09-14 Helbig, Sr.; Walter A Method and apparatus for enhancing computer system security
US5919257A (en) * 1997-08-08 1999-07-06 Novell, Inc. Networked workstation intrusion detection system
US6185678B1 (en) * 1997-10-02 2001-02-06 Trustees Of The University Of Pennsylvania Secure and reliable bootstrap architecture
US6401208B2 (en) * 1998-07-17 2002-06-04 Intel Corporation Method for BIOS authentication prior to BIOS execution
US7194092B1 (en) * 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
EP1056010A1 (en) 1999-05-28 2000-11-29 Hewlett-Packard Company Data integrity monitoring in trusted computing entity
EP1085396A1 (en) 1999-09-17 2001-03-21 Hewlett-Packard Company Operation of trusted state in computing platform
WO2001061473A1 (en) 2000-02-16 2001-08-23 Watchguard Technologies, Inc. Computer security using dual functional security contexts
US6625730B1 (en) * 2000-03-31 2003-09-23 Hewlett-Packard Development Company, L.P. System for validating a bios program and memory coupled therewith by using a boot block program having a validation routine
GB0020371D0 (en) * 2000-08-18 2000-10-04 Hewlett Packard Co Apparatus and method for establishing trust
US7000249B2 (en) * 2001-05-18 2006-02-14 02Micro Pre-boot authentication system
US6938164B1 (en) * 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
GB2376763B (en) * 2001-06-19 2004-12-15 Hewlett Packard Co Demonstrating integrity of a compartment of a compartmented operating system
US7237121B2 (en) * 2001-09-17 2007-06-26 Texas Instruments Incorporated Secure bootloader for securing digital devices
US20030182561A1 (en) * 2002-03-25 2003-09-25 International Business Machines Corporation Tamper detection mechanism for a personal computer and a method of use thereof
US7343493B2 (en) * 2002-03-28 2008-03-11 Lenovo (Singapore) Pte. Ltd. Encrypted file system using TCPA
US6782349B2 (en) * 2002-05-03 2004-08-24 International Business Machines Corporation Method and system for updating a root of trust measurement function in a personal computer

Also Published As

Publication number Publication date
AU2003280494A1 (en) 2004-01-19
EP1518158B1 (en) 2012-03-21
ATE550728T1 (de) 2012-04-15
CN1678968A (zh) 2005-10-05
CN100388150C (zh) 2008-05-14
US20040003288A1 (en) 2004-01-01
US7216369B2 (en) 2007-05-08
WO2004003824A1 (en) 2004-01-08
EP1518158A1 (en) 2005-03-30

Similar Documents

Publication Publication Date Title
ES2381355T3 (es) Plataforma informática de confianza
US11093600B2 (en) Chip accessing method, security controlling module, chip and debugging device
EP2854066B1 (en) System and method for firmware integrity verification using multiple keys and OTP memory
ES2372989T3 (es) Proyección de fiabilidad desde un entorno de confianza a un entorno sin confianza.
US9111097B2 (en) Secure execution architecture
ES2218484T3 (es) Un metodo de proteger la integridad de un programa de ordenador.
US7139915B2 (en) Method and apparatus for authenticating an open system application to a portable IC device
US7010684B2 (en) Method and apparatus for authenticating an open system application to a portable IC device
ES2334336T3 (es) Distribucion y ejecucion de aplicacion seguras en un entorno inalambrico.
KR101458780B1 (ko) 다단계 락스텝 무결성 보고 메커니즘 제공
US9256734B2 (en) Security controlled multi-processor system
US8219496B2 (en) Method of and apparatus for ascertaining the status of a data processing environment
TWI494785B (zh) 用以提供系統管理命令之系統與方法
WO2016190968A1 (en) Policies for secrets in trusted execution environments
US20120096450A1 (en) Mechanism for updating software
ES2963328T3 (es) Procedimiento para verificar la integridad de un código de aplicación, dispositivo y producto de programa informático correspondientes
US10936722B2 (en) Binding of TPM and root device
JP2003507784A (ja) 記憶されたデータの使用に対する強制的な制限
Ammar et al. Verify&revive: Secure detection and recovery of compromised low-end embedded devices
Yao et al. Building Secure Firmware
CN113987468A (zh) 安全检查方法和安全检查装置
Msgna et al. Secure application execution in mobile devices
EP1535124B1 (en) Computer architecture for executing a program in a secure of insecure mode
CN114443147B (zh) 基于可信硬件技术的超级监控式无人飞行器可信检测方法
Rauter et al. Thingtegrity: A Scalable Trusted Computing Architecture for the Internet of Things.