[go: up one dir, main page]

MX2008016351A - Ambiente de computo independiente y provision de funcionalidad de dispositivos de computo. - Google Patents

Ambiente de computo independiente y provision de funcionalidad de dispositivos de computo.

Info

Publication number
MX2008016351A
MX2008016351A MX2008016351A MX2008016351A MX2008016351A MX 2008016351 A MX2008016351 A MX 2008016351A MX 2008016351 A MX2008016351 A MX 2008016351A MX 2008016351 A MX2008016351 A MX 2008016351A MX 2008016351 A MX2008016351 A MX 2008016351A
Authority
MX
Mexico
Prior art keywords
computing device
functionality
access
module
web services
Prior art date
Application number
MX2008016351A
Other languages
English (en)
Inventor
Thomas G Phillips
William J Westerinen
Alexander Frank
James Duffus
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of MX2008016351A publication Critical patent/MX2008016351A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/2149Restricted operating environment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Se describen técnicas que proporcionan un ambiente de cómputo independiente. El ambiente de cómputo independiente está contenido al menos en parte en un grupo de uno o más componentes de hardware y configurado para alojar un módulo de provisión que es ejecutable para proporcionar funcionalidad del dispositivo de cómputo de acuerdo con una amplia variedad de factores. En una implementación, cuando el módulo de provisión determina que la funcionalidad particular se referencia en una lista de inclusión, se permite que el dispositivo de cómputo acceda a la funcionalidad particular. Cuando el módulo de provisión determina que la funcionalidad particular se referencia en una lista de exclusión, el dispositivo de cómputo se previene de acceder a la funcionalidad particular.

Description

AMBIENTE DE COMPUTO INDEPE DIE TE Y PROVISION DE FUNCIONALIDAD DE DISPOSITIVOS DE COMPUTO ANTECEDENTES En modelos de negocio tradicionales, los clientes compraron tanto dispositivos de cómputo como software para ejecución en los dispositivos de cómputo. Por lo tanto, los dispositivos de cómputo tradicionales típicamente se configuraron para ejecución "abierta" y "de propósito general" de software y acceso a servicios deseados por el usuario y no limitados, por sí mismos, para ejecución de software y/o acceso particular a servicios particulares. Bajo estos modelos de negocio tradicionales, por ejemplo, el cliente puede comprar una computadora personal (PC) de escritorio teniendo un sistema operativo que permite la ejecución de una amplia escala de aplicaciones, tal como juegos, procesadores de palabra, hojas de cálculo, y así sucesivamente que pueden obtenerse de una amplia escala de vendedores. Adicionalmente, una o más de estas aplicaciones (por ejemplo, un navegador) puede permitir acceso a una amplia variedad de servicios, tal como páginas web y así sucesivamente. Por lo tanto, un proveedor (por ejemplo, fabricante) de la PC de escritorio típicamente utilizó una configuración que permitió a la PC ejecutar tantas de estas aplicaciones diferentes cómo fuera posible, que puede proporcionar acceso a tantos servicios como sea posible. En esta forma, la funcionalidad disponible para el consumidor y en consecuencia el deseo de la PC para el cliente aumentó. La configuración como un dispositivo de cómputo de "propósito general", sin embargo, típicamente limitó el dispositivo de cómputo a estos modelos de negocio tradicionales y de esa forma vendedores limitados del dispositivo de cómputo beneficiarse entre ellos de otros modelos de negocio. Por ejemplo, un vendedor puede desear utilizar un modelo de negocios en donde los clientes "pagan mientras avanzan". Por lo tanto, en este ejemplo, un vendedor de dispositivo de cómputo puede subsidiar el precio de compra inicial del dispositivo de cómputo con el fin de recolectar ingreso del usuario en un momento posterior, tal como en la venta de servicios y/o software para el cliente en una red. Sin embargo, si el dispositivo de cómputo se configura para ejecución de propósito general de software, el cliente puede elegir renunciar al uso de los servicios y/o software del vendedor, con lo cual remueve el incentivo del vendedor para subsidiar el costo del dispositivo de cómputo.
BREVE DESCRIPCION DE LA INVENCION Se describen técnicas que proporcionan un ambiente de cómputo independiente, que puede utilizarse para controlar la funcionalidad en un dispositivo de cómputo "abierto" y "de propósito general". El ambiente de cómputo independiente está contenido a menos en parte en un grupo de uno o más componentes de hardware.
El ambiente de cómputo independiente se configura para alojar un módulo de provisión que es ejecutable para proveer funcionalidad del dispositivo de cómputo de acuerdo con una amplia variedad de factores. En una implementación, el módulo de provisión se ejecuta en el ambiente de cómputo independiente. Cuando el módulo de provisión determina que la funcionalidad particular se denomina en una lista de inclusión, se permite que el dispositivo de cómputo acceda a la funcionalidad particular. Cuando el módulo de provisión determina que la funcionalidad particular se denomina en una lista de exclusión, el dispositivo de cómputo se previene de acceder a la funcionalidad particular. En otra implementación, un dispositivo de cómputo se proporciona y se une al acceso de uno o más servicios web de un proveedor de servicio a través del uso de un módulo de provisión. El módulo de provisión es ejecutable en un ambiente de cómputo independiente contenido a menos en parte en uno o más componentes de hardware del dispositivo de cómputo al menos una porción del precio de compra del dispositivo de cómputo se subsidia. Esta breve descripción se proporciona para introducir una selección de conceptos en una forma simplificada que además se describe más adelante en la descripción detallada. Esta breve descripción no pretende identificar características clave o características esenciales del tema reclamado, ni pretende utilizarse como un auxiliar al determinar el alcance del tema reclamado.
BREVE DESCRIPCION DIBUJOS La descripción detallada se describe con referencia a las figuras anexas. Las figuras, el dígito(s) izquierdo de un número de referencia identifica la figura en la cual aparece primero en número de referencia. El uso de los mismos números de referencia en diferentes casos en la descripción y las figuras puede indicar artículos similares o idénticos. La Figura 1 es una ilustración de un ambiente en una implementación ilustrativa que es operable para emplear técnicas para proporcionar un ambiente de cómputo independiente. La Figura 2 es una ilustración de sistema en una implementación ilustrativa que muestra un proveedor de servicio y un dispositivo de cómputo de la Figura 1 en mayor detalle. La Figura 3 es una ilustración de una arquitectura que incluye un ambiente de cómputo independiente que mide la salud de uno o más grupos de código de sujeto que corre en memoria. La Figura 4 es una ilustración en la arquitectura que incluye un ambiente de cómputo independiente incorporado en un procesador que mide la salud de uno o más grupos de código de sujeto que corre en la memoria. La Figura 5 es una ilustración que muestra un diagrama de tiempo ilustrativo que representa varias ventanas de tiempo que pueden existir con respecto a medir la salud de código del sujeto. La Figura 6 es un diagrama de flujo que ilustra un procedimiento en una implementacion ilustrativa en donde un dispositivo de cómputo subsidiado se proporciona y se une a uno o más servicios web. La Figura 7 es un diagrama de flujo que ilustra un procedimiento en una implementacion ilustrativa en donde se ejecuta un módulo en un dispositivo de cómputo que se une para interacción con un servicio web particular. La Figura 8 es un diagrama de flujo que ilustra un procedimiento en una implementacion ilustrativa en donde se utiliza un balance para manejar funcionalidad de un dispositivo de cómputo a través de la ejecución de un módulo de provisión en un ambiente de cómputo independiente. La Figura 9 es un diagrama de flujo que ilustra un procedimiento en una implementacion ilustrativa en donde las listas de inclusión y exclusión se utilizan para manejar funcionalidad de un dispositivo de cómputo. La Figura 10 es un diagrama de flujo que ilustra un procedimiento en una implementacion ilustrativa en donde se utilizan técnicas de identificación diferentes en conjunto con listas de inclusión/exclusión respectivas para manejar ejecución de un módulo.
DESCRIPCION DETALLADA Vista General Los modelos de negocio tradicionales habilitaron a un cliente para comprar un dispositivo de cómputo (por ejemplo, una computadora personal de escritorio) que se configuró para ejecutar software que también se compró por el cliente. Por lo tanto, este modelo de negocio tradicional proporcionó dos corrientes de ingreso, una al fabricante y el vendedor del dispositivo de cómputo y otra a un desarrollador y vendedor del software. Adicionalmente, una tercera corriente de ingreso puede obtenerse por un vendedor de servicios web que pueden consumirse a través del dispositivo de cómputo, tal como acceso preparado a sitios web particulares. De esa forma, los dispositivos de cómputo tradicionales se configuraron para uso "abierto" y de "propósito general" para que el cliente no se limitará por el dispositivo de cómputo a ejecución del software particular ni acceso a servicios web particulares. Al configurar un dispositivo de cómputo para uso de propósito general, sin embargo, el dispositivo de cómputo puede no ser adecuado para uso en otros modelos de negocio, tal como en modelos que subsidian todo o porción de un precio de compra del dispositivo de cómputo con el fin de recolectar ingreso posterior al uso del dispositivo. Se describen técnicas, en donde, se crea un ambiente de cómputo independiente, que puede utilizarse para asegurar la ejecución de software particular. Este software particular, por ejemplo, puede configurarse para proporcionar funcionalidad del dispositivo de cómputo de acuerdo con políticas que especifican operación deseada del dispositivo de cómputo. Un vendedor, por ejemplo, puede utilizar un modelo de "pago por uso" en donde el vendedor obtiene ingreso a través de la venta de tarjetas prepagadas que permiten el uso de dispositivos de cómputo por una cantidad de tiempo limitada, por un número de veces predeterminado, para realizar un número de funciones predeterminadas, y asi sucesivamente. En otro caso, un proveedor de software proporciona uso basado en suscripción de software. En un caso adicional, un proveedor de servicio proporciona acceso a servicios web por una cuota. En estos casos, las políticas pueden especificar cuanta funcionalidad del dispositivo de cómputo se va a manejar para asegurar que el dispositivo de cómputo se utiliza en una forma para soportar este modelo. Por ejemplo, el usuario puede limitarse al uso del dispositivo de cómputo en conjunto con servicios web particulares, acceso a los cuales se obtiene al pagar una cuota. Por lo tanto, el proveedor de servicio puede subsidiar el costo del dispositivo de cómputo con el fin de obtener ingresos del usuario cuando accede a los servicios. También se contemplan una variedad de otros ejemplos. Una variedad de técnicas puede utilizarse por el ambiente de cómputo independiente para manejar la funcionalidad del dispositivo de cómputo. Por ejemplo, el módulo de provisión, cuando se ejecuta, puede manejar que aplicaciones y/o servicios web están permitidos para ¡nteractuar con el dispositivo de cómputo a través de la inclusión y lista de exclusión. Las listas de inclusión pueden especificar que funcionalidad (por ejemplo, aplicaciones, servicios web, y así sucesivamente) se permite utilizarse por el dispositivo de cómputo. Las listas de exclusión, por otro lado, pueden especificar que funcionalidad no se permite, tal como al especificar aplicaciones piratas, sitios web no confiables, y así sucesivamente. Por lo tanto, después de identificar el servicio web o la aplicación que se va a utilizar en conjunto con el dispositivo de cómputo, el módulo de provisión puede determinar si permite la acción. Además, el módulo de provisión también puede emplear políticas para aplicaciones y/o servicios web que dirigen casos en donde la funcionalidad no se referencia en las listas de inclusión o exclusión. Una discusión adicional de manejar el uso del dispositivo de cómputo con servicios web particulares puede encontrarse con relación a las Figuras 6-8. Una discusión adicional del uso de listas de exclusión y exclusión puede encontrarse con relación a las Figuras 9-10. En la siguiente discusión, primero se describe un ambiente ilustrativo y dispositivos que son operables para realizar técnicas para proporcionar un ambiente de ejecución independiente. Los procedimientos ilustrativos entonces se describen y pueden emplearse en el ambiente ilustrativo y/o implementarse por los dispositivos ilustrativos, así como en otros ambientes y/o servicios.
Ambiente ilustrativo La Figura 1 es una ilustración de un ambiente 100 en una implementación ilustrativa que es operable para emplear técnicas que proporcionan un ambiente de cómputo independiente. La modalidad ilustrada 100 incluye un proveedor de servicio 102 y un dispositivo de cómputo 104 que se acoplan comunicativamente, entre sí, a través de una red 106. En la siguiente discusión, el proveedor de servicio 102 puede ser representativo de una o más entidades, y por lo tanto puede hacerse referencia a una entidad individual (por ejemplo, el proveedor de servicio 102) o múltiples entidades (por ejemplo, los proveedores de servicio 102, la pluralidad de proveedores de servicios 102, y así sucesivamente). El dispositivo de cómputo 104 puede configurarse en una variedad de formas. Por ejemplo, los dispositivos de cómputo 104 pueden configurarse como una computadora de escritorio, una estación móvil, un aparato de entretenimiento, una caja de tv por cable acoplada comunicativamente a un dispositivo de presentación, un teléfono inalámbrico, una consola de juegos, y asi sucesivamente. De esa forma, el dispositivo de cómputo 104 puede variar del dispositivo de recurso completo con memoria sustancial y recursos de procesador (por ejemplo, computadoras personales, consolas de juego) a dispositivos de bajo recurso con memoria limitada y/o recursos de procesamiento (por ejemplo, caja de tv tradicional, consola de juego portátil). Aunque la red 106 se ilustra como Internet, la red puede asumir una amplia variedad de configuraciones. Por ejemplo, la red 106 puede incluir una red de área ancha (WAN), una red área local (LAN), una red inalámbrica, una red de teléfono público, intranet, y así sucesivamente. Además, aunque se muestra una red individual 106, la red 106 puede configurarse para incluir múltiples redes. El dispositivo de cómputo 104 se ilustra como teniendo uno o más módulos 108(a) (en donde "a" puede ser cualquier entero de uno a "A", que también se denomina en casos en la siguiente discusión como "código" y "grupos de código"). Los módulos 108(a) pueden configurarse en una variedad de formas para proporcionar una variedad de funcionalidad. Por ejemplo, uno de los módulos 108(a) puede configurarse como un sistema operativo 110 que proporciona una base para ejecución de otros módulos 108(a). Los otros módulos 108(a), por ejemplo, pueden configurarse como aplicaciones de productividad 112, tal como procesadores de palabra, hojas de cálculo, aplicaciones de presentación de diapositiva, aplicaciones de diseño de gráficos, y aplicaciones para tomar notas. Los módulos 108(a) también pueden configurarse en una variedad de otras 114 formas, tal como un juego, configurado para acceso de red (por ejemplo, un navegador), y así sucesivamente. Por ejemplo, el módulo 108(a), cuando se ejecuta, puede interactuar con uno o más servicios web 116(w) en la red 106. Además, los módulos 108(a) pueden configurarse para agregar funcionalidad a otros módulos, tal como través de la configuración como un módulo de "conexión". Como se describió previamente, bajo modelos de negocio tradicionales, los dispositivos de cómputo se configuraron típicamente para uso de "propósito general" y "abierto" para permitir a un usuario acceder a una amplia variedad de módulos y/o servicios web como se desee. Sin embargo, tal configuración de "propósito general" y "abierta" limitó al dispositivo de cómputo de tomar ventaja de otros modelos de negocio, en donde, el costo del dispositivo de cómputo se subsidió por otra entidad, tal como un proveedor de software, proveedor de acceso de red, proveedor de servicio web, y así sucesivamente. Por ejemplo, estas otras entidades pueden recolectar ingreso de uso de servicios web y por lo tanto subsidian el costo del dispositivo de cómputo para alentar a los usuarios a utilizar los servicios web. En otro ejemplo, un modelo de "pago por uso" puede utilizarse, en donde, el costo inicial del dispositivo de cómputo se subsidió y el usuario para el uso del dispositivo de cómputo en una variedad de formas, tal como una cuota de suscripción, una cuota pagada por una cantidad de tiempo establecida, una cuota pagada por uso de una cantidad de recursos establecida, y así sucesivamente. Por lo tanto, el dispositivo de cómputo 104 de la Figura 1 se configura para proporcionar un ambiente, en donde, la ejecución del software particular puede asegurarse para imponer el uso del dispositivo de cómputo 104 una forma deseada por un fabricante/vendedor del dispositivo de cómputo 104. Varios aspectos de la tecnología aquí descrita, por ejemplo, se dirigen hacia una tecnología por la cual puede medirse cualquier pieza dada de código de software por verificación (por ejemplo, de su integridad y autenticidad) en una forma regular, en curso que efectivamente se lleva a cabo en tiempo real. Como se utiliza aquí, el término "medida" y sus variantes (por ejemplo, "medido", "que mide", "medición" y así sucesivamente) con respecto a código de software generalmente se refiere a cualquiera abstracción para revisiones de integridad y/o verificación, en donde existen varias formas para validar procesos de integridad y/o de verificación. Algunas formas ilustrativas para medir se describen más adelante, sin embargo esta abstracción de medición no se limita a aquellos ejemplos, e incluye técnicas y/o mecanismos futuros para evaluar código en software y/o su ejecución. Los módulos 108(a) pueden medirse, por ejemplo, y algún castigo aplicado en el caso que los módulos 108(a) no se verifiquen como "saludables", por ejemplo, las funciones como se pretende por un vendedor del dispositivo de cómputo. Por ejemplo, como un castigo, el dispositivo de cómputo 104 puede cerrarse cuando se ejecuta un módulo "no saludable", puede reducir su desempeño de alguna forma (al menos en parte) que hace el uso normal impráctico, puede forzar a un administrador a contactar a un vendedor o fabricante de software para una fijación/permiso, el módulo no saludable puede detenerse, (por ejemplo, al atraparse) y así sucesivamente. Técnicas similares también pueden aplicarse con relación a acceso a servicios web 116(w). En general y como se describió anteriormente, el software reemplazable o modif ¡cable, como es la situación con un sistema operativo abierto, generalmente no es un mecanismo aceptable para medir la salud u otro código de software. En lugar de esto, las técnicas se describen, en donde, un mecanismo/solución ayudado por hardware (por ejemplo, basado en procesador) proporciona una raíz externa de confianza que es independiente del sistema operativo 110. Como también se describió más adelante, para medir la integridad de grupos de código tal como módulos binarios, el mecanismo de hardware puede tomar acciones para compensar la falta de un método de tiempo real, y también puede proporcionar datos sobre la ejecución de cada módulo binario de sujeto para ayudar a alcanzar una conclusión sobre su salud. En una implementación ilustrativa, el mecanismo de hardware comprende un ambiente de cómputo independiente (algunas veces denominado alternativamente como aislado) (o ICE) 118, que comprende cualquier código, microcódigo, lógica, dispositivo, parte de otro dispositivo, un dispositivo virtual, un ICE moldeado como un dispositivo, sistema de circuitos integrado, híbrido de sistema de circuitos y software, una tarjeta inteligente, cualquier combinación de los anteriores, cualquier medio (independiente de estructuras) que realiza la funcionalidad de un ICE descrito aquí, y así sucesivamente, que se protege (por ejemplo, en hardware) de falsificarse por otras partes, que incluye falsificación a través del sistema operativo 110, maestros de conductor común, y así sucesivamente.
El ICE 118 permite lógica alojada en ambiente de cómputo independiente (por ejemplo, lógica por cable, código en flash, código de programa alojado, microcódigo y/o esencialmente cualquiera de las instrucciones legibles por computadora) para interactuar con el sistema operativo 110, por ejemplo, para que el sistema operativo sugiera en donde supuestamente residen los módulos de sujeto. Los ambientes de cómputo independientes múltiples son factibles. Por ejemplo, un ambiente de cómputo independiente que monitorea múltiples direcciones de red diferentes, múltiples regiones de memoria, diferentes características de las múltiples regiones de memoria, y así sucesivamente pueden bastar. El ICE 118, por ejemplo, se ilustra como incluyendo un módulo de provisión 120 que es representativo de lógica que aplica una o más políticas 112 ( p ) (en donde "p" puede ser cualquier entero de uno a "P") que describe cómo se va a manejar la funcionalidad del dispositivo de cómputo 104. Al verificar el módulo de provisión 120 para ejecución en el dispositivo de cómputo 104, por ejemplo, el dispositivo de cómputo 104 puede prevenirse de "piratearse cibernéticamente" y utilizarse para otros propósitos que yacen fuera del modelo de negocios contemplado. Además, el módulo de provisión 120, cuando se ejecuta dentro del ICE 118, puede medir la "salud" de los otros módulos 108(a) para asegurar que estos módulos 108(a) funcionen como se describió por la política 122(p). El módulo de provisión 120, por ejemplo, puede imponer una política para controlar que servicios web 116(w) son accesibles por el dispositivo de cómputo 104. Por ejemplo, el módulo de provisión 120 puede monitorear la ejecución de los módulos 108(a) para asegurar que las direcciones de red empleadas por los módulos 108(a) para acceder a los servicios web 116(w) se permitan. Adicionalmente, el proveedor de servicio 102 que proporciona los servicios web 116 (w) pueden recolectar una cuota de un usuario del dispositivo de cómputo 104 para acceder a los servicios web 116 (w). Estas cuotas pueden utilizarse para soportar un modelo de negocio para "subsidiar", en donde el proveedor de servicio 102 entonces puede balancear parte del costo de compra inicial del dispositivo de cómputo 104 con el fin de recolectar estas cuotas en un momento posterior, discusión adicional de la cual puede encontrarse con relación a la Figura 6. En otro ejemplo, el módulo de provisión 120 es ejecutable para imponer una política 122 ( p) que permite acceso a módulos 108(a) y/o servicios web 116 (w) basándose en listas de inclusión y exclusión. El módulo de provisión 120, por ejemplo, puede utilizar técnicas de identificación precisa (por ejemplo, verificación criptográfica) para determinar si un módulo 108(a) se incluye en una lista de funcionalidad "permisible" que puede emplearse por el dispositivo de cómputo 104. El módulo de provisión 120 también puede utilizar técnicas de identificación (que pueden ser menos precisas que aquellas utilizadas para la lista de inclusión, tal como en medidas de firma) para determinar si el módulo 108(a) y/o servicio web 116(w) está en una lista de funcionalidad que se excluye del uso en el dispositivo de cómputo 104. Además, la política 122(p) empleada por el módulo de provisión 120 también puede especificar una amplia variedad de acciones para tomarse cuando la funcionalidad (por ejemplo, los módulos 108(a) y/o los servicios web 116(w)) no se incluyen en ninguna de las listas, discusión adicional de la cual puede encontrarse con relación a la siguiente figura. Generalmente, cualquiera de las funciones aquí descritas pueden implementarse al utilizar software, firmware, hardware (por ejemplo, sistema de circuitos de lógica fija), procesamiento Manual, o una combinación de estas implementaciones. Los términos "módulo", "funcionalidad", y "lógica" como se utiliza aquí generalmente representa software, firmware, hardware, o una combinación de los mismos. En el caso de una implementación de software, el módulo, funcionalidad, o lógica representa código de programa que realiza tareas especificadas cuando se ejecuta en un procesador (por ejemplo, CPU o CPUs). El código de programa puede almacenarse en uno o más dispositivos de memoria legible por computadora, por ejemplo, memoria. Las características de las técnicas descritas más adelante son independientes de plataforma, lo que significa que las técnicas pueden implementarse en una variedad de plataformas de cómputo comerciales que tienen una variedad de procesadores. La Figura 2 ilustra un sistema 200 en una implementación ilustrativa que muestra el proveedor de servicio 102 y el dispositivo de cómputo 104 de la Figura 1 en mayor detalle. El proveedores de servicio 102 se ¡lustra como implementándose por un servidor 202, que puede es representativo de uno o más servidores, por ejemplo, una torre de servidores. El servidor 202 y el dispositivo de cómputo 104 cada uno se ¡lustra como teniendo procesadores respectivos 204, 206 y memoria respectiva 208, 210. Los procesadores no se limitan por los materiales de los cuales se forman o los mecanismos de procesamiento empleados. Por ejemplo, los procesadores pueden estar compuestos de semiconductor(es) y/o transistores (por ejemplo, circuitos integrados electrónicos (ICEs)). En tal contexto, las instrucciones ejecutables por procesador pueden ser instrucciones electrónicamente ejecutables. Alternativamente, los mecanismos de o para procesadores, y de esa forma de o para un dispositivo de cómputo, pueden incluir, pero no se limitan a, computó quantum, cómputo óptico, cómputo mecánico (por ejemplo, que utiliza nanotecnología), y así sucesivamente. Adicionalmente, aunque se muestra una memoria individual 208, 210, respectivamente, para el proveedor de servicio 102 y el dispositivo de cómputo 104, una amplia variedad de tipos y combinaciones de memoria pueden emplearse, tal como memoria de acceso aleatorio (RAM), memoria de disco duro, memoria de medios removible, y otros tipos de medios legibles por computadora. Por ejemplo, la memoria 210 del dispositivo de cómputo 104 se ilustra como incluyendo memoria volátil configurada como Memoria de Acceso Aleatorio (RAM) 212 y también incluye almacenamiento seguro 214 que se ilustra como separado de la RAM 212. El almacenamiento seguro 214 puede configurarse en una variedad de formas, tal como a través de Memoria de acceso aleatorio de Manejo de sistema (SMRAM), una parte de memoria 210 utilizada para contener un Sistema de entrada/salida Básico (BIOS), como un "chip inteligente" que emplea codificación críptica que puede validarse independientemente al utilizar una verificación o equivalente, y asi sucesivamente. En una implementación, el almacenamiento seguro 214 no es accesible (acceso de lectura o escritura) al sistema operativo 110 ni a los otros módulos 108(a) que "existen fuera" del ICE 118. En otra implementación, sin embargo, todo o parte del almacenamiento seguro 214 está disponible para acceso de lectura, pero no acceso de escritura a los módulos "exteriores" 108(a). Como se describió previamente, el módulo de provisión 120 es representativo de la funcionalidad para imponer políticas 122(1)-122(p) relacionadas con la funcionalidad del dispositivo de cómputo 104, que puede configurarse en una variedad de formas. La política 122(1), por ejemplo, se ilustra como "basado en servicio web" para que esta política pueda utilizarse por el módulo de provisión 120 para determinar qué servicios web 116(w) se permiten para acceder al utilizar el dispositivo de cómputo 104. El módulo de provisión 120, por ejemplo, puede utilizar una raíz de confianza en hardware modificado del ICE 118 para validar un tiempo de inicio en donde están presentes ciertos componentes de software y elementos de ¡nterfase de usuario, que ejecutan y señalan a las direcciones de red permitidas (por ejemplo, Localizadores de recurso uniforme (URLs), direcciones de Protocolo de Internet (IP), y así sucesivamente). Estos componentes de software, a su vez, pueden realizar verificación mutua con los servicios web 116(w) del proveedor de servicio 102 a través de la interacción con un módulo de administrador 216, que se ilustra como ejecutado en el procesador 204 y se puede almacenar en la memoria 208. En otro caso, la verificación de los componentes de software con el módulo de administrador 216 del proveedor de servicio 104 se realizan a través del módulo de provisión 120. El proveedor de servicio 104, a través de la ejecución del módulo de administrador 216, también puede recibir verificación (que puede firmarse) que los servicios web 116(w) se consumieron por el dispositivo de cómputo 104. De esa forma, la política 122(1) en este caso puede proporcionar la monetización de los servicios web 116(w) y elevar esta monetización hacia subsidiar un precio de compra inicial del dispositivo de cómputo 104 por un cliente. Discusión adicional de provisión basándose en servicios web puede encontrarse con relación a las Figuras 6-8. En otro caso, la política 122 ( p) se ilustra como configurada para controlar la funcionalidad del dispositivo de cómputo 104 a través del uso de una lista de inclusión 218, una lista de exclusión 220 y condiciones 222. Por ejemplo, el módulo de provisión 120 puede ser ejecutable para identificar módulos 108(a) y/o servicios web 116(w), tal como a través de verificación criptográfica, el uso de técnicas de firma digital, y así sucesivamente. El módulo de provisión 120 entonces puede comparar esta identificación con la lista de inclusión 218 para determinar si se permite expresamente el acceso a esta funcionalidad, y si es así, permitir acceso. Por ejemplo, la lista de inclusión 218 puede incluir una lista de direcciones de red y verificaciones criptográficas de funcionalidad permitida, tal como módulos 108(a) de una entidad que subsidió el precio de compra inicial del dispositivo de cómputo 104. El módulo de provisión 120 también puede comparar esta identificación con la lista de exclusión 220 para determinar si se restringe expresamente el acceso a esta funcionalidad. Por ejemplo, la lista de exclusión 220 puede incluir verificaciones criptográficas de formas pirateadas de las aplicaciones y por lo tanto el módulo de provisión 120, cuando se ejecuta, puede excluir aquellos módulos de ejecutarse en el dispositivo de cómputo 104. Además, la política 122(p) puede especificar condiciones 222 para que se tomen acciones cuando un módulo y/o servicio web no está en ninguna lista, para permitir la ejecución por una cantidad de tiempo limitada hasta que puede obtenerse una actualización de las listas de inclusión o exclusión (ilustradas como listas que incluyen versiones actualizadas de la lista de inclusión 218', lista de exclusión 220' y condiciones 222') del proveedor de servicio 104. Discusión adicional para provisión basándose en listas de inclusión y exclusión pueden encontrarse con relación a las Figuras 9-10.
Incluso en otro ejemplo, la política 122(p) se ilustra como basada en un balance 224 mantenido por el dispositivo de cómputo 104. En la implementación ilustrada, el módulo de provisión 120 se ejecuta para imponer una política 122(P) que especifica una pluralidad de modos funcionales para el dispositivo de cómputo 104, la imposición de la cual se basa en un balance 224 mantenido localmente en el dispositivo de cómputo 104. Por ejemplo, la pluralidad de modos funcionales puede incluir un modo de función completo, en donde, el dispositivo de cómputo 104 se permite que ejecute los módulos 108(a) que utilizan el recurso completo (por ejemplo, procesador 206, memoria 210, red y software) del dispositivo de cómputo 104. También puede proporcionarse un modo de función reducido, en donde, la funcionalidad del dispositivo de cómputo 104 se limita, tal como al permitir ejecución limitada de módulos de aplicación 108(a). Por ejemplo, el modo de función reducida puede prevenir la ejecución de los módulos de aplicación 108(a) pasando cierta cantidad de tiempo, con lo cual permite que un usuario guarde y transfiera datos, pero no permite interacción extendida con los módulos de aplicación 108(a). Además, también puede especificarse un modo de cierre de hardware, en donde, la ejecución de software diferente al módulo de provisión 120 se previene. Por ejemplo, el modo de cierre de hardware también puede prevenir la ejecución del sistema operativo 110 en el procesador 206 junto, y en consecuencia la ejecución de los módulos 108(a) que depende del sistema operativo 110 para utilizar recursos del dispositivo de cómputo 104. Cada uno de estos diferentes modos operacionales pueden ingresarse dependiendo del balance 224. Por lo tanto, el ajuste del balance 224 puede causar la entrada en diferentes modos y por lo tanto utilizarse para controlar la funcionalidad del dispositivo de cómputo. El balance 224, por ejemplo, puede soportar un modelo de negocio de "hago por uso", en donde, el balance 224 se disminuye en intervalos periódicos. Por ejemplo, el módulo de provisión 120 puede ejecutarse en intervalos periódicos debido a la salida periódica de una interrupción de hardware (por ejemplo, por un controlador insertado) del dispositivo de cómputo 104 que ayuda a formar el ICE 118. Por lo tanto, el módulo de provisión 120 también puede disminuir el balance 224 cuando se ejecuta durante estos intervalos periódicos y de esa forma "inferior" al balance mientras el dispositivo de cómputo 104 se utiliza. Cada "elevar" el balance, el dispositivo de cómputo 104 puede asociarse con una cuenta particular mantenida por el módulo de administrador 216 del proveedor de servicio 102. Por ejemplo, el módulo de administrador 216 puede causar que se comunique un paquete de provisión en la red 106 al dispositivo de cómputo 104, tal como en respuesta a una entrada recibida de un operador humano del proveedor de servicio 102 (por ejemplo, personal de soporte de cliente), automáticamente y con intervención de usuario a través de la interacción con el módulo de provisión 120, por ejemplo, comunicación de un identificador que se utiliza para recuperar información de facturación de la cuenta de cliente, y así sucesivamente. El paquete de provisión, cuando se recibe por el módulo de provisión 120, puede utilizarse para "elevar" el balance 224 y por lo tanto vuelve a obtener/mantiene el acceso a la funcionalidad del dispositivo de cómputo 104. También se contempla una variedad de otros casos, en donde, las políticas se utilizan para proporcionar funcionalidad del dispositivo de cómputo 104. El dispositivo de cómputo 104 además se ilustra como manteniendo un secreto 226 dentro del almacenamiento seguro 214, que puede utilizarse en una variedad de formas. Por ejemplo, el secreto 226 puede configurarse como una raíz de la confianza que se utiliza para verificar módulos 108(a) e interacción de servicio web 116(w). El secreto 226, por ejemplo, puede configurarse como una clave privada de un par de clave pública/privada que se utiliza por el módulo de provisión 120 para verificar si se debe permitir acceso a los módulos 108(a) en el dispositivo de cómputo 104. Una variedad de otros ejemplos también se contempla, discusión adicional de los cuales puede encontrarse con relación a los procedimientos ilustrativos. Las Figuras 3 y 4 representan ejemplos de un ambiente de cómputo independiente (o aislado) 300 ó 400 que mide la salud de uno o más grupos de código 302 ó 402 (que puede o no corresponder a módulos 108(a) de Figuras 1 y 2) módulos de código o los similares. El código 302 ó 412 ilustra cómo incluyendo porciones "C1-CN", que representan ejemplos de porciones del código que corre en una o más regiones de memoria en memoria física, que se ilustra como memoria volátil configurada como RAM 212 pero también se contemplan otros tipos. Como debe ser fácilmente evidente, uno o más grupos de código (¡lustrados como C1-CN) no necesitan estar contiguos en la memoria física, como se representó en los grupos no contiguos en la RAM 212 representados en la Figura 4. En otra implementación, el código se mide en una de memoria virtual, tal como al tener el código relacionado con memoria virtual del sistema operativo 110 para manipular el delineado virtual a físico. En esta implementación, el delineado virtual a físico puede controlarse por un componente confiable, y/o por el ICE 118 aquí descrito para medir los contenidos y comportamiento de instrucciones en el espacio de memoria físico. En la implementación representada en la Figura 3, el ICE 118 es una entidad independiente (es decir, no parte de otro componente de hardware tal como el procesador 206). En la implementación alternativa representada en la Figura 3, el ICE 118 se muestra como incorporado en el procesador 206, por ejemplo, como parte de su sistema de circuito o como un sistema de circuitos independiente en el mismo paquete físico. Incluso otra implementación puede confiar en software solamente. Los ambientes de cómputo independiente 118 de las Figuras 2 y 3 cada una incluye (o de otra forma se asocia con) lógica alojada (ilustrada como módulos de provisión 120), y políticas instaladas respectivas 122(p), cualquiera de todas de las cuales puede ser por cable al menos en parte y/o inyectarse posterior para cambio (por ejemplo, intermitente, posiblemente con un tiempo de expiración). Parte o toda la política puede estar dentro del módulo de provisión 120 y/o separado de éste, por ejemplo, codificado en reglas. El módulo de provisión 120 y/o políticas 122(p) puede firmarse, o de otra forma de conocerse para ser válido (por ejemplo, a través de cable), y puede requerirse para estar presente en cierta computadora o clase de computadora. Además, diferentes módulos de provisión 120 y/o políticas 122(p) pueden aplicar a diferentes tipos de computadoras. Como un ejemplo, el módulo de provisión 120 y/o su política relacionada 122(p) del ICE 118 de la Figura 4 incorporado en el procesador 206 puede ser diferente del módulo de provisión 120 y/o su política relacionada 122(p) del ICE 118 de la Figura 3. Aunque no se muestra en todas implementaciones posibles, se debe entender que el ambiente de cómputo independiente pueda ser independiente como en la Figura 2, o incorporarse esencialmente en cualquier componente de hardware adecuado, (posiblemente pero no necesariamente el procesador 206 como en la Figura 4), mientras el ambiente de cómputo independiente se aisla de falsificación. De esa forma, son factibles otras implementaciones alternativas. Por ejemplo, el ICE 118 puede implementarse en otro hardware, tal como en un controlador de memoria, o puede ser parte de chips de RAM especiales, por ejemplo, construido en una tarjeta madre. Además, mientras el módulo de provisión 120 y/o política 222(p) puede considerarse parte del ICE 118, no hay un requerimiento físico que sea aparte del mismo o componente o componentes de hardware, y de hecho el ambiente de cómputo independiente puede hacerse de varios componentes de hardware físicamente distintos. Para propósitos de simplicidad aquí, la siguiente descripción utilizará los números de referencia de la Figura 4 menos que se note de otra forma. Como se apreciará fácilmente, la ubicación física del ambiente de cómputo independiente puede variar entre modalidades, y de esa forma la discusión de la modalidad de la Figura 4 puede aplicar a una variedad de otras modalidades, que incluyen el de la Figura 3, cuando describen muchas de las características de un ambiente de cómputo independiente. Sin importar ninguna implementación/modalidad física, ICE 118 fue tener un número de características que son similares a otra. Por ejemplo, el ICE 118 de la Figura 4 proporciona el módulo de provisión 120 con acceso confiable a la RAM 212, en donde el grupo o grupos de sujeto de código 402 que se mide (por ejemplo, el módulo o módulos que se monitorea/válida/verifica 108(a) de la Figura 1) residen. En una implementación, para acceder a la RAM 212 el módulo de provisión 120 no depende de un agente lateral de sistema operativo 110 para acceso, debido a que el sistema operativo puede comprometerse. El código medido 402 puede recibir en cualquier lado en la RAM 212, mientras el ICE 118 tiene una forma de saber "en donde" está. Por ejemplo, el ICE 118 puede utilizar balances, y/o puede tener un indicador de instrucción a una ventana (o indicadores a ventanas) en la RAM 212 u otra memoria. Otra opción de alguna forma más simple es asegurar que el grupo de código 402 para medirse resida en el mismo espacio de dirección física . La sección de memoria o secciones que contienen los grupos de código medidos (por ejemplo, C1-Cn) pueden observarse por algún mecanismo, denominado como un componente de observación de memoria, o vigilante de memoria. En general, un vigilante de memoria despide excepciones/eventos con intentos para modificar al menos una ubicación designada en memoria; (se debe notar que al menos una "ubicación" incluye tan poca como una ubicación, o cualquier escala contigua o no contigua, bloque de memoria o grupo de bloques). Esto se relaciona con cualquier modificación de memoria, que incluye solicitudes de escritura de RAM originadas por procesador y originadas periféricas. El controlador de memoria 304 ó 404 puede configurarse para proporcionar tales eventos, y de esa forma también deben basarse en hardware que no puede comprometerse fácilmente, sin embargo se debe entender que un componente de observador/vigilante de memoria puede comprender software o hardware, o una combinación de software y hardware. Varias técnicas para controlar excepciones de vigilante de memoria pueden utilizarse. Por ejemplo, en una implementación, el procesador 206 puede detenerse durante tales excepciones hasta que sea la limpieza del módulo de provisión 120 y/o política 122 ( p) del ICE 118. Alternativamente, el ICE 118 a su vez puede de otra forma penalizar el estado de sistema (por ejemplo, bloqueo de código problemático, reducir el sistema, restablecer de sistema o de otra forma activar algún mecanismo de imposición) con un intento para alterar o modificar la RAM en la región del código de sujeto 402. Otra alternativa es tener el acceso de escritura de bloque de ambiente de cómputo independiente para el código de sujeto 402. Con respecto a las medidas del código de sujeto 402, el módulo de provisión 120 puede utilizar una variedad de técnicas. Por ejemplo, las verificaciones/firmas digitales/certificados y/u otros cálculos matemáticos pueden utilizarse para verificar que un grupo correcto de código binario está presente en donde debe estar, tal como basándose en tecnología de firma digital (por ejemplo, de acuerdo con Cert X.509 y/o Rivest, Shamir Adelman (RSA) de estándares) que pueden compararse con uno o más valores correspondientes en la política 122(p). Alternativamente, si el código medido es relativamente pequeño, el módulo de provisión 120 simplemente puede evaluar sus construcciones, o algún subgrupo de las mismas, contra valores en la política que coincide con las instrucciones. Incluso otra opción es estadística o análisis similar del código, por ejemplo, tal como un patrón en donde se ejecuta, como se describe más adelante. Puede emplearse cualquier combinación de técnicas de medición. Se debe notar que los cálculos pueden tomarse para evaluar la memoria que puede tomar una cantidad de tiempo significativa para realizarse. De hecho, la escala observada puede cambiar mientras la escala de memoria se lee, por ejemplo, linealmente. De esa forma, dependiendo de la política, el vigilante puede activar una lectura de nuevo con cualquier cambio durante la operación de lectura para que la memoria que ya se leyó no pueda cambiar detrás de la ubicación que actualmente se lee. La política puede especificar que es permisible, o puede especificar intentar de nuevo, y si es así, frecuentemente (por ejemplo, hasta algún límite), y así sucesivamente. De esa forma, el módulo de provisión 120 puede obtener datos sobre la salud del código de sujeto 402 en varias formas. Una forma de obtener datos de salud es para el ambiente de cómputo independiente establecer instrucciones de trampa de ICE suave en puntos de interese en el código 402. Alternativamente, o además de la técnica de trampa, el hardware (por ejemplo, el procesador 206) puede permitir al ICE 118 pedir estadísticas sobre ejecución del código de sujeto 402. Esto puede realizarse al definir registros (306 ó 406) o similares que activan la cuenta de ejecución de ciertas instrucciones binarias o escalas de instrucciones. Se debe notar que si está presente, estos registros 306 ó 406 pueden estar en el hardware para evitar falsificación, tal como se ejemplificó como siendo parte del ambiente de cómputo independiente 118 de la Figura 3 o en el procesador 206 de la Figura 4. Se debe notar que el código medido de interés puede tener metadatos anexos, que pueden ponerse en esquema como una parte del código que se mide como se ilustró por los metadatos 308(m) de la Figura 3 y/o almacenados como parte de la política 122(p) como se ilustró por metadatos 408(m) de la Figura 4. Los metadatos 308(m), 408(m) pueden describir una variedad información, tal como qué clase de estadística se van a reunir, una descripción de cómo debe verse el módulo de salud, "en donde" un módulo de salud debe ejecutarse (por ejemplo, registros de datos, direcciones de memoria), listas de inclusión y/o exclusión, direcciones de red que se permite que accedan durante ejecución del módulo, y así sucesivamente. Los metadatos 308(m), 408(m) pueden proporcionarse por el autor de módulo y/o un proveedor de dispositivo de cómputo, por ejemplo, fabricante o vendedor. Por ejemplo, los metadatos 308(m), 408(m) pueden especificar que el ICE 118 debe tener control del procesador 206, 306 de diez a quince veces por segundo, que a la instrucción en alguna dirección (por ejemplo, A1) en el código de sujeto 302 debe ejecutarse diez veces para cada vez que la instrucción se ejecuta en alguna otra dirección (por ejemplo, A2), y así sucesivamente. Ejemplos adicionales de metadatos 308(m), 408(m) que pueden asociarse con un grupo de código de sujeto para describir sus características de salud al ICE 118 (que esencialmente mantiene la guardia para validar cumplimiento) incluyen firma(s) digital para revisiones de integridad y/o verificación, y/o número esperado de veces que el módulo se va ejecutar por periodo (por ejemplo, segundo, minuto, u otros). Este número de tiempos de ejecución puede ser una escala, y puede ser tan general como el grupo completo de código, y/o más específico a la gran modalidad de escalas de instrucción o instrucciones específicas. En lugar de o además de las estadísticas de ejecución, una evaluación de estadística de que tan frecuentemente recibe el código en la memoria puede evaluarse, por ejemplo, un módulo que puede tener que cargarse en la memoria alguna cantidad de tiempo umbral (o porcentaje), y/o sólo puede no estar en la memoria por una cantidad de tiempo específica, (o número de veces por segundo, minuto y así sucesivamente). Incluso otro ejemplo de metadatos 308(m), 408(m) incluye los valores esperados de ciertos registros (por ejemplo, los registros de metadatos 310 ( r) de la Figura 2) y/o direcciones de memoria (por ejemplo, las direcciones 410(a) de RAM 212 en el dispositivo de cómputo de la Figura 3) en ciertas instrucciones. Esto puede pronunciarse como una distribución, por ejemplo, como varios valores o escalas de valores con un peso de probabilidad. Otro tipo de metadatos 308(m), 408(m) pueden especificar una relación entre los valores esperados de varios registros y direcciones de memoria; por ejemplo, si una variable es menor que diez (Vari menor que 10), otra variable tiene que coincidir con cierto criterio, (por ejemplo, 50% de la variable de tiempo Var2 es mayor que, 25% del tiempo es mayor que 100, y algunas veces puede ser 399; Var2 sin embargo debe ser menor de 0). Otros ejemplos de metadatos 308(m), 408(m) incluyen aquellos basados en instrucciones. Las instrucciones pueden contarse por el número de veces que se ejecutan con relación a otras instrucciones, opcionalmente con estadísticas/relaciones utilizadas para evaluar cuentas buenas contra cuentas malas, para que un número pequeño de diferencias ocasionales para tolerarse de cuando algo se observa sospechoso pero no es necesario una violación definitiva, la política puede cambiar para correr un algoritmo diferente, cambiar variables, observar más cercanamente, o más frecuentemente, y asi sucesivamente. Incluso otros ejemplos de metadatos 308(m), 408(m) incluyen aquellos que describen en donde y como se almacenan los datos. Por ejemplo, los metadatos 308(m), 408(m) pueden descubrir direcciones de memoria particulares (por ejemplo, las direcciones 410(a) de la Figura 4), en donde se va almacenar un módulo, registros de datos particulares 310 ( r) en el procesador 206 de la Figura 3, y así sucesivamente. De esta forma, los metadatos 308(m), 408(m) pueden especificar una "burbuja", en donde, al ejecución del código 202, 302 se permite al verificar intentos para interactuar con los registros de datos 310(r) y/o direcciones 410(a), tal como al verificar bits de control, indicadores, bits de estado, y así sucesivamente. Adicionalmente, el acceso a la "burbuja" también puede proporcionarse en una variedad de formas, tal como "explícita" en donde se proporciona acceso de lectura a otros módulos (por ejemplo, el sistema operativo 110) e "implícita" en donde el acceso a la burbuja se limita al módulo de provisión 120 y se previene por otros módulos (en otras palabras, la burbuja y su existencia están contenidas dentro de las uniones del ICE 118). Una o más APIs opcionales pueden proporcionarse para facilitar operación, tal como ICE. Comenzar dirección de memoria (), ICE. Terminar dirección de memoria (), ICE. Acceso permitido (), y/u otros. Al utilizar los metadatos y/u otras técnicas, el ICE 118, a través del módulo de provisión 120 y política 122(p), puede medir y validar la integridad y autenticidad de cualquier grupo especificado de código (por ejemplo, C4). Por ejemplo, el ICE 118 puede programarse para buscar cierto grupo de uno o más módulos, o excepto una política que específica que módulo o módulos se van a validar. Durante operación normal, el módulo de provisión 120 puede activarse por una solicitud de sistema operativo. Por ejemplo, el ICE 118 (a través de un cronómetro interno) puede proporcionar al sistema operativo un periodo de gracia para iniciar la medida de validación, y se transcurre este tiempo, el ambiente de cómputo independiente puede reclamar el sistema corrupto (no saludable) y tomar alguna acción de penalización. Se debe notar que con respecto al tiempo de medición, como se describió anteriormente, una opción es especificar que un grupo de código de sujeto para medirse (por ejemplo, C3) va a residir en el mismo espacio de dirección física. En tal situación, el ICE 118 puede intentar la verificación especulativamente, que incluye en tiempos aleatorios o pseudo-aleatorias. Antes iniciar el proceso de medición, el módulo de provisión 120 puede "cerrar" alguno o todo el código de sujeto, también denominado como módulos objetivos. Una ¡mplementación utiliza el vigilante de alteración de memoria antes descrito para asegurar que el código de sujeto no cambia en la región o regiones observadas. Otra técnica de medición puede cerrar la memoria para accesos de escritura. Hacia ese fin, el módulo de provisión 120 puede proporcionar al sistema operativo alguna interfase (que puede ser explícita o posiblemente implícita) para volver a proponer la RAM 212. Una interfase explícita permitirá al sistema operativo 110 notificar al ICE 118 sobre su intención para volver a proponer la RAM; en general, esto puede observarse como el sistema operativo 110 que le pide al ICE 118 permiso para volver a proponer la RAM 212. Una o más APIs opcionales puede proporcionarse para facilitar operación, tal como ICE. Pedir permiso para volver a proponer la memoria (), ICE. Establecer política de validación (), ICE. Sugerir dirección de módulo (), ICE. Actualizar meta de información de módulo (), y/u otros. Una interfase implícita puede basarse en la sección de vigilante de memoria, que se interpreta por el ICE 118 como una solicitud para permitir la nueva proposición de RAM. A lo largo de estas lineas, hay veces cuando el ICE 118 no cuida como se vuelve a proponer la memoria, por ejemplo, algunas veces cuando el código no se mide. Por ejemplo, los metadatos pueden indicar que un grupo de código se va a medir diez veces por segundo, y durante tiempos de no medición el sistema operativo puede utilizar la memoria de cualquier forma que desee.
Con una solicitud de nueva proposición de RAM, el ICE 118 puede otorgar implícita o explícitamente la solicitud. En cualquier caso, el ICE 118 aún mantiene vigilancia para asegurar la salud del código que se mide, como un sujeto para los metadatos asociados con el código medido. A manera de ejemplo, dado un ambiente de cómputo independiente (por ejemplo, "raíz de confianza" jerárquica, basada en sistema o una similar), varias características son deseables para permitir la verificación modular. En general, el ICE 118 proporciona acceso de lectura confiable a memoria del dispositivo de cómputo 104, por ejemplo, memoria volátil tal como RAM 212. El módulo de provisión 120 asume que las operaciones de lectura no se virtualizan, ni se vuelven a delinear a otra memoria o espacio de l/O, necesitan o modifican de otra forma; (en el presente, los BIOS contemporáneos pueden elevar un subgrupo de estos cuando el hardware sigue las mejores prácticas sobre el conjunto de chips). El ICE 118 también puede permitir al módulo de provisión 120 establecer vigilantes en ciertas áreas de memoria que activarán una o más señales con cada modificación de los contenidos de estas áreas de memoria. El vigilante proporciona alerta sobre cualquier cambio de contenido de memoria en el espacio de memoria físico, que incluye cambios originados por los accesos de memoria directos (DMAS) y maestro de conductor común. Se debe notar que sistema de computadora basado en x86 existente puede incorporar un ICE en su BIOS al tener el huésped de BIOS con un módulo de provisión, por ejemplo, uno que puede medir el código de sujeto mientras el código de sujeto permanece fijo en una escala de memoria particular. El ICE 118 además puede permitir al módulo de provisión 120 obtener estadísticas sobre la apariencia del indicador de instrucción en ciertas escalas de memoria. Por ejemplo, un vigilante de indicador de instrucción puede utilizarse para alertar al ICE 118 cada vez que el indicador de instrucción entra y sale de la escala(s) de memoria específica de interés. Otros modelos son viables, que incluyen el modelo basado en registros descrito anteriormente. Como también se describió anteriormente, el ICE 118 también puede configurarse para observar/atestiguar la clase de actividad del código que se mide. Por ejemplo, el autor puede describir (por ejemplo, en metadatos) un comportamiento característico del módulo en una variedad de formas, mientras el ambiente de cómputo independiente puede medir y evaluar el comportamiento. Mientras ese módulo se comporta dentro del la cubierta de comportamiento especificada (por ejemplo, desempeño), ese módulo se considera saludable. A manera de ejemplo, una característica relativamente directa para perfilar y/o seguir su operación de entrada/salida (l/O). Hacia ese fin, los módulos verificados pueden sujetarse de tal forma que si se roban (por ejemplo, colocan en la imagen de otro sistema operativo), el módulo tendrá que mantenerse saludable para pasar la verificación modular exitosamente. Como un resultado, si estos módulos se colocan en el código de otro sistema operativo, tendrán que obtener control y acceso directo sin virtualización (excepto en el mismo dispositivo de hardware). Como otro ejemplo, el módulo verificado puede tener comportamiento especificado que pertenece a una o más direcciones de red particulares, con las cuales, el módulo puede interactuar. Por ejemplo, el módulo de provisión 120 puede monitorear el código 304 para asegurar que el código 304 se señala a una dirección de red "correcta" (por ejemplo, localizador de recurso uniforme (URL), dirección de protocolo de Internet (IP), y así sucesivamente), tal como esos especificados por metadatos, una política 122(p), y así sucesivamente. Como se describió anteriormente, el ICE 118 puede verificar continuamente el código que se mide 302, pero dependiendo de la política 122(p) la reclama apropiado. Como un resultado, el código que no se verifica continuamente puede cambiar en la memoria, tal como de acuerdo con la política, con medición o recolección estadística que se lleva a cabo en el código durante el tiempo en el que se cambia en memoria. La Figura 5 muestra un diagrama de tiempo ilustrativo en donde el ICE 118 ocasionalmente mide (por ejemplo, periódicamente o en algún caso, o incluso aleatoriamente) el código que está presente y/o como opera. Se debe notar que la Figura 5 es un diagrama de tiempo para cual es la memoria; con un análisis basado en estadística, por ejemplo, cuantas veces se ejecutan ciertas instrucciones del código con relación a otras instrucciones, o con un análisis basado en frecuencia, por ejemplo, cuantas veces se ejecutan ciertas instrucciones de código por periodo de tiempo, la región de "ICE no se preocupa" esencialmente puede transcurrir el tiempo completo, mientras las cuentas (por ejemplo, en los registros) son correctas en cualquier momento que se miden, lo que puede ser fijo o esporádico.
La política 122(p) típicamente decidirá cuándo y qué clase de medición se necesita. Por ejemplo, en el área de tiempo ejemplificado en la Figura 5 no requiere que el código medido permanezca en la memoria todo el tiempo. De esa forma, existe un marco de tiempo de "ICE no se preocupa" que sigue (excepto para el primer tiempo) un estado completo de medida previa, denominado en la Figura 5 como "Última validación". En este marco de tiempo, el sistema operativo puede cambiar el nuevo código o de otra forma dejarlo en cualquier momento que desee en la región o regiones medidas correspondientes, debido a que no se miden en ese momento. Si se cierra, la región de memoria puede abrirse en este momento. En el tiempo de "ICE interesado", el ICE 118 puede iniciar su medición, para restablecer contadores y similares, aunque sí está correcto en este marco de tiempo, no se puede hacer la imposición. Este marco de tiempo también puede corresponder al periodo de gracia antes descrito en el cual el sistema operativo tiene tiempo para completar algo, mientras activa la medida de ambiente de cómputo independiente antes que expire el periodo de gracia. De esta forma, el ICE 118 puede o no operar, pero no se impondrá castigo a menos y hasta que se detecte por último la violación. Cuando el ambiente de cómputo independiente mide, en el marco de tiempo de "ICE se preocupa", la medición necesita iniciarse y corregirse en el momento en el que se muestra como "Cubierta de desempeño" que se alcanza, o alguna imposición de tipo que se activa. De nuevo, la política determina el tiempo, el tipo de medida, el tipo de imposición y así sucesivamente. En general, cuando la validación falla, o alguna o toda la política de descripción (por ejemplo, que compromete cualquiera de los datos utilizados por el módulo de provisión 120) está ausente, el ICE 118 penaliza el sistema de computadora al cambiar su estado de alguna forma, como se describió generalmente anteriormente. Por ejemplo, cuando el código que está en la memoria no es el grupo de código correcto y/o no se comporta correctamente en el tiempo de medición, se activa el mecanismo de imposición, por ejemplo, para detener el sistema. Otros ejemplos que incluyen cerrar el sistema de computadora, disminuir la velocidad del sistema de computadora, limitar la memoria de alguna forma, disminuir la velocidad de y/o, afectar (por ejemplo, matar) un proceso relevante través de instrucciones de trampa, sobrescribir código de proceso (por ejemplo, con instrucción de giro infinito), y así sucesivamente. El ambiente de cómputo independiente puede alterar el sistema operativo de que se sobrepone previo 110 a tomar cualquier acto de penalización.
Se debe notar que numerosas combinaciones de tiempo, los tipos de medición, los tipos de imposición y asi sucesivamente pueden variar entre clases de computadoras, o incluso en el mismo sistema de computadora. Por ejemplo, en la misma computadora, un módulo de código que se evalúa puede tener que residir físicamente en la misma ubicación en la memoria en todos los momentos, otro módulo puede cambiar dentro y fuera pero tiene que estar presente en el tiempo de medición, incluso otro módulo puede cambiar en cualquier tiempo pero tener que satisfacer periódicamente requerimientos de desempeño (lo que significa que tiene que ejecutarse frecuentemente lo suficiente para hacerlo), y asi sucesivamente. Se debe notar que la imposición que se toma puede variar cuando se detecta una violación, y diferentes tipos de violaciones pueden resultar en diferentes tipos de imposición. Por ejemplo, cambiar un módulo de código (por ejemplo, altamente crípticos) puede resultar en el sistema que se cierra por el ICE, mientras cambiar otro de puede resultar en el sistema operativo que se notifica para presentar una advertencia al usuario o enviar un mensaje al fabricante de sistema de computadora, vendedor de programa o similares (por ejemplo, alguna entidad de otorgamiento de licencias). Como otro ejemplo, como se describió anteriormente, la falta de una estadística puede no resultar en un castigo inmediato, pero a su vez resultará en observación más cuidadosa, al menos por un tiempo, para determinar si se debe tomar imposición adicional.
Procedimientos ilustrativos La siguiente discusión describe técnicas de provisión que pueden implementarse al utilizar los sistemas y dispositivos previamente descritos. Aspectos de cada uno de los procedimientos pueden implementarse en hardware, firmware, o software, o una combinación de los mismos. Los procedimientos se muestran como un grupo de bloques que especifican operaciones realizadas por uno o más dispositivos y no necesariamente limitados a los órdenes mostrados para realizar las operaciones por los bloques respectivos. En porciones de la siguiente discusión, ahora se hará referencia a los ambientes de las Figuras 1-4. La Figura 6 ilustra un procedimiento 500 en una implementación ilustrativa en donde se proporciona un dispositivo de cómputo subsidiado que se une a uno o más servicios web. Un dispositivo de cómputo se proporciona para acceder a uno o más servicios web de un proveedor de servicio (bloque 602). Por ejemplo, el dispositivo de cómputo 104 de la Figura 2 puede ejecutar un módulo de provisión 120 que limita el acceso a servicios web particulares 116(w) a través de listas de inclusión y exclusión. En otro ejemplo, el módulo de provisión 120 limita la ejecución a módulos que se configuran para acceder a sitios web particulares y no a otros sitios web. También se contempla una variedad de otros ejemplos. Al menos una porción de un precio de compra el dispositivo de cómputo se subsidia (bloque 604). Por ejemplo, el proveedor de servicio puede recolectar ingreso obtenido debido a interacción del dispositivo de cómputo con uno o más servicios web (bloque 606), tal como debido a anuncio, cuotas recolectadas de un usuario del dispositivo de cómputo para interacción con los servicios web, cuotas recolectadas del usuario para interactuar con el mismo dispositivo de cómputo (por ejemplo, pago por uso), y así sucesivamente. De esa forma, estas cuotas pueden utilizarse para balancear el precio de compra del dispositivo de cómputo, que alienta a los clientes a comprar el dispositivo de cómputo y subsecuentemente interactuar con los servicios web. El dispositivo de cómputo puede unirse a los servicios web en una variedad de formas, discusión adicional de lo cual puede encontrarse con relación a las siguientes figuras. La Figura 7 ilustra un procedimiento 700 en una implementación ilustrativa en donde se ejecuta un módulo en un dispositivo de cómputo que se une a la interacción con un servicio web particular. Un dispositivo de cómputo se inicia (bloque 702), tal como al recibir una entrada "encendida" de un usuario. Los módulos para cargarse en el dispositivo de cómputo se verifican al utilizar un módulo de provisión que es ejecutable a través de un ambiente de cómputo independiente (bloque 704). El módulo de provisión 120, por ejemplo, puede ejecutarse dentro del ICE 118 y verificar que los módulos 108(a) son auténticos, tal como al verificar firmas de los módulos 108(a) que utilizan un secreto 226 (por ejemplo, una clave de codificación críptica) almacenada en el dispositivo de cómputo 104, certificados, y así sucesivamente. Como anteriormente, los módulos 108(a) pueden configurarse en una variedad de formas, tal como un sistema operativo, módulo de acceso de red (por ejemplo, un navegador), y así sucesivamente. Un servicio web, por ejemplo, puede invocarse por uno de los módulos del dispositivo de cómputo (bloque 706), tal como por un navegador en respuesta a una entrada recibida de un usuario del dispositivo de cómputo, un módulo "inteligente" que tiene funcionalidad de acceso de red, y así sucesivamente. El servicio web reta al módulo (bloque 708), tal como al verificar el módulo al utilizar una clave de codificación críptica para determinar que el módulo se autoriza para interactuar con el servicio web. El servicio web también puede retar al ambiente de cómputo independiente (bloque 710), tal como al interactuar con el módulo de provisión 120 para verificar el dispositivo de cómputo que utiliza el secreto 226. Basándose en los retos, se hace una determinación si se permite el acceso de servicio web (bloque de decisión 712). Si se permite el acceso ("si" del bloque de decisión 712), el dispositivo de cómputo interactúa con el servicio web (714), tal como para leer correo electrónico, cargar imágenes, comprar medios (por ejemplo, canciones, películas), y así sucesivamente. Cuando no se permite acceso de servicio web ("no" del bloque de decisión 712), sin embargo, se forma una interfase de usuario de pago para comunicación al dispositivo de cómputo (bloque 716). La interfase de usuario de pago puede actuar como un "extremo frontal" de una entidad de pago (por ejemplo, el proveedor de servicio, servicio de recolección de tercera parte, y así sucesivamente) que se configura para recibir información de pago. Cuando se recibe información de pago válida ("si" del bloque de decisión 718), el dispositivo de cómputo interactúa con el servicio web (bloque 714). Si no ("no" del bloque es decisión 718, la interfase de usuario de pago aún es la salida (bloque 716)). Por ejemplo, la interfase de usuario de pago puede sacarse durante un modo de cierre de hardware, en el cual, los módulos 108(a) "fuera" del ambiente de cómputo independiente no se permite que se ejecuten, que incluyen un sistema operativo, hasta que se recibe información de pago y el dispositivo de cómputo se "abre". Una variedad diferentes técnicas pueden utilizarse "medir" el uso del dispositivo de cómputo, discusión adicional de lo cual puede encontrarse con relación a la siguiente figura. La Figura 8 ilustra un procedimiento 800 en una implementación ilustrativa en donde se utiliza un balance para manejar la funcionalidad del dispositivo de cómputo a través de la ejecución de un módulo de provisión en un ambiente de cómputo independiente. Como se describió previamente, un ambiente de cómputo independiente se proporciona y está contenido al menos en parte en uno o más componentes de hardware que un dispositivo de cómputo (bloque 802). El módulo de provisión en este ejemplo se configura para verificar módulos que se van a ejecutar en el dispositivo de cómputo.
Por ejemplo, una entrada puede recibirse para iniciar un módulo de reproducción de medios (por ejemplo, que se configura para sacar medios de audio y/o video) de un usuario. Con la detección de la entrada, el módulo de provisión ejecutado dentro del ambiente de cómputo independiente verifica el módulo de reproducción de medios (bloque 804), tal como al revisar firmas digitales, certificados, verificaciones criptográficas y comparación con listas de inclusión/exclusión, y así sucesivamente. Si se verifica exitosamente, el módulo de pago de medios se permite que se ejecute en el dispositivo de cómputo. El contenido se solicita de un servicio web de un proveedor de servicio a través del módulo de reproducción de medios (bloque 806), tal como una solicitud para descargar una película particular, canción, y así sucesivamente. En respuesta a la solicitud, el servicio web consulta al módulo de provisión por un balance (bloque 808), que pasa al servicio web. Por ejemplo, el módulo de provisión puede leer el balance 224 del almacenamiento seguro 214 y expone este al módulo de administrador 216 del proveedor de servicio 104. Cuando el balance es suficiente ("si" del bloque de decisión 810), el servicio web causa que el módulo de provisión reduzca el balance (bloque 812), tal como al pasar el contenido al módulo de provisión 120 que entonces se abre y se reduce el balance 224. El dispositivo de cómputo entonces puede presentar el contenido (bloque 814), tal como a través de ejecución del módulo de reproducción de medios. Cuando el balance es insuficiente ("no" del bloque de decisión 810), o la ¡nterfase de usuario de pago se saca (bloque 816). Por ejemplo, la interfase de usuario de pago puede dirigir a un usuario a un sitio web, a través de lo cual, el usuario puede enviar información de pago, tal como el nombre de usuario, contraseña, información de tarjeta de crédito, y así sucesivamente. Cuando el pago suficiente se recibe, el paquete de pago se crea para comunicarse al dispositivo de cómputo (bloque 818). El módulo de provisión entonces puede utilizar el paquete de pago para actualizar el balance (bloque 820), tal como al descodificar crípticamente el paquete de pago que utiliza el secreto 226 y actualizar el balance 224 basándose en instrucciones en el paquete. También se contempla una amplia variedad de otros casos para actualizar y utilizar un balance para controlar funcionalidad del dispositivo de cómputo 104, tal como un modelo de negocio de "pago por momento" en donde el balance disminuye en un periodo de tiempo durante la operación del dispositivo de cómputo 104 y el balance se actualiza para continuar el uso del dispositivo de cómputo 104. La Figura 9 ilustra un procedimiento 900 en una implementación ilustrativa en donde las listas de inclusión y exclusión se utilizan para manejar la funcionalidad del dispositivo de cómputo. Se verifica una solicitud para interactuar con funcionalidad particular (bloque 902). El módulo de provisión 120, por ejemplo, puede ejecutarse para verificar solicitudes para iniciar uno particular de los módulos 108(a), interactuar con un servicio web particular 116(w), y así sucesivamente.
La funcionalidad particular se identifica (bloque 904). El módulo de provisión 120, por ejemplo, puede identificar el servicio web 116(w) a través de una dirección de red, identificar un módulo 108(a) a través de verificación criptográfica, firmas digitales, certificados, y así sucesivamente. Entonces se hace una determinación por el módulo de provisión, que es ejecutable en el ambiente de cómputo independiente, si se permite acceso a la funcionalidad particular (bloque 906). El módulo de provisión 120, por ejemplo, puede implementar una política 122(p) que especifica que el acceso se va a manejar a través del uso de una lista de inclusión 218, lista de exclusión 220 y condiciones 222. El módulo de provisión determina si la funcionalidad particular se incluye en la lista de inclusión 218 (bloque de decisión 910). Si así ("si" del bloque decisión 908), se permite acceso a la funcionalidad particular (bloque 910). Cuando la funcionalidad particular no está en la lista de inclusión ("no" del bloque de decisión 908), se hace una determinación sí la funcionalidad particular está en una lista de exclusión (bloque de decisión 912). Si es así ("si" del bloque de decisión 912), se previene acceso de la funcionalidad particular (bloque 914). Cuando la funcionalidad particular no está en la lista de exclusión ("no" del bloque de decisión 912), se aplican una o más condiciones con respecto al acceso de la funcionalidad particular (bloque 912). Por ejemplo, acceso a funcionalidad no especificada en la lista puede permitirse por una cantidad de tiempo predeterminada (por ejemplo, un número de ciclos) para dar una oportunidad para que las listas se actualicen para especificar una política que dirige la funcionalidad particular. En otro por ejemplo, las condiciones pueden aplicarse basándose en la funcionalidad empleada, tal como un módulo que se configura para acceso de red que puede tener el acceso de red limitado, un módulo sin tal acceso puede permitirse para ejecutarse, y así sucesivamente. Una variedad de otros ejemplos también se contempla. La Figura 10 ilustra un procedimiento 1000 en una implementación ilustrativa en la cual se utilizan diferentes técnicas de identificación en conjunto con listas de inclusión/exclusión respectivas para manejar ejecución de un módulo. Se verifica una solicitud para iniciar un módulo particular (bloque 1002). El módulo particular se identifica al utilizar una primera técnica de identificación (bloque 1004). Por ejemplo, puede realizarse una verificación criptográfica del módulo particular. Entonces se hace una determinación si el módulo identificado está en una lista de inclusión (bloque 1006), y si es así, se permite el acceso a la funcionalidad particular (bloque 1008). Por lo tanto, en este ejemplo, se utiliza una técnica de identificación "precisa" para identificar el módulo para limitar acceso a otros módulos que intentan limitar los módulos referenciados en la lista de inclusión, tal como para prevenir piratería y así sucesivamente. Adicionalmente, la lista de inclusión, lista de exclusión, condiciones y/o técnicas de identificación pueden actualizarse (bloque 1010) durante operación del dispositivo de cómputo 104. Por ejemplo, el proveedor de servicio 102 puede comunicar actualizaciones para dirigir "nueva" funcionalidad, tal como copias pirateadas recientemente identificadas de módulos de aplicación. Cuando el módulo no está en la lista de inclusión ("no" del bloque decisión 1006), se identifica el módulo particular que utiliza una segunda técnica de identificación que es menos precisa que la primera técnica de identificación (bloque 1012). Por ejemplo, la primera técnica de identificación puede ser de verificación criptográfica y la segunda pueden ser firmas digitales, la primera puede ser un certificado verificado por tercera parte y la segunda puede ser un certificado auto firmado, y así sucesivamente. Entonces se hace una determinación si el módulo identificado que utiliza la segunda técnica está en la lista de exclusión (bloque de decisión 1014). Si es así ("si" del bloque de decisión 1014), el acceso al módulo particular se previene (bloque 1016). Si no ("no" del bloque de decisión 1014), se aplican una o más condiciones con respecto al acceso al módulo particular (bloque 1018), tal como limitar que espacios de memoria pueden accederse por el módulo, limitar acceso de red, permitir ejecución de la cantidad de tiempo predeterminada, y así sucesivamente. Aunque se describió el uso de diferentes técnicas de identificación con relación a un módulo particular, puede aplicarse el uso de diferentes técnicas de identificación y listas a una amplia variedad de otra funcionalidad, tal como servicios web y así sucesivamente.
Conclusión Aunque la invención se describió en lenguaje específico a 5 características estructurales y/o actos metodológicos, se debe entender que la invención definida en las reivindicaciones anexas no necesariamente se limita a las características o actos específicos descritos. En lugar de esto, las características específicas y actos se describen como formas ilustrativas para implementar la invención 10 reclamada. 15 20 •25

Claims (1)

  1. REIVINDICACIONES 1. - Un método que comprende ejecutar un módulo de provisión (120) en un ambiente de cómputo independiente (118) que está contenido al menos en parte en uno o más componentes de hardware de un dispositivo de cómputo (104) para unir acceso de red del dispositivo de cómputo (104) a uno o más servicios web. 2. - Un método de acuerdo con la reivindicación 1, en donde el módulo de provisión une el dispositivo de cómputo a uno o más servicios web a través del uso de una lista de inclusión. 3. - Un método de acuerdo con la reivindicación 1, en donde el módulo de provisión une el dispositivo de cómputo a uno o más , servicios web a través del uso de una lista de exclusión. 4. - Un método de acuerdo con la reivindicación 1, en donde: el dispositivo de cómputo se une para que el acceso a uno o más servicios web se haga disponible sin el uso de información personalmente identif icable de un usuario; y el acceso a otro servicio web se hace disponible a través del uso de información personalmente identif icable. 5.- Un método de acuerdo con la reivindicación 1, en donde el ambiente de cómputo independiente se protege de acceso no autorizado por otros módulos del dispositivo de cómputo que incluyen un sistema operativo. 6.- Un método que comprende: proporcionar un dispositivo de cómputo (104) unido al acceso de uno o más servicios web (116(w)) de un proveedor de servicio a través del uso de un módulo de provisión (120) que es ejecutable en un ambiente de cómputo independiente (118) contenido al menos en parte en uno o más componentes de hardware del dispositivo de cómputo (104); y subsidiar al menos una porción de un precio de compra del dispositivo de cómputo (104). 7. - Un método de acuerdo con la reivindicación 6, en donde el dispositivo de cómputo se une para que el acceso a uno o más servicios web se haga disponible sin el uso de información personalmente identificable de un usuario. 8. - Un método de acuerdo con la reivindicación 6, en donde el subsidio se realiza por el proveedor de servicio. 9. - Un método de acuerdo con la reivindicación 6, en donde el subsidio se realiza a través de la recolección de ingreso de anuncio por el proveedor de servicio. 10. - Un método de acuerdo con la reivindicación 6, en donde: el subsidio se realiza a través de la recolección de cuotas de un usuario del dispositivo de cómputo para mantener un balance en el dispositivo de cómputo; y el balance se utiliza por el módulo de provisión para manejar acceso a funcionalidad del dispositivo de cómputo. 11. - Un método de acuerdo con la reivindicación 6, en donde la unión se realiza a través del uso de una lista de inclusión que especifica servicios web que son permisibles para ser accedidos por el dispositivo de cómputo y una lista de exclusión que especifica servicios web que no se permiten acceder por el dispositivo de cómputo. 12. - Un dispositivo de cómputo (104) que comprende: un almacenamiento seguro (214) configurado para mantener: una lista de inclusión (218) que hace referencia a la funcionalidad que se permite acceder a través del dispositivo de cómputo; y una lista de exclusión (220) que hace referencia a la funcionalidad que no se permite acceder a través del dispositivo de cómputo; y uno o más componentes de hardware configurados para proporcionar un ambiente de cómputo independiente (118), en donde, un módulo de provisión (120) es ejecutable para identificar funcionalidad y determinar si se permite acceso a la funcionalidad identificada a través del uso de las listas de inclusión y exclusión. 13. - Un dispositivo de cómputo de acuerdo con la reivindicación 12, en donde: el almacenamiento seguro además se configura para mantener condiciones; y el módulo de provisión es ejecutable para determinar cómo se va a permitir el acceso a la funcionalidad identificada cuando la funcionalidad identificada no se le hace referencia por la lista de inclusión y la lista de exclusión. 14.- Un dispositivo de cómputo de acuerdo con la reivindicación 13, en donde las condiciones permiten que se ejecute la funcionalidad identificada en el procesador para un número específico de ciclos, después de los cuales, se bloquea la ejecución. 15. - Un dispositivo de cómputo de acuerdo con la reivindicación 13, en donde el ambiente de cómputo independiente se protege de acceso no autorizado por otros módulos del dispositivo de cómputo que incluyen un sistema operativo. 16. - Un dispositivo de cómputo acuerdo con la reivindicación 13, en donde la lista de inclusión o la lista de exclusión expira después de una cantidad de tiempo predeterminada, después de lo cual, se implementa un modo de cierre de hardware por el módulo de provisión. 17. - Un dispositivo de cómputo de acuerdo con la reivindicación 13, en donde la lista de inclusión o la lista de exclusión incluye una o más condiciones con respecto a la habilitación de la funcionalidad particular. 18. - Un método de acuerdo con la reivindicación 17, en donde al menos una de las condiciones específica: una cantidad de tiempo particular, durante la cual, se permite acceso a la funcionalidad particular; o que el pago se va a recolectar por un proveedor de servicio antes de habilitar la funcionalidad particular. 19. - Un método de acuerdo con la reivindicación 17, en donde al menos una de las condiciones especifica prueba de consumo de un anuncio. 20.- Un dispositivo de cómputo de acuerdo con la reivindicación 13, en donde: la funcionalidad particular se identifica utilizando una primera técnica para determinar si la funcionalidad particular se hace referencia en la lista de inclusión; la funcionalidad particular se identifica utilizando una segunda técnica para determinar si la funcionalidad particular se referencia en la lista de inclusión; y la primera técnica es diferente de la segunda técnica.
MX2008016351A 2006-06-29 2007-06-07 Ambiente de computo independiente y provision de funcionalidad de dispositivos de computo. MX2008016351A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/427,666 US20080005560A1 (en) 2006-06-29 2006-06-29 Independent Computation Environment and Provisioning of Computing Device Functionality
PCT/US2007/013533 WO2008005148A1 (en) 2006-06-29 2007-06-07 Independent computation environment and provisioning of computing device functionality

Publications (1)

Publication Number Publication Date
MX2008016351A true MX2008016351A (es) 2009-01-16

Family

ID=38878281

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2008016351A MX2008016351A (es) 2006-06-29 2007-06-07 Ambiente de computo independiente y provision de funcionalidad de dispositivos de computo.

Country Status (8)

Country Link
US (1) US20080005560A1 (es)
EP (1) EP2033110A4 (es)
CN (1) CN101479716A (es)
BR (1) BRPI0712867A2 (es)
MX (1) MX2008016351A (es)
RU (1) RU2008152079A (es)
TW (1) TW200822654A (es)
WO (1) WO2008005148A1 (es)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7539647B2 (en) * 2005-08-25 2009-05-26 Microsoft Corporation Using power state to enforce software metering state
US8121957B1 (en) 2007-10-01 2012-02-21 Google Inc. Discrete verification of payment information
EP2235657B1 (en) * 2007-12-21 2014-11-26 Motorola Mobility LLC System and method for preventing unauthorised use of digital media
US9219603B2 (en) * 2008-01-09 2015-12-22 International Business Machines Corporation System and method for encryption key management in a mixed infrastructure stream processing framework
US20090288071A1 (en) * 2008-05-13 2009-11-19 Microsoft Corporation Techniques for delivering third party updates
US8522015B2 (en) * 2008-06-27 2013-08-27 Microsoft Corporation Authentication of binaries in memory with proxy code execution
US8572692B2 (en) * 2008-06-30 2013-10-29 Intel Corporation Method and system for a platform-based trust verifying service for multi-party verification
US8484451B2 (en) * 2010-03-11 2013-07-09 St-Ericsson Sa Method and apparatus for software boot revocation
CN101872305B (zh) * 2010-06-08 2013-01-09 用友软件股份有限公司 Ui表现和业务逻辑分离方法和系统
US8700895B1 (en) 2010-06-30 2014-04-15 Google Inc. System and method for operating a computing device in a secure mode
US9118666B2 (en) 2010-06-30 2015-08-25 Google Inc. Computing device integrity verification
US9009856B2 (en) * 2011-12-16 2015-04-14 Dell Products L.P. Protected application programming interfaces
US9811827B2 (en) 2012-02-28 2017-11-07 Google Inc. System and method for providing transaction verification
US9800647B1 (en) * 2013-11-06 2017-10-24 Veritas Technologies Llc Systems and methods for provisioning computing systems with applications
US9401954B2 (en) * 2013-11-06 2016-07-26 International Business Machines Corporation Scaling a trusted computing model in a globally distributed cloud environment
US10320790B1 (en) * 2014-09-02 2019-06-11 Amazon Technologies, Inc. Temporarily providing a software product access to a resource
US9607165B2 (en) * 2015-02-13 2017-03-28 Red Hat Israel, Ltd. Watchdog code for virtual machine functions
US10409734B1 (en) * 2017-03-27 2019-09-10 Symantec Corporation Systems and methods for controlling auxiliary device access to computing devices based on device functionality descriptors

Family Cites Families (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69330691T2 (de) * 1992-06-03 2002-07-04 Sun Microsystems, Inc. Dynamisch konfigurierbares Kernsystem
US5412575A (en) * 1993-10-07 1995-05-02 Hewlett-Packard Company Pay-per-use access to multiple electronic test capabilities
US6363436B1 (en) * 1997-01-27 2002-03-26 International Business Machines Corporation Method and system for loading libraries into embedded systems
US5826090A (en) * 1997-03-17 1998-10-20 International Business Machines Corporation Loadable hardware support
US6272636B1 (en) * 1997-04-11 2001-08-07 Preview Systems, Inc Digital product execution control and security
US20050203835A1 (en) * 1998-01-30 2005-09-15 Eli Nhaissi Internet billing
US6243692B1 (en) * 1998-05-22 2001-06-05 Preview Software Secure electronic software packaging using setup-external unlocking module
US6357007B1 (en) * 1998-07-01 2002-03-12 International Business Machines Corporation System for detecting tamper events and capturing the time of their occurrence
US6327652B1 (en) * 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
US6499110B1 (en) * 1998-12-23 2002-12-24 Entrust Technologies Limited Method and apparatus for facilitating information security policy control on a per security engine user basis
US7171686B1 (en) * 1998-12-28 2007-01-30 Nortel Networks Corporation Operating system extension to provide security for web-based public access services
US6449110B1 (en) * 1999-02-03 2002-09-10 Cirrus Logic, Inc. Optimizing operation of a disk storage system by increasing the gain of a non-linear transducer and correcting the non-linear distortions using a non-linear correction circuit
US6618810B1 (en) * 1999-05-27 2003-09-09 Dell Usa, L.P. Bios based method to disable and re-enable computers
US20010034762A1 (en) * 1999-12-08 2001-10-25 Jacobs Paul E. E-mall software and method and system for distributing advertisements to client devices that have such e-mail software installed thereon
US7085928B1 (en) * 2000-03-31 2006-08-01 Cigital System and method for defending against malicious software
US6810438B1 (en) * 2000-04-05 2004-10-26 Microsoft Corporation Method for enabling value-added feature on hardware devices using a confidential mechanism to access hardware registers in a batch manner
US6985946B1 (en) * 2000-05-12 2006-01-10 Microsoft Corporation Authentication and authorization pipeline architecture for use in a web server
US7024696B1 (en) * 2000-06-14 2006-04-04 Reuben Bahar Method and system for prevention of piracy of a given software application via a communications network
AU728317B3 (en) * 2000-06-15 2001-01-04 Alan Robert Richards A rental appliance hiring system
US20020147633A1 (en) * 2000-06-19 2002-10-10 Kambiz Rafizadeh Interactive advertisement and reward system
US20020042882A1 (en) * 2000-10-10 2002-04-11 Dervan R. Donald Computer security system
US7062567B2 (en) * 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
US7028184B2 (en) * 2001-01-17 2006-04-11 International Business Machines Corporation Technique for digitally notarizing a collection of data streams
US20020108054A1 (en) * 2001-02-02 2002-08-08 Moore Christopher S. Solid-state memory device storing program code and methods for use therewith
US7392541B2 (en) * 2001-05-17 2008-06-24 Vir2Us, Inc. Computer system architecture and method providing operating-system independent virus-, hacker-, and cyber-terror-immune processing environments
US7069330B1 (en) * 2001-07-05 2006-06-27 Mcafee, Inc. Control of interaction between client computer applications and network resources
US7925894B2 (en) * 2001-07-25 2011-04-12 Seagate Technology Llc System and method for delivering versatile security, digital rights management, and privacy services
US7047565B2 (en) * 2001-10-31 2006-05-16 International Business Machines Corporation Method and system for capturing in-service date information
WO2003058410A1 (en) * 2001-12-28 2003-07-17 Access Co., Ltd. Usage period management system for applications
US6947723B1 (en) * 2002-01-14 2005-09-20 Cellco Partnership Postpay spending limit using a cellular network usage governor
US7571143B2 (en) * 2002-01-15 2009-08-04 Hewlett-Packard Development Company, L.P. Software pay-per-use pricing
US8271400B2 (en) * 2002-01-15 2012-09-18 Hewlett-Packard Development Company, L.P. Hardware pay-per-use
BR0303378A (pt) * 2002-03-14 2004-03-23 Koninkl Philips Electronics Nv Método e aparelho para descobrir automaticamente serviços de rede
US20040006610A1 (en) * 2002-07-05 2004-01-08 Anjali Anagol-Subbarao Architecture and method for configuration validation web service
US7334124B2 (en) * 2002-07-22 2008-02-19 Vormetric, Inc. Logical access block processing protocol for transparent secure file storage
US8051172B2 (en) * 2002-09-30 2011-11-01 Sampson Scott E Methods for managing the exchange of communication tokens
US7228545B2 (en) * 2003-01-23 2007-06-05 Hewlett-Packard Development Company, L.P. Methods and apparatus for managing the execution of a task among a plurality of autonomous processes
US7373497B2 (en) * 2003-01-23 2008-05-13 Hewlett-Packard Development Company, L.P. Methods and apparatus for rapidly activating previously inactive components in a computer system
US7146496B2 (en) * 2003-01-23 2006-12-05 Hewlett-Packard Development Company, L.P. Methods and apparatus for managing temporary capacity in a computer system
SE0300252D0 (sv) * 2003-02-03 2003-02-03 Hamid Delalat Blueguards
US7409544B2 (en) * 2003-03-27 2008-08-05 Microsoft Corporation Methods and systems for authenticating messages
US7653698B2 (en) * 2003-05-29 2010-01-26 Sonicwall, Inc. Identifying e-mail messages from allowed senders
JP2005070968A (ja) * 2003-08-21 2005-03-17 Toshiba Corp 情報処理装置およびプログラム
US7590837B2 (en) * 2003-08-23 2009-09-15 Softex Incorporated Electronic device security and tracking system and method
US7137016B2 (en) * 2003-09-10 2006-11-14 Intel Corporation Dynamically loading power management code in a secure environment
US20050160035A1 (en) * 2003-11-17 2005-07-21 Nobukazu Umamyo Credit transaction system
JP2005196286A (ja) * 2003-12-26 2005-07-21 Okuma Corp リアルタイムアプリケーションプログラムを動作可能なオペレーティングシステム及びその制御方法、共有ライブラリをロードする方法
US7281008B1 (en) * 2003-12-31 2007-10-09 Google Inc. Systems and methods for constructing a query result set
US7784063B2 (en) * 2004-01-09 2010-08-24 Hewlett-Packard Development Company, L.P. Method and apparatus for system caller authentication
US7210014B2 (en) * 2004-05-27 2007-04-24 Microsoft Corporation Alternative methods in memory protection
US7788713B2 (en) * 2004-06-23 2010-08-31 Intel Corporation Method, apparatus and system for virtualized peer-to-peer proxy services
US7444625B2 (en) * 2004-10-12 2008-10-28 Picsel (Research) Limited Concurrent code loading mechanism
US20060165227A1 (en) * 2004-11-15 2006-07-27 Microsoft Corporation System and method for distribution of provisioning packets
US8464348B2 (en) * 2004-11-15 2013-06-11 Microsoft Corporation Isolated computing environment anchored into CPU and motherboard
US7853927B2 (en) * 2005-02-03 2010-12-14 Hewlett-Packard Development Company, L.P. Methods and tools for executing and tracing user-specified kernel instructions
EP1696321A1 (en) * 2005-02-23 2006-08-30 Deutsche Thomson-Brandt Gmbh Method and apparatus for executing software applications
JP2006236193A (ja) * 2005-02-28 2006-09-07 Fujitsu Ltd 起動プログラム実行方法、デバイス、記憶媒体及びプログラム
DE102005014524B3 (de) * 2005-03-30 2006-12-07 Siemens Ag Verfahren zur Abwehr unerwünschter Telefonwerbung für Kommunikationsnetze
US7779073B2 (en) * 2005-03-31 2010-08-17 British Telecommunications Plc Computer network
US8898162B2 (en) * 2005-04-01 2014-11-25 International Business Machines Corporation Methods, systems, and computer program products for providing customized content over a network
US20060236084A1 (en) * 2005-04-15 2006-10-19 Dune-Ren Wu Method and system for providing an auxiliary bios code in an auxiliary bios memory utilizing time expiry control
US8098823B2 (en) * 2005-05-03 2012-01-17 Ntt Docomo, Inc. Multi-key cryptographically generated address
US20090222907A1 (en) * 2005-06-14 2009-09-03 Patrice Guichard Data and a computer system protecting method and device
US9286388B2 (en) * 2005-08-04 2016-03-15 Time Warner Cable Enterprises Llc Method and apparatus for context-specific content delivery
US20070143159A1 (en) * 2005-12-16 2007-06-21 Dillard Robin A R System and method for outcomes-based delivery of services
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
CA2647250A1 (en) * 2006-03-24 2008-11-01 Metabank Information management system and method
US8190682B2 (en) * 2006-03-31 2012-05-29 Amazon Technologies, Inc. Managing execution of programs by multiple computing systems
US8572266B2 (en) * 2006-04-03 2013-10-29 Disney Enterprises, Inc. Group management and graphical user interface for associated electronic devices
US20070293169A1 (en) * 2006-06-14 2007-12-20 Maggio Frank S Method for controlling advertising content in an automobile
GB2450144A (en) * 2007-06-14 2008-12-17 Cvon Innovations Ltd System for managing the delivery of messages
US20080319841A1 (en) * 2007-06-21 2008-12-25 Robert Ian Oliver Per-Machine Based Shared Revenue Ad Delivery Fraud Detection and Mitigation
US8730946B2 (en) * 2007-10-18 2014-05-20 Redshift Internetworking, Inc. System and method to precisely learn and abstract the positive flow behavior of a unified communication (UC) application and endpoints
US20100058446A1 (en) * 2008-08-26 2010-03-04 Thwaites Richard D Internet monitoring system

Also Published As

Publication number Publication date
RU2008152079A (ru) 2010-07-10
EP2033110A4 (en) 2012-01-18
BRPI0712867A2 (pt) 2013-04-24
TW200822654A (en) 2008-05-16
US20080005560A1 (en) 2008-01-03
CN101479716A (zh) 2009-07-08
WO2008005148A1 (en) 2008-01-10
EP2033110A1 (en) 2009-03-11

Similar Documents

Publication Publication Date Title
MX2008016351A (es) Ambiente de computo independiente y provision de funcionalidad de dispositivos de computo.
US12361408B2 (en) Systems and methods for transaction management in NFT-directed environments
CN101292248B (zh) 在检测到非期望状态后进入特殊pc模式的方法和计算机
US9224168B2 (en) Tuning product policy using observed evidence of customer behavior
US7380275B2 (en) Secure and backward-compatible processor and secure software execution thereon
US7614087B2 (en) Apparatus, method and computer program for controlling use of a content
KR102030643B1 (ko) 전자 라이센스 관리
US8176564B2 (en) Special PC mode entered upon detection of undesired state
KR102873469B1 (ko) 정책 적용을 위한 가상 환경 유형 검증
US20090113397A1 (en) Dynamic, secure software tagging for software asset management with respect to deployment, configuration, and usage
MX2007005657A (es) Medicion delicada de uso de computadora.
US10749698B2 (en) Feature-aware software usage metering
MX2007005656A (es) Ambiente de computo aislado anclado a un cpu y tarjeta madre.
US20100332320A1 (en) Systems and Methods for Providing Conditional Authorization to Operate Licensed Software
US20090150236A1 (en) Digital asset management system and method
US20100324983A1 (en) System and Method for Media Distribution
WO2007094946A1 (en) Disaggregated secure execution environment
US8103592B2 (en) First computer process and second computer process proxy-executing code on behalf of first process
US8112798B2 (en) Hardware-aided software code measurement
US20110307393A1 (en) Distributed customer support credits
US20130145112A1 (en) Time managed read and write access to a data storage device
US7756893B2 (en) Independent computation environment and data protection
US20070271597A1 (en) BIOS Based Secure Execution Environment
CN117914597A (zh) 平台软件授权共享方法、装置、存储介质及电子设备

Legal Events

Date Code Title Description
FA Abandonment or withdrawal