ES2770006T3 - Método para gestionar una aplicación - Google Patents

Método para gestionar una aplicación Download PDF

Info

Publication number
ES2770006T3
ES2770006T3 ES16760730T ES16760730T ES2770006T3 ES 2770006 T3 ES2770006 T3 ES 2770006T3 ES 16760730 T ES16760730 T ES 16760730T ES 16760730 T ES16760730 T ES 16760730T ES 2770006 T3 ES2770006 T3 ES 2770006T3
Authority
ES
Spain
Prior art keywords
fingerprint
application
server
credentials
dfp
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES16760730T
Other languages
English (en)
Inventor
Milas Fokle
Benoit Gonzalvo
Guillaume Huysmans
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thales DIS France SA
Original Assignee
Thales DIS France SA
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 Thales DIS France SA filed Critical Thales DIS France SA
Application granted granted Critical
Publication of ES2770006T3 publication Critical patent/ES2770006T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/50Service provisioning or reconfiguring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Facsimiles In General (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

Un método para gestionar una aplicación (A1), en donde dicha aplicación (A1) incluye dos partes: una parte genérica (BT) y una parte adicional (P1), instalándose dicha parte genérica (BT) en un dispositivo (DE1), comprendiendo dicho método las etapas: - el dispositivo (DE1) obtiene una huella digital (DFP) del dispositivo (DE1) e inicia una autenticación de un usuario del dispositivo (DE1) y, en caso de una autenticación satisfactoria, envía a un servidor (SV1) una petición (R1) para obtener la parte adicional (P1), comprendiendo dicha petición (R1) bien credenciales (UC) asociadas con el usuario, bien una referencia del usuario, la huella digital (DFP) y una referencia (AppID) de la aplicación (A1), - el servidor (SV1) identifica la parte adicional (P1), genera una parte cifrada (EP1) de la parte adicional (P1) utilizando una clave basada tanto en las credenciales (UC) como en la huella digital (DFP) y construye un programa (AP1) de autodescifrado configurado para descifrar la parte cifrada (EP1), - el dispositivo (DE1) recibe la parte cifrada (EP1) y el programa (AP1) de autodescifrado desde el servidor (SV1), - el dispositivo (DE1) obtiene la huella digital (DFP) y las credenciales (UC) y recupera la parte adicional (P1) ejecutando el programa (AP1) de autodescifrado con dichas huella digital (DFP) y credenciales (UC) como parámetros de entrada.

Description

DESCRIPCIÓN
Método para gestionar una aplicación
(Campo de la invención)
La presente invención se refiere a métodos para gestionar aplicaciones. En particular, se refiere a métodos para gestionar aplicaciones destinadas a ser ejecutadas de forma segura en dispositivos.
(Antecedentes de la invención)
En el contexto de aplicación para dispositivos portátiles, cada vez se instalan más aplicaciones de software. Algunas de estas aplicaciones permiten acceder a datos o servicios sensibles, como el pago móvil por ejemplo. Existe el riesgo de que una persona malévola duplique una aplicación de software de un dispositivo a otro y utilice la aplicación para transacciones fraudulentas.
Existe la necesidad de aumentar la protección de las aplicaciones de software en los dispositivos.
El documento US 2014/0099925 A1 divulga un método para actualizar componentes del sistema operativo de un aparato inalámbrico.
(Compendio de la invención)
La invención está definida por las reivindicaciones 1, 6 y 10.
Un objeto de la invención es solucionar el problema técnico antes mencionado.
Un objeto de la presente invención es un método para gestionar una aplicación que incluye tanto una parte genérica como una parte adicional. La parte genérica está instalada en un dispositivo. El método comprende las siguientes etapas:
- el dispositivo obtiene una huella digital del dispositivo e inicia una autenticación de un usuario del dispositivo y, en caso de una autenticación satisfactoria, envía a un servidor una petición para obtener la parte adicional, comprendiendo la petición bien credenciales asociadas con el usuario, bien una referencia del usuario, la huella digital y una referencia de la aplicación,
- el servidor identifica la parte adicional, genera una parte cifrada de la parte adicional utilizando una clave basada tanto en las credenciales como en la huella digital y construye un programa de autodescifrado configurado para descifrar la parte cifrada,
- el dispositivo recibe la parte cifrada y el programa de autodescifrado,
- el dispositivo obtiene la huella digital y las credenciales y recupera la parte adicional ejecutando el programa de autodescifrado con dichas huella digital y credenciales como parámetros de entrada.
Ventajosamente, el dispositivo puede almacenar la parte cifrada y el programa de autodescifrado en su memoria no volátil, el dispositivo puede obtener la huella digital e iniciar una autenticación del usuario y, en caso de una autenticación satisfactoria, el dispositivo puede obtener las credenciales y ejecutar el programa de autodescifrado en cuanto vaya a ejecutarse la parte adicional.
Ventajosamente, el dispositivo puede obtener la huella digital del dispositivo y una referencia de usuario y puede enviar a un servidor de control una petición de uso que comprenda las credenciales o una referencia del usuario, la huella digital y la referencia de la aplicación. El servidor de control puede comprobar si el usuario tiene permiso para ejecutar la aplicación y envía un resultado que refleja la comprobación al dispositivo. El dispositivo puede autorizar o no la ejecución de la aplicación dependiendo del resultado recibido.
Ventajosamente, el dispositivo puede tener un entorno de tiempo de ejecución variable. La petición puede comprender una característica que refleje el estado del entorno de tiempo de ejecución actual y la petición puede enviarse en cuanto vaya a ejecutarse la parte adicional.
Ventajosamente, el servidor puede seleccionar dinámicamente un algoritmo de cifrado entre una pluralidad de algoritmos de cifrado para generar la parte cifrada.
Otro objeto de la presente invención es un dispositivo capaz de comunicarse con un servidor. El dispositivo está configurado para recibir e instalar una parte genérica de una aplicación. El dispositivo comprende un agente configurado para obtener una huella digital del dispositivo y para iniciar una autenticación de un usuario del dispositivo y, en caso de una autenticación satisfactoria, recuperar credenciales asociadas con el usuario. El agente está configurado para enviar al servidor una petición para obtener una parte adicional de la aplicación. La petición comprende las credenciales o una referencia del usuario, la huella digital y una referencia de la aplicación. El agente está configurado para recibir del servidor un programa de autodescifrado asociado a la aplicación y para recuperar la parte adicional ejecutando el programa de autodescifrado con la huella digital y las credenciales como parámetros de entrada.
Ventajosamente, el dispositivo puede estar configurado para almacenar la parte cifrada y el programa de autodescifrado en su memoria no volátil. El agente puede estar configurado para iniciar una autenticación del usuario y, en caso de una autenticación satisfactoria, obtener la huella digital y las credenciales y ejecutar el programa de autodescifrado en cuanto vaya a ejecutarse la parte adicional.
Ventajosamente, el agente puede estar configurado para enviar a un servidor de control una petición de uso que comprenda las credenciales o una referencia del usuario, la huella digital y la referencia de la aplicación. El agente puede estar configurado para autorizar o no la ejecución de la aplicación dependiendo de un resultado recibido del servidor de control en respuesta a la petición de uso.
Ventajosamente, el dispositivo tiene un entorno de tiempo de ejecución variable y el agente puede estar configurado para añadir a la petición una característica que refleje el estado actual del entorno de tiempo de ejecución variable. El agente puede estar configurado para enviar la petición en cuanto vaya a ejecutarse la parte adicional.
Otro objeto de la presente invención es un servidor capaz de participar en el despliegue de una aplicación que incluye dos partes: una parte genérica y una parte adicional. La parte genérica está previamente instalada en un dispositivo. El servidor comprende un agente de comprobación adaptado para recibir una petición para obtener la parte adicional. La petición comprende credenciales asociadas con un usuario del dispositivo o una referencia de un usuario del dispositivo, una huella digital del dispositivo y una referencia de la aplicación. El servidor comprende un agente de descubrimiento adaptado para identificar la parte adicional. El servidor comprende un agente de generación adaptado para generar una parte cifrada de la parte adicional utilizando una clave basada tanto en las credenciales como en la huella digital. El servidor comprende un agente de cifrado adaptado para construir un programa de autodescifrado configurado para descifrar la parte cifrada y para enviar tanto la parte cifrada como el programa de autodescifrado en respuesta a la petición.
(Breve descripción de los dibujos)
Otras características y ventajas de la presente invención surgirán más claramente de una lectura de la siguiente descripción de varias realizaciones preferidas de la invención con referencia a los dibujos adjuntos correspondientes, en los que:
- la Figura 1 es un diagrama de flujo que muestra un ejemplo de instalación de una aplicación en un dispositivo según la invención,
- la Figura 2 es un diagrama de flujo que muestra un ejemplo de control de ejecución de una aplicación en un dispositivo según la invención,
- la Figura 3 muestra un ejemplo de diseño de aplicación gestionada según la invención,
- la Figura 4 muestra un ejemplo de arquitectura de un dispositivo configurado para gestionar aplicaciones según la invención, y
- la Figura 5 muestra un ejemplo de arquitectura de un servidor configurado para gestionar aplicaciones según la invención.
(Descripción detallada de las realizaciones preferidas)
La invención puede aplicarse a cualesquiera tipos de dispositivos capaces de comunicarse con un servidor remoto y destinados a ejecutar una aplicación de software. En particular, la invención es adecuada para aplicaciones de software que se ejecuten en dispositivos portátiles tales como teléfonos móviles, PC tipo tableta, gafas electrónicas, relojes electrónicos y pulseras electrónicas. También puede aplicarse a cualquier dispositivo como un vehículo, un contador, una máquina tragaperras, un televisor o un ordenador.
La Figura 1 muestra un ejemplo de método para gestionar una aplicación de software según la invención.
En este ejemplo, el dispositivo DE1 es un teléfono móvil que tiene su propio sistema operativo, como Android® por ejemplo.
La aplicación A1 de software está diseñada de manera que comprende dos partes complementarias: una parte genérica BT y una parte adicional P1.
Preferiblemente, la parte genérica BT puede ser una parte de software que pueda utilizarse para varias clases de aplicación. Puede comprender características y componentes comunes a varias aplicaciones.
La parte genérica BT está separada del sistema operativo del dispositivo DE1.
Ventajosamente, la parte genérica BT puede estar desarrollada como una secuencia inicial de instrucciones capaz de gestionar la descarga de la parte adicional P1.
En una primera etapa, un servidor SV2 envía la parte genérica BT al dispositivo DE1 y se instala la parte genérica BT en el dispositivo d E1. En una realización, la parte genérica BT puede recuperarse e instalarse libremente desde el servidor SV2.
En una segunda etapa, el dispositivo DE1 autentica el usuario. Por ejemplo, el dispositivo DE1 puede pedir al usuario que introduzca un código PIN o una contraseña específica a través de la pantalla/el teclado del dispositivo DE1. El dispositivo DE1 puede también obtener una medición biométrica del usuario. Como alternativa, el usuario puede autenticarse utilizando datos secretos recuperados de otro dispositivo en el que estén almacenados esos datos secretos. Este otro dispositivo puede ser un testigo USB o un testigo NFC (Near Field Communication (comunicación de campo próximo)), por ejemplo. En caso de una autenticación satisfactoria del usuario, el dispositivo DE1 obtiene credenciales UC del usuario.
En una tercera etapa, el dispositivo DE1 recupera una huella digital DFP del dispositivo DE1 y construye una petición R1 que comprende las credenciales UC del usuario, la huella digital DFP y una referencia AppID a la aplicación A1.
En otro ejemplo, las credenciales UC pueden derivarse de una credencial maestra, de manera que las credenciales UC utilizadas se diversifiquen para cada transacción. En este caso, el dispositivo DE1 recupera la credencial maestra de su propia memoria y genera un testigo derivado que se utiliza como credenciales UC.
En otro ejemplo, el dispositivo DE1 puede construir una petición R1 que comprenda una referencia (es decir un identificador) del usuario en lugar de las credenciales UC del usuario. En este caso, se supone que las credenciales UC están previamente almacenadas en ambos lados: el servidor y el dispositivo DE1.
En otro ejemplo, las credenciales UC pueden derivarse de los datos secretos utilizados (por ejemplo proporcionados) por el usuario para autenticarse ante el dispositivo DE1.
La referencia AppID puede ser un identificador o el nombre de la aplicación A1, por ejemplo. La huella digital DFP puede ser un número de serie del dispositivo DE1 o cualquier dato específico del dispositivo DE1.
Ventajosamente, la huella digital DFP puede generarse sobre la base de varias mediciones o elementos del dispositivo DE1. Por ejemplo, la huella digital DFP puede construirse a partir de una combinación del número (y/o nombre) de aplicaciones instaladas en el dispositivo DE1 y el tamaño de la memoria no volátil (NVM, por sus siglas en inglés) libre remanente del dispositivo DE1.
A continuación, el dispositivo DE1 envía la petición R1 a un servidor SV1 para obtener la parte adicional P1.
En una cuarta etapa, el servidor SV1 identifica la parte adicional P1 sobre la base de la referencia AppID. El servidor SV1 puede o generar o recuperar de un almacenamiento dedicado la parte adicional P1. A continuación, el servidor SV1 genera una parte cifrada EP1 de la parte adicional P1 utilizando como parámetros de entrada tanto las credenciales UC del usuario como la huella digital DFP. El servidor SV1 construye también un programa AP1 de autodescifrado diseñado para descifrar la parte cifrada EP1.
Como alternativa, el servidor SV1 puede calcular una clave basándose tanto en las credenciales UC del usuario como en la huella digital DFP y puede generar la parte cifrada EP1 utilizando esta clave calculada.
En una realización, el servidor SV1 puede utilizar un algoritmo de cifrado preestablecido para generar la parte cifrada EP1. Opcionalmente, el servidor SV1 puede seleccionar dinámicamente un algoritmo de cifrado entre varios algoritmos de cifrado para generar la parte cifrada EP1, de manera que el algoritmo de cifrado utilizado puede ser distinto de una vez a otra. Por ejemplo, el servidor SV1 puede seleccionar aleatoriamente bien un algoritmo AES (Advanced Encryption Standard (estándar de cifrado avanzado)), bien un algoritmo XOR.
El programa AP1 de autodescifrado es una aplicación de software autónoma que está configurada para descifrar la parte cifrada EP1. Necesita como parámetros de entrada tanto las credenciales UC del usuario como la huella digital DFP.
En una quinta etapa, el servidor SV1 envía tanto la parte cifrada EP1 como el programa AP1 de autodescifrado en respuesta a la petición R1. Preferiblemente, el dispositivo DE1 puede obtener estos dos elementos en un único paquete. Opcionalmente, estos dos elementos pueden ser recibidos en dos paquetes.
Desde este punto, hay dos opciones posibles. Bien el paquete (que comprende tanto la parte cifrada EP1 como el programa a P1 de autodescifrado) se almacena en la memoria no volátil del dispositivo DE1 y se utilizará más tarde, bien se utiliza inmediatamente para ejecutar la aplicación A1 sin ser almacenado de forma permanente en el dispositivo DE1.
En la primera opción, cada vez que la parte adicional P1 vaya a arrancar (es decir en cuanto vaya a ejecutarse la parte adicional P1), el dispositivo DE1 autentica el usuario y, en caso de una autenticación satisfactoria, obtiene de nuevo las credenciales UC del usuario y la huella digital DFP del dispositivo DE1. Luego, el dispositivo DE1 lanza la ejecución del programa AP1 de autodescifrado utilizando las credenciales UC del usuario y la huella digital DFP como parámetros de entrada para recuperar la parte adicional P1. El dispositivo DE1 almacena la parte adicional P1 en su memoria de trabajo, que se borra cuando se reinicia o se apaga el dispositivo DE1.
Gracias a esta opción, aunque el paquete (que comprende tanto la parte cifrada EP1 como el programa AP1 de autodescifrado) se copie ilegalmente del dispositivo DE1 a otro dispositivo, la parte adicional P1 no puede recuperarse en este otro dispositivo porque la huella digital será diferente y las credenciales del usuario no estarán disponibles.
En la segunda opción, el dispositivo DE1 recupera inmediatamente (es decir en cuanto se haya recibido el programa AP1 de autodescifrado) la parte adicional P1 ejecutando el programa AP1 de autodescifrado utilizando las credenciales UC del usuario y la huella digital DFP como parámetros de entrada sin una segunda autenticación del usuario. En la segunda opción, el dispositivo no almacena de manera permanente el programa AP1 de autodescifrado, la parte cifrada EP1 ni la parte adicional P1 en su memoria no volátil.
Opcionalmente, el dispositivo DE1 puede recuperar una característica RTP específica del estado actual de su entorno de tiempo de ejecución e insertar esta característica RTP en la petición R1. El servidor SV1 puede estar diseñado para generar una parte adicional P1 que pueda utilizarse sólo con el entorno de tiempo de ejecución actual del dispositivo DE1. En otras palabras, la parte adicional P1 se personaliza para que pueda ser utilizada sólo por el entorno de tiempo de ejecución actual del dispositivo DE1. Por ejemplo, la característica RTP puede ser la primera dirección del área de memoria asignada para ejecutar la parte adicional P1. El entorno de tiempo de ejecución del dispositivo DE1 se considera suficientemente variable para que la parte adicional P1 personalizada no pueda utilizarse posteriormente (es decir cuando haya cambiado el estado del entorno de tiempo de ejecución) en el dispositivo DE1 ni en otro dispositivo.
En este caso, la parte adicional P1 se personaliza de acuerdo con el estado del entorno de tiempo de ejecución de destino.
Para reforzar el nivel de seguridad, el servidor SV1 y el dispositivo DE1 pueden establecer un canal seguro antes de intercambiar la petición R1 y su respuesta. Por ejemplo, pueden comunicarse a través de un canal OTA (Over-The-Air (por el aire)) 3G o 4G o a través de una sesión HTTPS.
Aunque en los ejemplos descritos anteriormente los servidores SV1 y SV2 se muestran como dos entidades separadas, pueden estar unidos en un solo servidor o máquina.
La Figura 2 muestra un ejemplo de método para controlar la ejecución de una aplicación de software según la invención.
En este ejemplo, el dispositivo DE1 puede ser un PC tipo tableta y la aplicación A1 puede ser similar a la aplicación descrita en la Figura 1.
Este método se refiere a la primera opción anteriormente descrita (es decir cuando la parte cifrada EP1 y el programa AP1 de autodescifrado están almacenados de manera permanente en la memoria no volátil del dispositivo DE1).
En cuanto la parte adicional P1 esté a punto de ser ejecutada, el dispositivo DE1 autentica el usuario y, en caso de una autenticación satisfactoria, obtiene las credenciales UC del usuario. Por ejemplo, puede recuperar las credenciales UC desde un segundo dispositivo DE2 que almacene estas credenciales. Por ejemplo, el dispositivo DE2 puede ser un dispositivo capaz de comunicarse con el dispositivo DE1 a través de una sesión inalámbrica, como NFC, Wifi o Bluetooth®.
El dispositivo DE1 recupera una huella digital DFP del dispositivo DE1 y construye una petición R2 de uso, que comprende las credenciales UC del usuario (o una referencia del usuario), la huella digital DFP y una referencia AppID a la aplicación A1. Luego, el dispositivo DE1 envía la petición R2 de uso a un servidor SV3 para obtener autorización para ejecutar la parte adicional P1.
El servidor SV3 identifica la parte adicional P1 (y por lo tanto la aplicación A1) basándose en la AppID de referencia. Luego, el servidor SV3 comprueba si el usuario cuyas credenciales UC (o una referencia) se han recibido está autorizado para ejecutar la parte adicional P1 (es decir para ejecutar la aplicación A1) en el dispositivo correspondiente a la huella digital DFP. Esta comprobación puede estar basada en una cuenta asignada al usuario. Puede estar basada en un número limitado de ejecución o ejecuciones y/o un intervalo de tiempo.
Luego, el servidor SV3 envía al dispositivo DE1 una respuesta que refleja el resultado de la comprobación. En caso de una comprobación satisfactoria el dispositivo DE1 autoriza la ejecución de la parte adicional P1, de lo contrario deniega la ejecución de la parte adicional P1.
En un ejemplo, el programa AP1 de autodescifrado puede estar configurado para denegar el descifrado de la aplicación adicional P1 si el resultado proporcionado por el servidor SV3 es negativo.
En otro ejemplo, la parte genérica BT puede estar configurada para denegar la ejecución de la parte adicional P1 en caso de que el servidor SV3 envíe un mal resultado.
En un tercer ejemplo, el servidor SV3 puede enviar datos cuyo valor sea utilizado como parámetro de entrada por el programa AP1 de autodescifrado.
Opcionalmente, el servidor SV3 y el servidor SV1 de la Figura 1 pueden estar unidos en un solo servidor o máquina. La Figura 3 muestra un ejemplo de arquitectura de la aplicación A1 gestionada según la invención.
La aplicación A1 de software comprende dos partes requeridas para la ejecución correcta de la aplicación: una parte genérica BT y una parte adicional P1.
La parte genérica BT está diseñada específicamente para la aplicación A1. La parte genérica BT es específica de la aplicación A1.
La parte genérica BT puede considerarse como una aplicación incompleta que necesita la parte adicional P1 para convertirse enteramente en la aplicación A1 completa.
Hay que señalar que la parte genérica BT no es ni un elemento del sistema operativo ni una máquina virtual universal como Java RE. No es una librería compartible (como un DLL). Es un software autónomo que puede arrancarse independientemente y que requiere una parte adicional para ejecutar tratamientos deseados.
A la inversa, la parte adicional P1 no es un software autónomo que pueda arrancarse independientemente.
En un ejemplo, la parte genérica BT comprende características y datos aplicativos cuyo nivel de seguridad es bajo y la parte adicional P1 comprende características y datos aplicativos cuyo nivel de seguridad es alto.
En un ejemplo, la parte genérica BT comprende un gestor DM de descarga. El gestor DM de descarga está adaptado para gestionar la descarga de la parte adicional P1 desde un servidor remoto.
Gracias a la invención, la parte genérica BT puede registrarse como una aplicación única en una tienda de aplicaciones. Una flota de dispositivos puede obtener la parte genérica BT desde la tienda de aplicaciones y luego cargar de forma segura la parte adicional P1 personalizada para cada dispositivo.
La invención es aplicable a cualquier tipo de aplicación de software. Por ejemplo, la aplicación A1 puede estar dedicada a un control de acceso físico, identidad, pago, telecomunicaciones, fidelidad, o acceso a servicios como vídeos, fotos o música.
La Figura 4 muestra un ejemplo de arquitectura del dispositivo DE1 configurado para gestionar aplicaciones según la invención.
El dispositivo DE1 es similar al teléfono móvil de la Figura 1. El dispositivo DE1 incluye una memoria no volátil ME, que puede ser una memoria rápida (flash). El sistema operativo OS del dispositivo DE1, un agente AG y la parte genérica BT de la aplicación A1 están almacenados en la memoria no volátil ME. El dispositivo DE1 incluye también un entorno de tiempo de ejecución RTE, que puede comprender la parte adicional P1 (dibujada con línea de puntos) cuando ésta ha sido descifrada y está lista para el uso. El entorno de tiempo de ejecución RTE comprende una memoria de trabajo (por ejemplo RAM volátil).
El agente AG está configurado para recuperar una huella digital DFP del dispositivo DE1. Por ejemplo, el agente puede estar adaptado para leer un identificador (es decir el número de serie) del dispositivo DE1 o un identificador de un componente de hardware integrado únicamente en el dispositivo DE1 (como un disco duro o una pantalla, por ejemplo). El agente AG también está configurado para recuperar las credenciales UC asociadas a un usuario del dispositivo DE1. El agente AG también puede estar configurado para recuperar una referencia del usuario, como un identificador, un nombre o un número de abono. El agente AG está configurado para construir una petición R1 que comprenda las credenciales UC (o una referencia del usuario), la huella digital DFP y una referencia AppID de la aplicación A1. La referencia AppID puede ser un identificador de la aplicación A1, por ejemplo.
El agente AG también puede estar configurado para obtener unas credenciales maestras y para derivar las credenciales UC de las credenciales maestras (como testigo temporal o testigo de un solo uso, por ejemplo).
La petición R1 es una petición dirigida a obtener la parte adicional P1 de la aplicación A1 desde el servidor SV1. El agente AG está configurado también para recibir desde el servidor SV1 un programa AP1 de autodescifrado asociado a la aplicación A1 y para recuperar la parte adicional P1 ejecutando el programa AP1 de autodescifrado con la huella digital DFP y las credenciales UC como parámetros de entrada.
Ventajosamente, el agente AG puede estar configurado para obtener la huella digital DFP y las credenciales UC y para ejecutar el programa AP1 de autodescifrado en cuanto vaya a ejecutarse la parte adicional P1.
Ventajosamente, el agente AG puede estar configurado para comprobar la integridad del programa AP1 de autodescifrado recibido (y/o la parte cifrada EP1 recibida) y para obtener la huella digital DFP y las credenciales UC del usuario sólo en caso de una comprobación de integridad satisfactoria.
Ventajosamente, el agente AG puede estar configurado para enviar a un servidor SV3 de control una petición R2 de uso que comprenda las credenciales UC (o una referencia del usuario), la huella digital DFP y la referencia AppID de la aplicación A1. En este caso, el agente AG puede estar configurado también para autorizar o no la ejecución de la parte adicional P1 dependiendo del resultado recibido del servidor SV3 de control en respuesta a la petición R2 de uso.
Opcionalmente, el agente AG puede estar configurado para añadir a la petición R1 una característica RTP que refleje el estado actual del entorno de tiempo de ejecución r Te (es decir que sea específica del estado actual del RTE). El agente AG puede estar configurado también para enviar la petición R1 en cuanto vaya a ejecutarse la parte adicional P1.
En una realización, el agente AG y la parte genérica BT pueden estar unidos en una sola entidad. Por ejemplo, la parte genérica BT puede estar configurada para proporcionar todas las características del agente AG.
La Figura 5 muestra un ejemplo de arquitectura del servidor SV1 configurado para gestionar aplicaciones según la invención.
El servidor SV1 comprende un agente M1 de comprobación, un agente M2 de descubrimiento, un agente M3 de generación y un agente M4 de cifrado. El agente M1 de comprobación está configurado para recibir la petición R1 como se ha descrito en la Figura 1. El agente M2 de descubrimiento está configurado para identificar la parte adicional P1 basándose en la referencia AppID hallada en la petición R1. El agente M3 de generación está configurado para generar una parte cifrada EP1 de la parte adicional P1 utilizando tanto las credenciales UC del usuario (o la referencia del usuario) como la huella digital d Fp del dispositivo hallada en la petición R1.
El agente M4 de cifrado está diseñado para construir un programa AP1 de autodescifrado configurado para descifrar la parte cifrada EP1 y para enviar tanto la parte cifrada EP1 como el programa AP1 de autodescifrado en respuesta a la petición R1.
El agente M3 de generación y el agente M4 de cifrado pueden utilizar un algoritmo de cifrado preestablecido o seleccionar un algoritmo de cifrado entre varios algoritmos de cifrado disponibles.
Estos cuatro agentes pueden implementarse como diferentes componentes de software o combinarse en uno o varios componentes.
Según la invención, una vez instalada en el dispositivo DE1 la parte adicional P1, ésta puede utilizarse siempre que no se apague o se reinicie el dispositivo, aunque se pierda la conexión con el servidor SV1. En otras palabras, el dispositivo DE1 podría quedarse fuera de línea mientras se ejecuta la aplicación A1.
Gracias a la invención, la ejecución de la parte adicional P1 (y por lo tanto de la aplicación A1) está protegida contra intentos fraudulentos, dado que siempre se realiza una autenticación del usuario y antes de iniciar la ejecución se requieren tanto credenciales del usuario como una huella digital del dispositivo. La invención proporciona una solución anticlonación.
La invención permite proporcionar un paquete diversificado (es decir parte cifrada EP1 y programa AP1 de autodescifrado) a todo usuario legítimo, mientras se proporciona la misma aplicación (es decir servicio) a todo usuario autorizado.
Debe entenderse, dentro del alcance de la invención, que las realizaciones anteriormente descritas se proporcionan como ejemplos no limitativos. En particular, el dispositivo puede ejecutar varias aplicaciones protegidas con la invención, y las aplicaciones de software pueden estar escritas en cualesquiera lenguajes.
La arquitectura del dispositivo DE1 y la arquitectura del servidor SV1 se proporcionan sólo a modo de ejemplo.

Claims (10)

REIVINDICACIONES
1. Un método para gestionar una aplicación (A1), en donde dicha aplicación (A1) incluye dos partes: una parte genérica (BT) y una parte adicional (P1), instalándose dicha parte genérica (BT) en un dispositivo (DE1), comprendiendo dicho método las etapas:
- el dispositivo (DE1) obtiene una huella digital (DFP) del dispositivo (DE1) e inicia una autenticación de un usuario del dispositivo (DE1) y, en caso de una autenticación satisfactoria, envía a un servidor (SV1) una petición (R1) para obtener la parte adicional (P1), comprendiendo dicha petición (R1) bien credenciales (UC) asociadas con el usuario, bien una referencia del usuario, la huella digital (DFP) y una referencia (AppID) de la aplicación (A1),
- el servidor (SV1) identifica la parte adicional (P1), genera una parte cifrada (EP1) de la parte adicional (P1) utilizando una clave basada tanto en las credenciales (UC) como en la huella digital (DFP) y construye un programa (AP1) de autodescifrado configurado para descifrar la parte cifrada (EP1),
- el dispositivo (DE1) recibe la parte cifrada (EP1) y el programa (AP1) de autodescifrado desde el servidor (SV1),
- el dispositivo (DE1) obtiene la huella digital (DFP) y las credenciales (UC) y recupera la parte adicional (P1) ejecutando el programa (AP1) de autodescifrado con dichas huella digital (DFP) y credenciales (UC) como parámetros de entrada.
2. Un método según la reivindicación 1, en donde el dispositivo (DE1) almacena la parte cifrada (EP1) y el programa (AP1) de autodescifrado en su memoria no volátil, en donde el dispositivo (DE1) obtiene la huella digital (DFP) e inicia una autenticación del usuario y en donde, en caso de una autenticación satisfactoria, el dispositivo (DE1) obtiene las credenciales (UC) y ejecuta el programa (AP1) de autodescifrado en cuanto vaya a ejecutarse la parte adicional (P1).
3. Un método según la reivindicación 1, en donde el dispositivo (DE1) obtiene la huella digital (DFP) del dispositivo (DE1) y una referencia del usuario y envía a un servidor (SV3) de control una petición (R2) de uso que comprende las credenciales (UC) o una referencia del usuario, la huella digital (DFP) y la referencia (AppID) de la aplicación (A1),
- el servidor (SV3) de control comprueba si el usuario está autorizado para ejecutar la aplicación (A1) y envía un resultado que refleja la comprobación al dispositivo (DE1),
- el dispositivo (DE1) autoriza o no la ejecución de la aplicación (A1) dependiendo del resultado recibido.
4. Un método según la reivindicación 1, en donde el dispositivo (DE1) tiene un entorno de tiempo de ejecución variable, en donde dicha petición (R1) comprende una característica (RTP) que refleja el estado del entorno de tiempo de ejecución actual y en donde la petición (R1) se envía en cuando vaya a ejecutarse la parte adicional (P1).
5. Un método según la reivindicación 1, en donde el servidor (SV1) selecciona dinámicamente un algoritmo de cifrado entre una pluralidad de algoritmos de cifrado para generar la parte cifrada (EP1).
6. Un dispositivo (DE1) capaz de comunicarse con un servidor (SV1), estando el dispositivo (DE1) configurado para recibir e instalar una parte genérica (BT) de una aplicación (A1), comprendiendo dicho dispositivo (DE1):
- un agente (AG) configurado para obtener una huella digital (DFP) del dispositivo (DE1) y para iniciar una autenticación de un usuario del dispositivo (DE1), y, en caso de una autenticación satisfactoria, recuperar credenciales (UC) asociadas con el usuario, y para enviar a dicho servidor (SV1) una petición (R1) para obtener una parte adicional (P1) de la aplicación (A1), comprendiendo dicha petición (R1) las credenciales (UC) o una referencia del usuario, la huella digital (DFP) y una referencia (AppID) de la aplicación (A1), estando dicho agente (AG) configurado para recibir desde el servidor (SV1) una parte cifrada (EP1) y un programa (AP1) de autodescifrado asociado a la aplicación (A1), estando dicho programa (AP1) de autodescifrado configurado para descifrar la parte cifrada (EP1) y estando dicho agente (AG) configurado para recuperar la parte adicional (P1) ejecutando el programa (AP1) de autodescifrado con la huella digital (DFP) y las credenciales (UC) como parámetros de entrada.
7. Un dispositivo (DE1) según la reivindicación 6, estando el dispositivo (DE1) configurado para almacenar la parte cifrada (EP1) y el programa (AP1) de autodescifrado en su memoria no volátil y estando el agente (AG) configurado para iniciar una autenticación del usuario y, en caso de una autenticación satisfactoria, obtener la huella digital (DFP) y las credenciales (UC) y ejecutar el programa (AP1) de autodescifrado en cuanto vaya a ejecutarse la parte adicional (P1).
8. Un dispositivo (DE1) según la reivindicación 6, en donde el agente (AG) está configurado para enviar a un servidor (SV3) de control una petición (R2) de uso que comprende las credenciales (UC) o una referencia del usuario, la huella digital (DFP) y la referencia (AppID) de la aplicación (A1) y en donde el agente (AG) está configurado para autorizar o no la ejecución de la aplicación (A1) dependiendo de un resultado recibido del servidor (SV3) de control en respuesta a la petición (R2) de uso.
9. Un dispositivo (DE1) según la reivindicación 6, teniendo el dispositivo (DE1) un entorno de tiempo de ejecución variable, estando dicho agente (AG) configurado para añadir a la petición (R1) una característica (RTP) que refleja el estado actual del entorno de tiempo de ejecución variable y estando el agente (AG) configurado para enviar la petición (R1) en cuanto vaya a ejecutarse la parte adicional (P1).
10. Un servidor (SV1) capaz de participar en el despliegue de una aplicación (A1), siendo dicho servidor (SV1) un aparato electrónico, incluyendo dicha aplicación (A1) dos partes: una parte genérica (BT) y una parte adicional (P1), suponiéndose que dicha parte genérica (BT) está previamente instalada en un dispositivo (DE1), comprendiendo el servidor (SV1) un agente (M1) de comprobación adaptado para recibir una petición (R1) para obtener la parte adicional (P1), comprendiendo dicha petición (R1) credenciales (UC) asociadas con un usuario del dispositivo (DE1) o una referencia de un usuario del dispositivo (DE1), una huella digital (DFP) del dispositivo (DE1) y una referencia (AppID) de la aplicación (A1),
comprendiendo el servidor (SV1) un agente (M2) de descubrimiento adaptado para identificar la parte adicional (P1), un agente (M3) de generación adaptado para generar una parte cifrada (EP1) de la parte adicional (P1) utilizando una clave basada tanto en las credenciales (UC) como en la huella digital (DFP), y un agente (M4) de cifrado adaptado para construir un programa (AP1) de autodescifrado configurado para descifrar la parte cifrada (EP1) y para enviar al dispositivo (DE1) tanto la parte cifrada (EP1) como el programa (AP1) de autodescifrado en respuesta a la petición (R1).
ES16760730T 2015-10-16 2016-09-06 Método para gestionar una aplicación Active ES2770006T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP15306660.0A EP3157272A1 (en) 2015-10-16 2015-10-16 Method of managing an application
PCT/EP2016/070961 WO2017063790A1 (en) 2015-10-16 2016-09-06 Method of managing an application

Publications (1)

Publication Number Publication Date
ES2770006T3 true ES2770006T3 (es) 2020-06-30

Family

ID=54361031

Family Applications (1)

Application Number Title Priority Date Filing Date
ES16760730T Active ES2770006T3 (es) 2015-10-16 2016-09-06 Método para gestionar una aplicación

Country Status (7)

Country Link
US (1) US10939265B2 (es)
EP (2) EP3157272A1 (es)
JP (1) JP6517435B2 (es)
KR (1) KR102026279B1 (es)
CN (1) CN108141723B (es)
ES (1) ES2770006T3 (es)
WO (1) WO2017063790A1 (es)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111179522B (zh) * 2020-01-09 2022-09-02 中国建设银行股份有限公司 自助设备程序安装方法、装置及系统
CN111064757B (zh) * 2020-03-18 2020-06-19 腾讯科技(深圳)有限公司 应用访问方法、装置、电子设备以及存储介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7146645B1 (en) * 1999-12-30 2006-12-05 Nokia Mobile Phones Ltd. Dedicated applications for user stations and methods for downloading dedicated applications to user stations
JP2001331326A (ja) * 2000-05-19 2001-11-30 Sony Corp ソフトウェア供給システム、ソフトウェア供給方法及び記録媒体
CN1398406A (zh) * 2000-11-23 2003-02-19 皇家菲利浦电子有限公司 用于存储和再生音频和/或视频的设备
JP4220671B2 (ja) * 2000-12-27 2009-02-04 日立ソフトウエアエンジニアリング株式会社 暗号化データ通信方法並びにそのための暗号化データ生成システム及び記録媒体
US20050246285A1 (en) * 2004-04-01 2005-11-03 Board Of Regents, The University Of Texas System Software licensing using mobile agents
JP2007188324A (ja) * 2006-01-13 2007-07-26 Japan Wave:Kk データの不正使用防止方法
CN101150390B (zh) * 2006-09-22 2013-05-08 周卫 基于信任检测的应用指纹通信方法及系统
JP4678884B2 (ja) * 2008-01-29 2011-04-27 株式会社日立情報システムズ 可搬記憶媒体管理システム
JP2010124213A (ja) * 2008-11-19 2010-06-03 Toshiba Corp 画像形成装置、およびその制御方法
CN101820613B (zh) 2009-02-27 2014-03-19 中兴通讯股份有限公司 一种应用下载的系统和方法
US8555067B2 (en) * 2010-10-28 2013-10-08 Apple Inc. Methods and apparatus for delivering electronic identification components over a wireless network
KR101284676B1 (ko) * 2012-02-28 2013-08-23 건국대학교 산학협력단 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템 및 그 방법
JP5931649B2 (ja) * 2012-08-24 2016-06-08 株式会社日立製作所 動的暗号変更システム
DE102012220767A1 (de) * 2012-11-14 2014-05-28 Siemens Aktiengesellschaft Verfahren und Vorrichtungen zum Installieren von Gebäudesteuerungssoftware
US8959331B2 (en) * 2012-11-19 2015-02-17 At&T Intellectual Property I, Lp Systems for provisioning universal integrated circuit cards
KR101466606B1 (ko) * 2013-06-24 2014-12-01 바른소프트기술 주식회사 스마트 기기용 애플리케이션의 부정 사용 방지 시스템 및 방법
JP2015121921A (ja) * 2013-12-24 2015-07-02 キヤノン株式会社 サーバ装置、画像形成装置、サーバ装置の制御方法、画像形成装置の制御方法、及びプログラム
KR101532763B1 (ko) * 2013-12-26 2015-07-02 주식회사 엔젠소프트 어플리케이션 불법복제 방지 시스템 및 방법

Also Published As

Publication number Publication date
CN108141723B (zh) 2021-03-12
EP3363215B1 (en) 2019-10-30
US10939265B2 (en) 2021-03-02
US20180314810A1 (en) 2018-11-01
KR20180051618A (ko) 2018-05-16
KR102026279B1 (ko) 2019-09-27
EP3157272A1 (en) 2017-04-19
JP6517435B2 (ja) 2019-05-22
CN108141723A (zh) 2018-06-08
EP3363215A1 (en) 2018-08-22
JP2018530271A (ja) 2018-10-11
WO2017063790A1 (en) 2017-04-20

Similar Documents

Publication Publication Date Title
ES2917183T3 (es) Dispositivo móvil que tiene un entorno de ejecución seguro
ES2739896T5 (es) Acceso seguro a datos de un dispositivo
ES2953529T3 (es) Testigo de autenticación fuerte multiusuario
TWI674533B (zh) 授權將於目標計算裝置上執行之操作的設備
ES2904501T3 (es) Implementación de un almacenamiento seguro con protección de integridad
US9270466B2 (en) System and method for temporary secure boot of an electronic device
ES2819200T3 (es) Un método y sistema para proporcionar autenticación del acceso del usuario a un recurso informático a través de un dispositivo móvil utilizando múltiples factores de seguridad separados
KR101569275B1 (ko) 액세스 제어 클라이언트들의 저장 및 실행을 위한 방법 및 장치
ES2893529T3 (es) Dispositivo de comunicación móvil y método de funcionamiento del mismo
ES2819449T3 (es) Cripto servicios en remoto que utilizan TPM de servidor
TWI592051B (zh) 網路輔助之詐欺偵測裝置及方法
US10810312B2 (en) Rollback resistant security
CN111034120B (zh) 基于身份信息的加密密钥管理
ES2671011T3 (es) Procedimiento y sistema de gestión de un elemento de seguridad integrado eSE
US10936722B2 (en) Binding of TPM and root device
US11228421B1 (en) Secure secrets to mitigate against attacks on cryptographic systems
JP2017504267A (ja) セキュアブート中のキー抽出
JP6199712B2 (ja) 通信端末装置、通信端末関連付け方法、及びコンピュータプログラム
US9210134B2 (en) Cryptographic processing method and system using a sensitive data item
ES2770006T3 (es) Método para gestionar una aplicación
Areno Strengthening embedded system security with PUF enhanced cryptographic engines