METODO PARA AUTORIZAR LA EJECUCION DE CODIGO.
Método para autorizar la ejecución de código y para medir la ejecución de código en tiempo de ejecución.
De acuerdo con una implementación, se recibe una llamada que solicita la ejecución de un servicio protegido. Como respuesta, se solicita el permiso para la ejecución. Se analiza la solicitud de permiso. La concesión del permiso se basa en el análisis
Tipo: Patente de Invención. Resumen de patente/invención. Número de Solicitud: P200500450.
Solicitante: MICROSOFT CORPORATION.
Nacionalidad solicitante: Estados Unidos de América.
Dirección: ONE MICROSOFT WAY,REDMOND, WASHINGTON 98052.
Inventor/es: JOHNSON, BRUCE E., DEMSEY,SETH M, ZINTEL,WILLIAM MICHAEL.
Fecha de Solicitud: 28 de Febrero de 2005.
Fecha de Publicación: .
Fecha de Concesión: 1 de Julio de 2010.
Clasificación Internacional de Patentes:
- G06F1/00 FISICA. › G06 CALCULO; CONTEO. › G06F PROCESAMIENTO ELECTRICO DE DATOS DIGITALES (sistemas de computadores basados en modelos de cálculo específicos G06N). › Detalles no cubiertos en los grupos G06F 3/00 - G06F 13/00 y G06F 21/00 (arquitecturas de computadores con programas almacenados de propósito general G06F 15/76).
- G06F21/00N7T
Clasificación PCT:
- G06F1/00 G06F […] › Detalles no cubiertos en los grupos G06F 3/00 - G06F 13/00 y G06F 21/00 (arquitecturas de computadores con programas almacenados de propósito general G06F 15/76).
- G06F21/00 G06F […] › Disposiciones de seguridad para la protección de computadores, sus componentes, programas o datos contra actividades no autorizadas.
Fragmento de la descripción:
Método para autorizar la ejecución de código.
Campo técnico
La presente invención se refiere generalmente a la ejecución o realización medida de código.
Antecedentes
La gestión de los derechos digitales se ha venido centrando de manera generalizada en la protección del "contenido", tal como música, películas cinematográficas y otro material basado en datos objeto de derechos de propiedad. En particular, se han realizado investigaciones orientadas a diversas estrategias de cifrado que podrían emplearse para proteger dicho material de la copia y de otros usos que violan los acuerdos de licencia entre los proveedores de contenidos y los consumidores de los contenidos.
El código de software o programación ejecutable ha seguido tradicionalmente un modelo diferente en el cual un consumidor realiza una compra de programación (ya sea "empaquetada de forma comprimida", ya sea descargada), instala la programación en un sistema informático y da su conformidad a un acuerdo de licencia. En esta instancia, los sistemas y métodos convencionales permiten al consumidor ejecutar cualquier parte del código contenido en la adquisición de programación hasta cualquier grado que se desee (compatible con el acuerdo de licencia, que, típicamente, prescribe el número de máquinas en el que se puede instalar la programación).
El modelo de licencia actual para programación ejecutable que se describe en lo anterior proporciona al consumidor una elección de "todo o nada" a la hora de tomar una decisión de compra de una programación -es decir, aceptar la totalidad del coste y del beneficio, o bien renunciar al coste y al beneficio. De esta forma, el análisis de la compra típicamente implica una decisión por lo que respecta a si el usuario prevé sobrepasar un nivel umbral de utilización. En caso de que sea así, se realiza una compra; si no, no se realiza ninguna compra. En algunas situaciones, este modelo puede resultar insatisfactorio para los productores de programación, ya que se pierden ventas en el caso de que los consumidores declinen realizar comprar al prever que su uso de un producto de programación será bajo. Este modelo resulta similarmente insatisfactorio para los consumidores, puesto que pueden estimar de forma inexacta su necesidad de un producto de programación. Tal error de cálculo puede resultar, bien en una compra infrautilizada, o bien en necesidades no satisfechas que eran mayores de lo previsto. Es más, incluso cuando el consumidor estima correctamente que el uso será pequeño y renuncia a la compra, se produce insatisfacción debido a que los consumidores no han visto satisfechas sus necesidades de productos de programación.
En consecuencia, existe la necesidad de técnicas alternativas para el funcionamiento bajo licencia de código de software o programación.
Sumario
Se describen sistemas y métodos par medir la realización o ejecución de código durante el tiempo de ejecución. De acuerdo con una implementación, se recibe una llamada que solicita la ejecución de un servicio protegido. Como respuesta, se solicita permiso para la ejecución. Se analiza la petición de permiso. La concesión del permiso se basa en el análisis.
Breve descripción de los dibujos
La descripción detallada se expone en relación con los dibujos que se acompañan. En los dibujos, el dígito o dígitos más a la izquierda de un número de referencia identifican la figura en la que él número de referencia aparece por primera vez. El uso de los mismos números de referencia en diferentes figuras indica elementos similares o idénticos.
La Figura 1 ilustra un ejemplo de un dispositivo de ejecución de código, dentro del cual se muestran una aplicación a modo de ejemplo o librería de aplicación, una pluralidad de servicios protegidos y un dispositivo de medición.
La Figura 2 ilustra un segundo ejemplo de un dispositivo de ejecución de código, en el cual una estructura compuesta separa el dispositivo de ejecución de código del dispositivo de medición.
La Figura 3 es un diagrama de flujo que describe una implementación a modo de ejemplo de la ejecución de código medida, el cual muestra, en particular, un método para medir la ejecución de servicios protegidos.
La Figura 4 es un dispositivo de ejecución de código, proporcionado a modo de ejemplo y en el cual puede implementarse la ejecución medida de código.
Descripción detallada
Consideraciones generales
La siguiente explicación está dirigida a sistemas y métodos que miden la ejecución de código. Dichos sistemas y métodos pueden adaptarse a cualquier dispositivo de ejecución de código, tal como sistemas informáticos, teléfonos celulares y muchos otros. De acuerdo con una implementación, se configura una aplicación -o una pluralidad de aplicaciones organizadas como una librería- para que realice llamadas para solicitar el funcionamiento de uno o más servicios protegidos, que pueden estar configurados también como una librería. Los servicios protegidos pueden representar código ejecutable cuyo funcionamiento y capacidades operativas se desea controlar, tal como por razones relativas a la facturación, a la concesión de licencias de programación, a la seguridad, a la protección de los niños, o por otras razones. Como puede controlarse de manera independiente la ejecución de cada servicio protegido, la concesión de licencia sobre el código ejecutable puede hacerse "granular", es decir, pueden concederse licencias sobre pequeños bloques funcionales de código ejecutable, con lo que se proporciona una alternativa a la concesión de licencias sobre bloques más grandes de código. Esto puede procurar una valiosa herramienta de ventas para su uso por parte de los vendedores, ya que dicha herramienta permitirá a los consumidores obtener una licencia únicamente sobre el código que desean utilizar.
Al ser llamado por parte de una aplicación, un servicio protegido apela al dispositivo de medición para llevar a cabo un análisis que determine si la aplicación que llamó al servicio protegido tiene permiso para hacerlo. El permiso está, típicamente, gobernado por un contrato de servicios, que se evalúa a la vista de los datos de medida. Por ejemplo, el contrato de servicios puede permitir un cierto número de llamadas por parte de la aplicación al servicio protegido, quizá como una función del tiempo. En este caso, existirá un historial de las llamadas previas al servicio protegido, y quizá de los instantes de las llamadas previas, contenido en los datos de medida. El análisis del contrato de servicios y de los datos de medida por parte del dispositivo de medición da lugar a la determinación del permiso o el rechazo de la petición de la aplicación para la ejecución del servicio protegido. El servicio protegido se ejecuta entonces si se le permite, y devuelve un resultado a la aplicación.
Ejemplo de aparato
La Figura 1 ilustra un ejemplo de un dispositivo 100 de ejecución de código, el cual puede ser un sistema informático, un teléfono celular, una PDA, un dispositivo de entretenimiento (por ejemplo, una caja de equipo superior, una caja de cables, un reproductor de audio digital, un DVD, etc.) u otro dispositivo capaz de ejecutar programación. Una aplicación 102, o una librería de aplicaciones 102(1) a 102(N), se ha configurado para llevarse a cabo o ejecutarse en el dispositivo 100. La aplicación o aplicaciones pueden ser cualquier tipo de programación. Ejemplos de aplicaciones posibles incluyen programación de productividad de oficina configurada para ejecutarse en una estación de trabajo, o una estación de intercambio de mensajes de texto, configurada para ejecutarse en un teléfono celular. Un ejemplo de librería de aplicaciones 102(1) a 102(N) puede incluir, por ejemplo, una pluralidad de bloques funcionales asociados con un programa más grande, tal como una instalación de productividad de oficina.
La aplicación o aplicaciones (102) está(n) configurada(s) para efectuar llamadas a uno o más servicios protegidos 106(1) a 106(J). Los servicios protegidos están "protegidos" por cuanto que están sometidos a ejecución de código medida, como se desarrollará más exhaustivamente más adelante. Los servicios protegidos son rutinas de programación ejecutables que pueden ser configuradas para casi cualquier propósito. Por ejemplo, en el caso de que el dispositivo 100 de ejecución de código sea un teléfono celular, los servicios protegidos pueden soportar características cuyo funcionamiento ha de ser medido. En tal entorno, los servicios protegidos pueden soportar características...
Reivindicaciones:
1. Un método para autorizar la ejecución de código en un dispositivo de ejecución de código, que comprende:
un servicio protegido llamado recibe una llamada solicitando la ejecución de un servicio protegido dentro de una zona de tiempo de ejecución desde una aplicación llamante instalada en el dispositivo de ejecución de código;
solicitud de un permiso para la ejecución a un dispositivo de medición, por parte del servicio protegido llamado;
análisis de la solicitud de permiso y concesión del permiso, por parte del dispositivo de medición, basado en un perfil almacenado en forma de contrato comprendiendo el número de llamadas realizadas por la aplicación llamante en una zona de tiempo de ejecución;
análisis de la petición basándose en el perfil almacenado y datos de medida como entradas del dispositivo de medición;
actualización de los datos de medida para reflejar el análisis;
ejecución del servicio protegido llamado, en el caso de que el permiso se ha dado;
devolución de los resultados de la ejecución a la aplicación llamante; y
devolución de una notificación del fallo en la ejecución del servicio protegido a una aplicación que inició la llamada, en el caso de inexistencia de permiso.
2. El método de acuerdo con la reivindicación 1, en el cual el dispositivo de medición realiza el análisis dentro de una segunda zona de tiempo de ejecución, independiente de la primera zona de tiempo de ejecución.
3. El método de acuerdo con la reivindicación 2, en el cual las primera y segunda zonas de tiempo de ejecución residen en diferentes particiones de la memoria del dispositivo de ejecución de código.
4. El método de acuerdo con la reivindicación 2, en el cual la primera zona de tiempo de ejecución está situada en un primer dispositivo de computación, y la segunda zona de tiempo de ejecución está situada en un segundo dispositivo de computación.
5. El método de acuerdo con la reivindicación 1, en el cual solicitar el permiso comprende abrir una conexión segura entre el servicio protegido llamado y el dispositivo de medición configurado para llevar a cabo el análisis.
6. El método de acuerdo con la reivindicación 1, en el cual solicitar el permiso comprende enviar un mensaje cifrado desde el servicio protegido ubicado en la primera zona de tiempo de ejecución, a un dispositivo de medición contenido en la segunda zona de tiempo de ejecución.
7. Un medio legible por un procesador, que comprende instrucciones ejecutables por el procesador para autorizar la ejecución de un código, comprendiendo las instrucciones ejecutables por el procesador de instrucciones para:
un servicio protegido llamado recibe una llamada solicitando la ejecución de un servicio protegido dentro de una zona de tiempo de ejecución desde una aplicación llamante instalada en el dispositivo de ejecución de código;
servicio protegido llamado solicita un permiso para la ejecución a un dispositivo de medición;
dispositivo de medición analiza la solicitud de permiso y concede el permiso basado en un perfil almacenado en forma de contrato comprendiendo el número de llamadas realizadas por la aplicación llamante en una zona de tiempo de ejecución;
dispositivo de medición analiza la petición basándose en el perfil almacenado y datos de medida como entradas del mismo;
actualización de los datos de medida para reflejar el análisis;
ejecución del servicio protegido llamado, en el caso de que el permiso se ha dado;
devolución de los resultados de la ejecución a la aplicación llamante; y
devolución de una notificación del fallo en la ejecución del servicio protegido a una aplicación que inició la llamada, en el caso de inexistencia de permiso.
8. El medio legible por procesador, de acuerdo con la reivindicación 7, en el cual el dispositivo de medición opera dentro de una zona de tiempo de ejecución que es independiente de una zona de tiempo de ejecución dentro de la cual opera el servicio protegido.
9. El medio legible por procesador, de acuerdo con la reivindicación 7, en el cual solicitar autorización comprende instrucciones para abrir una conexión segura entre el servicio protegido y el dispositivo de medición.
10. El medio legible por procesador, de acuerdo con la reivindicación 7, en el cual la medición de la ejecución de código se lleva a cabo en un entorno de código gestionado.
11. El medio legible por procesador, de acuerdo con la reivindicación 7, que comprende instrucciones adicionales para proteger las comunicaciones entre el servicio protegido y el dispositivo de medición con criptografía.
12. Un entorno de código gestionado, que comprende:
una aplicación configurada para consumir servicios procedentes de una librería de servicios protegidos;
un servicio protegido, situado dentro de la librería de servicios protegidos y configurado para recibir una solicitud desde la aplicación para su ejecución; y
un dispositivo de medición, configurado para devolver un código de admisión o un código de rechazo de la solicitud, basándose en reglas que gobiernan el funcionamiento del servicio protegido.
13. El entorno de código gestionado, de acuerdo con la reivindicación 12, en el cual el servicio protegido y el dispositivo de medición operan dentro de diferentes zonas de tiempo de ejecución.
14. El entorno de código gestionado, de acuerdo con la reivindicación 12, en el cual el dispositivo de medición comprende:
un dispositivo de refuerzo, configurado para una comunicación segura con el servicio protegido;
un contrato de servicios, configurado para suministrar las reglas que gobiernan el funcionamiento del servicio protegido al dispositivo de refuerzo; y
un almacenamiento seguro de datos de medida, configurado para suministrar datos históricos que reflejan el funcionamiento pasado del servicio protegido y de la aplicación, al dispositivo de refuerzo.
15. El entorno de código gestionado, de acuerdo con la reivindicación 12, en el cual el dispositivo de medición comprende:
un contrato de servicios, que contiene las reglas que gobiernan el funcionamiento del servicio protegido;
un almacenamiento seguro de datos de medición; y
un dispositivo de refuerzo, configurado para devolver el código de admisión o el código de rechazo, al:
16. Un dispositivo de ejecución de código para autorizar la ejecución de código, comprendiendo el dispositivo de ejecución de código:
una aplicación llamante llama a un servicio protegido llamado;
el servicio protegido llamado llama a un dispositivo de medición; y
el dispositivo de medición analiza un contrato con el fin de determinar si se ha de permitir o prohibir el uso del servicio protegido por parte de la aplicación.
17. El dispositivo de ejecución de código de acuerdo con la reivindicación 16, que comprende adicionalmente, en el caso de que se haya determinado que la admisión es lo apropiado:
el servicio protegido llamado ejecuta la capacidad operativa solicitada por la aplicación llamante; y
el servicio protegido llamado devuelve los resultados de la ejecución a la aplicación a la aplicación llamante.
18. El dispositivo de ejecución de código de acuerdo con la reivindicación 16, que comprende adicionalmente, en el caso de que se determine que el rechazo es lo apropiado, medios para devolver una notificación del rechazo a la aplicación llamante.
19. El dispositivo de ejecución de código de acuerdo con la reivindicación 16, en el cual los medios para analizar el contrato comprenden:
medios para analizar el contrato utilizando la identidad de la aplicación llamante, la identidad del servicio protegido llamado, premisas/requisitos contenidas en el contrato, así como los datos procedentes de un almacenamiento seguro de datos de medida, como entradas para el análisis; y
medios para actualizar el almacenamiento seguro de datos de medida con el fin de reflejar el análisis.
20. El dispositivo de ejecución de código de acuerdo con la reivindicación 16, en el cual los medios para llamar al dispositivo de medición comprenden:
medios para abrir una conexión segura entre el servicio protegido llamado y el dispositivo de medición; y
medios para hacer funcionar el servicio protegido llamado y el dispositivo de medición dentro de distintas zonas de tiempo de ejecución.
21. El dispositivo de ejecución de código de acuerdo con la reivindicación 16, en el cual la medición se lleva a cabo en un entorno de código gestionado.
22. El dispositivo de ejecución de código de acuerdo con la reivindicación 16, que comprende:
una primera y una segunda zonas de tiempo de ejecución con un canal de comunicación segura entre ellas;
un servicio protegido, configurado para recibir una solicitud desde una aplicación para la ejecución del servicio protegido dentro de la primera zona de tiempo de ejecución; y
un dispositivo de medición, configurado para recibir la solicitud y operar dentro de la segunda zona de tiempo de ejecución, y para devolver un código de admisión o un código de rechazo en respuesta a la solicitud, al aplicar reglas a los datos de medida.
23. El dispositivo de ejecución de código de acuerdo con la reivindicación 22, en el cual el dispositivo de medición comprende:
un dispositivo de refuerzo, configurado para una comunicación segura con el servicio protegido;
un contrato de servicios, configurado para suministrar las reglas que gobiernan el funcionamiento del servicio protegido, al dispositivo de refuerzo; y
un almacenamiento seguro, dentro del cual están contenidos los datos de medida, de tal manera que el almacenamiento seguro está configurado para suministrar al dispositivo de refuerzo datos históricos que reflejan el funcionamiento pasado del servicio protegido.
24. El dispositivo de ejecución de código de acuerdo con la reivindicación 22, en el cual el dispositivo de medición está configurado para:
utilizar la identidad del servicio protegido y los datos procedentes de un almacenamiento seguro de datos de medida, como entrada para un análisis que proporciona un retorno del código de admisión o del código de rechazo; y
actualizar el almacenamiento seguro de datos de medida de manera que refleje el análisis.
25. El dispositivo de ejecución de código de acuerdo con la reivindicación 22, en el cual el dispositivo de ejecución de código es un teléfono celular.
26. El dispositivo de ejecución de código de acuerdo con la reivindicación 22, en el cual el dispositivo de ejecución de código está configurado para utilizarse dentro de un entorno de código gestionado.
27. El dispositivo de ejecución de código de acuerdo con la reivindicación 22, en el que el dispositivo de ejecución de código es un dispositivo compuesto, y en el cual el servicio protegido está contenido en una primera porción del dispositivo compuesto, y el dispositivo de medición está contenido en una segunda porción del dispositivo compuesto, y en el cual la primera porción del dispositivo compuesto está situada en posición alejada con respecto a la segunda porción del dispositivo compuesto.
28. El dispositivo de ejecución de código de acuerdo con la reivindicación 22, que comprende adicionalmente una librería de servicios protegidos, dentro de la cual está contenido el servicio protegido.
29. El dispositivo de ejecución de código de acuerdo con la reivindicación 22, que comprende adicionalmente una librería de aplicaciones dentro de la cual está contenida la aplicación.
Patentes similares o relacionadas:
MÉTODO PARA LA ELIMINACIÓN DEL SESGO EN SISTEMAS DE RECONOCIMIENTO BIOMÉTRICO, del 24 de Junio de 2020, de UNIVERSIDAD AUTONOMA DE MADRID: Método para eliminación del sesgo (por edad, etnia o género) en sistemas de reconocimiento biométrico, que comprende definir un conjunto de M muestras de Y personas diferentes […]
Sistema y método para una salida digital pervasiva de dispositivo a dispositivo, del 23 de Octubre de 2019, de Flexiworld Technologies, Inc: Un método de salida de datos para transmitir de forma inalámbrica, en uno o más dispositivos de salida, contenidos digitales a los que se accede mediante un […]
Método y programa de autenticación de usuario, y aparato de formación de imágenes, del 15 de Mayo de 2019, de RICOH COMPANY, LTD.: Un método de autenticación de usuario para un aparato de formación de imágenes que se puede conectar a través de una red a un aparato de […]
Derechos divididos en dominio autorizado, del 27 de Febrero de 2019, de KONINKLIJKE PHILIPS N.V: Un método para controlar el acceso a un elemento de contenido en un sistema que comprende un conjunto de dispositivos, constituyendo el conjunto […]
Método y programa de autenticación de usuario, y aparato de formación de imágenes, del 20 de Febrero de 2019, de RICOH COMPANY, LTD.: Un método de autenticación de usuario para un aparato de formación de imágenes que se puede conectar a través de una red a un aparato […]
Método y sistema para realizar una transacción y para realizar una verificación de acceso legítimo o uso de datos digitales, del 7 de Febrero de 2019, de Ward Participations B.V: Método para realizar una transacción electrónica entre una primera parte de transacción y una segunda parte de transacción usando un dispositivo electrónico operado […]
Método y sistema para realizar una transacción y para realizar una verificación de acceso legítimo o uso de datos digitales, del 16 de Enero de 2019, de Ward Participations B.V: Método para realizar una transacción electrónica entre una primera parte de transacción y una segunda parte de transacción usando un dispositivo […]
Aparato de formación de imágenes, método de borrado y método de gestión de disco duro, del 25 de Octubre de 2018, de RICOH COMPANY, LTD.: Un aparato de formación de imágenes que incluye unos recursos de soporte físico que se van a usar para un proceso de formación de imágenes, al menos un programa para llevar […]