ES2810204T3 - Sistema y método anticlonación - Google Patents

Sistema y método anticlonación Download PDF

Info

Publication number
ES2810204T3
ES2810204T3 ES13742108T ES13742108T ES2810204T3 ES 2810204 T3 ES2810204 T3 ES 2810204T3 ES 13742108 T ES13742108 T ES 13742108T ES 13742108 T ES13742108 T ES 13742108T ES 2810204 T3 ES2810204 T3 ES 2810204T3
Authority
ES
Spain
Prior art keywords
anticlon
machine
user device
app
token
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
ES13742108T
Other languages
English (en)
Inventor
Zia Hayat
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.)
CallSign Inc
Original Assignee
CallSign Inc
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 CallSign Inc filed Critical CallSign Inc
Application granted granted Critical
Publication of ES2810204T3 publication Critical patent/ES2810204T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • 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
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/128Restricting unauthorised execution of programs involving web programs, i.e. using technology especially used in internet, generally interacting with a web browser, e.g. hypertext markup language [HTML], applets, java

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)

Abstract

Sistema (100, 200, 300) para autentificar una instancia de aplicación de software, comprendiendo el sistema: un dispositivo de usuario (130, 210); un dispositivo de servidor (120, 290, 325); y una máquina anticlon (110, 250, 310) implementada en un medio legible por ordenador no transitorio; comprendiendo dicho dispositivo de usuario (130, 210) una instancia de aplicación de software configurada para: transmitir una solicitud de acceso al dispositivo de servidor (120, 290, 325), incluyendo dicha solicitud unos datos de identificación de aplicación (ID de App) asociados a dicha instancia de aplicación de software; estando configurado dicho dispositivo de servidor (120, 290, 325) para: transmitir unos datos de identificación de sesión (ID de sesión) al dispositivo de usuario (130, 210), y transmitir la ID de sesión y la ID de App a la máquina anticlon (110, 250, 310); y estando configurada dicha máquina anticlon (110, 250, 310) para: generar y transmitir un testigo de desafío al dispositivo de usuario (130, 210), recibir un testigo de respuesta desde dicho dispositivo de usuario (130, 210), procesar el testigo de respuesta para determinar si la instancia de aplicación de software comprende una instancia auténtica de dicha aplicación de software, y transmitir un mensaje de autorización a dicho dispositivo de servidor (120, 290, 325) según dicha determinación, caracterizado por que dicha máquina anticlon (110, 250, 310) está configurada además para: procesar el testigo de respuesta determinando un número de testigos de respuesta recibidos, y determinar que la instancia de aplicación de software no es auténtica si ha sido recibido un número inesperado de testigos de respuesta.

Description

DESCRIPCIÓN
Sistema y método anticlonación
Campo técnico
La presente divulgación se refiere de manera general a la verificación de la autenticidad de aplicaciones de software móviles que se ejecutan en dispositivos de usuario, y más particularmente a sistemas y métodos informáticos para detectar y contrarrestar aplicaciones clonadas fraudulentas.
Antecedentes
Los últimos desarrollos en tecnologías informáticas móviles han dado lugar a aplicaciones (“apps”) de software personalizadas, sensibles y, por lo tanto, valiosas, configuradas para ejecutarse en dispositivos de comunicación móvil. Por ejemplo, los sectores bancario, sanitario, de ocio y seguridad han desarrollado apps seguras que requieren un elevado grado de protección. En particular, resulta deseable “bloquear” una aplicación de software dada, por ejemplo de manera que únicamente pueda ejecutarse en un dispositivo auténtico. Estas medidas resultan necesarias para contrarrestar la amenaza de la clonación de apps, en la que una parte fraudulenta intenta copiar una instancia de una app de un dispositivo de usuario auténtico para después ejecutar la instancia de la app clonada, sin autorización, en otro dispositivo de usuario bajo el control de la parte fraudulenta. Las apps clonadas pueden permitir potencialmente que la parte fraudulenta gane acceso no autorizado a datos protegidos.
En los últimos tiempos, se han realizado diversos intentos para resolver el problema de la clonación de apps. Por ejemplo, algunos servicios intentan identificar el dispositivo en el que se ejecuta la instancia de app mediante un método conocido como “huella digital del dispositivo”. Algunas técnicas de huella digital de dispositivo implican intentar identificar de manera única una aplicación de software dada con un elevado grado de precisión, por ejemplo, cada instancia de la aplicación puede comprender un número de serie único. Sin embargo, estas técnicas están limitadas por el hecho de que únicamente permiten identificar un dispositivo mediante una aplicación dada. Este defecto facilita que las partes fraudulentas copien o clonen la aplicación, debido a que la copia de una instancia de la aplicación de software asimismo resultará en una copia de la huella digital. Otras técnicas de huella digital asimismo se basan en atributos del dispositivo móvil, tal como un número IMEI (identidad internacional de equipo móvil), número de teléfono, dirección de correo electrónico, identificador del procesador y otras características del dispositivo. Además, pueden utilizarse diversas características de dispositivo únicas, tales como la dirección MAC (control de acceso de medios), la memoria, el número de serie y el número de serie de cámara, para crear una huella digital del dispositivo de usuario. Asimismo pueden utilizarse cookies persistentes para crear una huella digital del dispositivo de usuario. Una vez se ha creado la huella digital del dispositivo, los datos de huella digital pueden comprobarse cada vez que el dispositivo de usuario solicita servicio. Sin embargo, la totalidad de dichos métodos adolece de una limitación importante en que no evitan que las características de la huella digital sean fácilmente capturadas y reproducidas por la app clonada. Dicha app clonada puede vencer la seguridad de la huella digital mediante la provisión de una huella digital falsa, reproducida, a la parte autorizante.
Además, las técnicas de huella digital de dispositivo profunda se utilizan actualmente para validar instancias de app. Las técnicas de huella digital de dispositivo profunda incluyen el análisis de un conjunto de características dinámicas, tales como la localización y la dirección IP (protocolo internet) de un dispositivo de usuario, para crear una huella digital de un dispositivo de usuario. A continuación, dicha huella se comprueba para determinar la probabilidad de que la pareja app-dispositivo sea auténtica. Sin embargo, la huella digital de dispositivo profunda todavía no consigue cubrir la posibilidad de que una parte fraudulenta capture y reproduzca características dinámicas de la huella digital de la combinación app/dispositivo auténtica.
El documento n° US 2009/151007 A1 da a conocer la recuperación de datos médicos de un servidor mediante la solicitud de los datos médicos al servidor por un cliente no certificado, la instalación de un servicio de gestión de derechos digitales certificado en el cliente no certificado y la gestión de los datos médicos solicitados según el servicio instalado de gestión de derechos digitales certificado, recuperando de esta manera los datos médicos a partir del servidor. El documento WO 2007/047846 A2 da a conocer la realización de la gestión de derechos digitales, en la que se proporciona una máquina de gestión de derechos digitales que evalúa la licencia asociada al contenido protegido para determinar si se autoriza un acceso solicitado u otro uso del contenido. El documento n° EP 0715 245 A1 da a conocer un sistema para controlar el uso y distribución de obras digitales, en la que el propio de una obra digital asigna derechos de uso a esa obra.
Resulta altamente deseable disponer de un nuevo de tipo de sistema de autentificación/protección de apps que no sea susceptible de captura y reproducción de la huella digital (tal como en los sistemas convencionales) y sea capaz de detectar y contrarrestar las instancias de app clonadas.
Dicho objetivo se consigue mediante un sistema y una máquina anticlon con las características según las reivindicaciones independientes. Las formas de realización preferidas de la invención se definen en las reivindicaciones dependientes.
Sumario
La presente exposición en particular se refiere de manera general a un método y a un sistema para autentificar una instancia de aplicación de software. En una forma de realización, un dispositivo de usuario, que comprende una aplicación de software, transmite una solicitud de acceso a un dispositivo servidor. La solicitud puede incluir una ID de app (identificación de aplicación) asociada a la aplicación de software. A continuación, el dispositivo servidor puede transmitir una ID de sesión (identificación de sesión) al dispositivo de usuario. El dispositivo servidor seguidamente puede transmitir la ID de sesión y la ID de app a una máquina anticlon. La máquina anticlon puede, a su vez, generar y transmitir un testigo de desafío al dispositivo de usuario y recibir un testigo de respuesta. A continuación, la máquina anticlon puede procesar el testigo de respuesta para determinar la autenticidad de la aplicación de software y transmitir un mensaje de autorización a dicho dispositivo de servidor.
En otra forma de realización, una máquina anticlon puede recibir una ID de app asociada a una aplicación de software que se ejecuta en un dispositivo de usuario. La máquina anticlon asimismo puede recibir un ID de sesión asociado a la aplicación de software. La máquina anticlon a continuación puede generar y transmitir un testigo de desafío al dispositivo de usuario. El testigo de desafío puede comprender la ID de sesión y un número aleatorio. A continuación, la máquina anticlon puede recibir y procesar un testigo de respuesta procedente del dispositivo de usuario para determinar la autenticidad de la aplicación de software. Seguidamente la máquina anticlon puede transmitir un mensaje de autorización según la determinación.
En otra forma de realización, un sistema para autentificar una instancia de aplicación de software puede comprender un dispositivo de usuario, un dispositivo de servidor y una máquina anticlon. En dicha forma de realización, el dispositivo de usuario se configura para transmitir una solicitud de acceso a un dispositivo de servidor. La solicitud puede incluir una ID de app asociada a la aplicación de software. El dispositivo de servidor puede configurarse para transmitir una ID de sesión al dispositivo de usuario. El dispositivo de servidor asimismo puede configurarse para transmitir la ID de sesión y la ID de app a una máquina anticlon. La máquina anticlon puede configurarse para generar y transmitir un testigo de desafió al dispositivo de usuario y recibir un testigo de respuesta. La máquina anticlon puede configurarse adicionalmente para procesar el testigo de respuesta a fin de determinar la autenticidad de la aplicación de software y para transmitir un mensaje de autorización a dicho dispositivo de servidor.
En todavía otra forma de realización, se utiliza una máquina anticlon para autentificar una instancia de aplicación de software. La máquina anticlon puede configurarse para recibir una ID de app asociada a una aplicación de software que se ejecuta en un dispositivo de usuario. La máquina anticlon asimismo puede configurarse para recibir una ID de sesión asociada a la aplicación de software. La máquina anticlon puede adicionalmente configurarse para generar y transmitir un testigo de desafío al dispositivo de usuario. El testigo de desafío puede comprender la ID de sesión y un número aleatorio. La máquina anticlon puede configurarse para recibir y procesar un testigo de respuesta procedente del dispositivo de usuario a fin de determinar la autenticidad de la aplicación de software. La máquina anticlon puede adicionalmente configurarse para transmitir a continuación un mensaje de autorización según la determinación.
Breve descripción de los dibujos
El sumario proporcionado anteriormente y la descripción detallada a continuación se entenderán mejor junto con los dibujos adjuntos. Se muestran unas formas de realización ejemplificativas en los dibujos; sin embargo, se entiende que las formas de realización no se encuentran limitadas a los métodos e instrumentos específicos que se ilustran en la presente memoria. En los dibujos:
la figura 1 es un diagrama secuencial que representa un método ejemplificativo para autentificar una instancia de aplicación de software.
La figura 2 es un diagrama esquemático que representa un sistema ejemplificativo para autentificar una instancia de aplicación de software.
La figura 3 es un diagrama esquemático que representa otro sistema ejemplificativo para autentificar una instancia de aplicación de software.
Descripción detallada
La presente exposición se refiere de manera general a sistemas y métodos para autentificar y evitar la clonación de una instancia de aplicación de software. La instancia de aplicación de software puede autentificarse mediante un esquema de reto criptográfico/respuesta que, por ejemplo, puede establecer una conexión persistente entre la parte autentificadora y la instancia de aplicación.
En el contexto de la presente divulgación, un dispositivo de usuario se referirá a cualquier tipo de dispositivo configurado para acceder, ejecutar o utilizar de otro modo una aplicación de software. En una forma de realización, el dispositivo de usuario puede ser un teléfono inteligente, un ordenador portátil, un ordenador de sobremesa, una tableta convertible, un asistente digital personal, una estación de trabajo o un ordenador ponible. Sin embargo, el dispositivo de usuario puede ser cualquier otro tipo de dispositivo informático conocido de la técnica.
En el contexto de la presente divulgación, una app se referirá a una aplicación de software. En una forma de realización, una app se refiere a una aplicación de software que se ejecuta en un dispositivo móvil, tal como un teléfono inteligente. Sin embargo, en otras formas de realización, el término app puede referirse a cualquier tipo de programa de software diseñado para ejecutarse en cualquier tipo de dispositivo informático. Una instancia de app se referirá a una copia específica o implementación de la aplicación de software.
La expresión dispositivo de servidor se refiere a cualquier tipo de dispositivo informático configurado para proporcionar cualquier tipo de servicio informático a un dispositivo de usuario remoto. Un servidor puede estar realizado en un único dispositivo informático, mientras que, en otras formas de realización, un dispositivo de servidor puede referirse a una pluralidad de dispositivos informáticos alojados en una o más instalaciones que están configuradas para proporcionar conjuntamente servicios informáticos a uno o más dispositivos de usuario.
Una máquina anticlon se referirá a cualquier tipo de módulo informático realizado en un medio legible por ordenador no transitorio, tal como un servidor u otro dispositivo informático, que está configurado (entre otras cosas) para gestionar flujos de proceso de desafío/respuesta para autentificar instancias de app. En una forma de realización, la máquina anticlon puede estar realizada en un dispositivo de servidor que proporciona además datos o servicios a la app. La máquina anticlon puede gestionar además materiales criptográficos utilizados para la autentificación de una instancia de app.
Un agente anticlon se referirá a un componente de una app que está configurado para llevar a cabo funciones de autentificación de una app que se ejecuta en conexión con un dispositivo de usuario dado. El agente anticlon puede incluir además material criptográfico único a una instancia de app dada. En algunas formas de realización, un agente anticlon puede ser un componente autónomo, que se ejecuta en un dispositivo de usuario, que está asociado a una instancia de app que asimismo se ejecuta en el dispositivo de usuario.
Una red de notificaciones push se refiere a cualquier red informática que permite que un dispositivo de servidor inicie “transacciones” o funciones con dispositivos de usuario. En una forma de realización, una red de notificaciones push puede referirse a una red de telefonía móvil que permite que el dispositivo de servidor inicie transmisiones de datos a dispositivos de usuario conectados a la red de telefonía móvil. En dicha forma de realización, la red de telefonía móvil puede mantener una conexión persistente con los dispositivos de usuario que puede aprovecharse para permitir que los dispositivos de servidor envíen mensajes a los dispositivos de usuario sin que resulte necesario recibir previamente una solicitud de los dispositivos de usuario. En otras formas de realización, una red de notificaciones push puede referirse a una conexión de internet persistente que permite a los dispositivos de servidor iniciar comunicaciones con dispositivos de usuario. En todavía otra forma de realización, una red de notificaciones push puede referirse a cualquier tipo de conexión de redes que permita que los dispositivos de servidor inicien comunicaciones con dispositivos de usuario.
Método de autenticación de aplicación
En una primera puesta en práctica ejemplificativa, la presente exposición se refiere a un método de autentificación de una instancia de app. Como etapa inicial, el método incluye un dispositivo de usuario que transmite una solicitud de acceso a un dispositivo de servidor. En una forma de realización, la solicitud puede ser iniciada por un usuario. En otra forma de realización, la solicitud puede iniciarse automáticamente mediante, por ejemplo, una app que se ejecute en el dispositivo de usuario. La solicitud de acceso puede comprender una solicitud de datos de usuario seguros almacenados en el dispositivo de servidor, una solicitud de que el dispositivo de servidor proporcione un servicio al dispositivo de usuario o cualquier otro tipo de solicitud de acceso conocida de la técnica. La solicitud puede enviarse por internet, por una conexión wifi, por una red de telefonía móvil o mediante cualquier otra conexión o red por cable o inalámbrica conocida de la técnica. Un agente anticlon asociado a la app asimismo puede recibir la notificación de que la solicitud de acceso se ha iniciado/transmitido.
En una forma de realización, la solicitud de acceso puede incluir una ID de app (identificación de aplicación) que está asociada a una app que se ejecuta en el dispositivo de usuario. La ID de app puede crearse durante la obtención o instalación de la app en el dispositivo de usuario. Alternativamente, la ID de app puede ser creada por el dispositivo de servidor que proporciona la app y/o los servicios asociados a la app al dispositivo de usuario. La ID de app puede crearse de manera que identifique de manera única la combinación de app y dispositivo de usuario.
Opcionalmente, la ID de app puede utilizarse para enviar mensajes a la app que se ejecuta en el dispositivo de usuario. Por ejemplo, la ID de app puede referirse a una dirección de la app dentro de una red de notificaciones push persistente. En una forma de realización, la ID de app puede ser una dirección de la combinación de app / dispositivo de entre las direcciones de Apple® Push Notification Service, Android® Cloud to Device Messaging Service, Microsoft® Push Notification Service o Blackberry® Push Service. Alternativamente, la ID de app puede referirse a una dirección dentro de un servicio de notificaciones push propio. En dicha forma de realización, el dispositivo de servidor y, opcionalmente, una máquina anticlon, pueden enviar mensajes a la app que se ejecuta en el dispositivo de usuario por una red de notificaciones push mediante la utilización de la ID de app como dirección única de la app. El dispositivo de servidor y la máquina anticlon pueden establecer y mantener una conexión de comunicaciones persistente con la app que se ejecuta en el dispositivo de usuario por la red de notificaciones push.
Una vez se ha transmitido la solicitud de acceso, el dispositivo de servidor puede iniciar una sesión y transmitir una ID de sesión (identificación de sesión) al dispositivo de usuario. La ID de sesión puede identificar de manera única la sesión entre el dispositivo de usuario y el dispositivo de servidor, que ha sido iniciada por la solicitud de acceso. A continuación, el dispositivo de servidor puede transmitir la ID de sesión y la ID de app a la máquina anticlon por cualquier tipo de red por cable o inalámbrica. En una forma de realización, en la que se ha realizado la máquina anticlon en el dispositivo de servidor, la ID de sesión y la ID de app pueden transmitirse internamente de un programa que se ejecuta en el dispositivo de servidor a la máquina anticlon.
Una vez se ha recibido la ID de sesión y la ID de app, la máquina anticlon puede generar un testigo de desafío. Dicho testigo de desafío puede comprender la ID de sesión y un número generado aleatoriamente. Sin embargo, en otras formas de realización, el testigo de desafío puede comprender otros tipos de información que pueden utilizarse en un esquema de desafío/respuesta. Una vez se ha generado el testigo de desafío, la máquina anticlon puede transmitir el testigo de desafío al dispositivo de usuario. En una forma de realización, el testigo de desafío puede transmitirse mediante un servicio de notificaciones push persistente, utilizando la ID de app como una dirección. Sin embargo, en otras formas de realización, el testigo de desafío puede transmitirse por otras redes por cable o inalámbricas.
Tras recibir el testigo de desafío, el dispositivo de usuario puede comparar la ID de sesión recibida del dispositivo de servidor y la ID de sesión incluida en el testigo de desafío. En el caso de que falle la comparación, el dispositivo de usuario puede enviar una alerta de “sesión desconocida” a la máquina anticlon y/o al dispositivo de servidor. La alerta de “sesión desconocida” puede indicar que se está ejecutando una instancia clonada de la app en un dispositivo no autorizado. En otra forma de realización, el dispositivo de usuario puede enviar una alerta de “sesión desconocida” en el caso de que el dispositivo de usuario reciba un testigo de desafío sin haberse enviado una solicitud de servicio.
En otra forma de realización, una vez se ha recibido el testigo de desafío, el dispositivo de usuario puede generar un testigo de respuesta. El testigo de respuesta puede incluir un número generado mediante transformación del número aleatorio incluido en el testigo de desafío. En otra forma de realización, el número aleatorio puede transformarse mediante una función matemática predeterminada. Por ejemplo, puede utilizarse una función de hash para transformar el número aleatorio; sin embargo, otras funciones matemáticas, conocidas en la técnica, asimismo pueden utilizarse para transformar el número aleatorio. Alternativamente, puede generarse el testigo de respuesta mediante transformación de otra información o datos incluidos en el testigo de desafío en otros modos conocidos de la técnica. El testigo de respuesta a continuación puede transmitirse al agente anticlon, directamente o mediante el dispositivo de servidor. El testigo de respuesta puede transmitirse mediante cualquier tipo de red inalámbrica o por cable.
Tras recibir el testigo de respuesta, la máquina anticlon puede procesar el testigo de respuesta para determinar si la instancia de app que está solicitando el servicio es auténtica. En una forma de realización, la máquina anticlon puede extraer el número aleatorio transformado a partir del testigo de respuesta y verificar la validez de ese número. Lo anterior puede conseguirse, por ejemplo, mediante aplicación de la misma función al número aleatorio que se ha aplicado el dispositivo de usuario. En el caso de que se determine que el testigo de respuesta no presenta información correcta, por ejemplo en el caso de que el número aleatorio transformado no se corresponda con el valor esperado, la máquina anticlon puede determinar que la instancia de app no es auténtica.
Según la invención, la máquina anticlon determina el número de testigos de respuesta recibidos en respuesta al testigo de desafío. La recepción de múltiples testigos de respuesta puede indicar la existencia de instancias de app clonada que se ejecutan en dispositivos no autorizados. De esta manera, en el caso de que se reciban múltiples testigos de respuesta, la máquina anticlon puede determinar que la instancia de app no es auténtica.
En todavía otra forma de realización, en el caso de que el testigo de respuesta contenga datos esperados, tales como un número aleatorio correctamente transformado, y sólo se reciba un único testigo de respuesta, la máquina anticlon puede determinar que la instancia de app es auténtica.
Una vez se ha procesado el testigo de respuesta, la máquina anticlon puede enviar un mensaje de autorización al dispositivo de servidor. En el caso de que se determine que la instancia de app sea auténtica, el mensaje de autorización puede comprender un mensaje de confirmación que informa al dispositivo de servidor que puede proporcionar acceso al dispositivo de usuario. A continuación, el dispositivo de servidor puede confirmar la solicitud de acceso del dispositivo de usuario.
Sin embargo, en el caso de que se determine que la instancia de app no sea auténtica (por ejemplo, en el caso de que el testigo de respuesta incluya datos inesperados o en el caso de que se reciban múltiples testigos de respuesta), el mensaje de autorización puede comprender un mensaje de advertencia que informa al dispositivo de servidor de que puede haber una o más instancias de app clonadas operando en dispositivos no autorizados. En el caso de que el mensaje de advertencia se reciba en el dispositivo de servidor, el dispositivo de servidor puede denegar la solicitud de acceso del dispositivo de usuario.
En otra forma de realización, la máquina anticlon puede, tras recibir la ID de app del dispositivo de servidor, determinar si dicha ID de app está listada en una lista de “archivos defectuosos” (“bad files”). En una forma de realización, la lista de “archivos defectuosos” puede comprender una lista de ID de app que se ha determinado previamente que están comprometidos o han sido clonados. En el caso de que la ID de app se encuentre en la lista de “archivos defectuosos”, la máquina anticlon puede enviar un mensaje de autorización que comprende un mensaje de advertencia al dispositivo de servidor.
Puede instalarse un agente anticlon en el dispositivo de usuario durante el suministro de la app. El agente anticlon puede incluir una pluralidad de claves criptográficas. En una forma de realización de este tipo, el testigo de desafío puede ser encriptado por la máquina anticlon antes de la transmisión. A continuación, el agente anticlon puede utilizarse una o más de sus claves criptográficas para desencriptar el testigo de desafío. Puede utilizarse una o más de dichas claves criptográficas para encriptar el testigo de respuesta generado por el dispositivo de usuario. Las claves criptográficas pueden comprender cualquier número de claves criptográficas simétricas o asimétricas conocidas de la técnica. Por ejemplo, la pluralidad de claves criptográficas puede comprender claves RSA (Rivest-Shamir-Adleman) o DES (estándar de encriptación de datos).
En una forma de realización, el agente anticlon asimismo puede configurarse opcionalmente para verificar si el sistema operativo del dispositivo de usuario ha sido modificado inapropiadamente (o, de otro modo, comprometido) antes de la transmisión de la solicitud de acceso. Por ejemplo, el agente anticlon puede verificar las funcionalidades esenciales del sistema operativo y la integridad de la tabla de llamadas del sistema del dispositivo de usuario. En el caso de que el agente anticlon determine que el sistema operativo ha sido comprometido, el agente anticlon puede bloquear el envío de la solicitud de acceso. Alternativamente, el agente anticlon puede enviar un mensaje de “alerta de sistema operativo comprometido” al dispositivo de servidor o a la máquina anticlon. A continuación, la máquina anticlon puede enviar un mensaje de autorización que comprende un mensaje de advertencia al dispositivo de servidor.
Máquina anticlon (Procedimiento)
En una segunda puesta en práctica ejemplificativa, la presente exposición se refiere a un método seguido por la máquina anticlon para autentificar una instancia de app. Como etapa inicial, el método incluye recibir una ID de app por la máquina anticlon. La ID de app puede crearse de tal manera que identifique de manera única una combinación de app y dispositivo de usuario. Opcionalmente, la ID de app puede utilizarse para enviar mensajes a la app que se ejecuta en el dispositivo de usuario. Por ejemplo, la ID de app puede referirse a una dirección de la app dentro de una red de notificaciones push persistente. Tal como se ha indicado anteriormente, la ID de app puede ser una dirección de la combinación app/dispositivo de entre las direcciones de Apple® Push Notification Service, Android® Cloud to Device Messaging Service, Microsoft® Push Notification Service o el Blackberry® Push Service. Alternativamente, la ID de app puede referirse a una dirección en un servicio propio de notificaciones push. En dicha forma de realización, la máquina anticlon puede enviar mensajes a la app que se ejecuta en el dispositivo de usuario por una red de notificaciones push mediante la utilización de la ID de app como dirección única de la app. La máquina anticlon puede establecer y mantener una conexión de comunicación persistente con la app que se ejecuta en el dispositivo de usuario por una red de notificaciones push.
La máquina anticlon puede determinar, después de recibir la ID de app procedente del dispositivo de servidor, si dicha ID de app está listada en una lista de “archivos defectuosos”, definida anteriormente. En el caso de que la ID de app se encuentre en la lista de “archivos defectuosos”, la máquina anticlon puede enviar un mensaje de autorización que comprende un mensaje de advertencia al dispositivo de servidor.
Opcionalmente, la máquina anticlon asimismo puede recibir una ID de sesión. La ID de sesión puede estar asociada a una aplicación de software. En una forma de realización, la ID de sesión puede ser un identificador único de una sesión entre el dispositivo de usuario y el dispositivo de servidor que ha sido iniciada por la solicitud de acceso enviada por el dispositivo de usuario.
Una vez se ha recibido la ID de sesión y la ID de app, la máquina anticlon puede generar un testigo de desafío. Este testigo de desafío puede comprender una ID de sesión y un número generado aleatoriamente. Sin embargo, en otras formas de realización, el testigo de desafío puede comprender además otra información o datos que pueden utilizarse en un esquema de autentificación desafío/respuesta.
Una vez se ha generado el testigo de desafío, la máquina anticlon puede transmitir el testigo de desafío al dispositivo de usuario. En una forma de realización, el testigo de desafío puede transmitirse mediante un servicio de notificaciones push persistente, utilizando la ID de app como una dirección. Sin embargo, en otras formas de realización, el testigo de desafío puede transmitirse por otras redes por cable o inalámbricas. A continuación, la máquina anticlon puede recibir un testigo de respuesta procedente del dispositivo de usuario. El testigo de desafío puede ser generado por el dispositivo de usuario y puede comprender un número aleatorio transformado. En una forma de realización, el número aleatorio transformado puede generarse mediante una función matemática predeterminada, tal como una función de hash.
Una vez se ha recibido el testigo de respuesta, la máquina anticlon puede procesar el testigo de respuesta para determinar si la instancia de app que solicita el servicio es auténtica. Para ello, la máquina anticlon puede configurarse para extraer el número aleatorio transformado a partir del testigo de respuesta y para verificar su validez. Lo anterior puede conseguirse, por ejemplo, mediante aplicación de la misma función al número aleatorio que se ha aplicado el dispositivo de usuario. En el caso de que se determine que el testigo de respuesta no contiene información correcta, por ejemplo en el caso de que el número aleatorio transformado no se corresponda con el valor esperado, la máquina anticlon puede determinar que la instancia de app no es auténtica. Sin embargo, en el caso de que el testigo de respuesta contenga datos esperados, tal como un número aleatorio correctamente transformado, y se reciba únicamente un solo testigo de respuesta, la máquina anticlon puede determinar que la instancia de app es auténtica. En otra forma de realización, la máquina anticlon puede determinar que el número de testigos de respuesta recibidos en respuesta a su testigo de desafío es inapropiado. De esta manera, la recepción de múltiples testigos de respuesta puede indicar la existencia de instancias de app clonada que se ejecutan en dispositivos no autorizados. En una forma de realización, en el caso de que se reciban múltiples testigos de respuesta, la máquina anticlon puede determinar que la instancia de app no es auténtica.
Una vez se ha procesado el testigo de respuesta, la máquina anticlon puede enviar un mensaje de autorización al dispositivo de servidor. En el caso de que se determine que la instancia de app sea auténtica, el mensaje de autorización puede comprender un mensaje de confirmación que informa al dispositivo de servidor que puede proporcionar acceso al dispositivo de usuario. Sin embargo, en el caso de que se determine que la instancia de app no es auténtica, el mensaje de autorización puede comprender un mensaje de advertencia que informe al dispositivo de servidor de que puede haber instancias de app clonada operando en dispositivos no autorizados, y/o que deniegue el acceso al dispositivo de usuario.
Sistema de autenticación de app
En una tercera puesta en práctica ejemplificativa, un sistema informático para autentificar una instancia de app puede comprender un dispositivo de usuario, un dispositivo de servidor y una máquina anticlon. Cada uno del dispositivo de servidor, el dispositivo de usuario y la máquina anticlon puede comprender procesadores configurados para ejecutar instrucciones almacenadas en una memoria no transitoria. La ejecución de las instrucciones puede causar que el dispositivo de usuario, el dispositivo de servidor y la máquina anticlon lleve a cabo cualesquiera de las características indicadas anteriormente y las indicadas adicionalmente después.
El dispositivo de usuario puede estar configurado para transmitir una solicitud de acceso a un dispositivo de servidor. Dicha solicitud puede ser iniciada por un usuario o puede iniciarse automáticamente mediante, por ejemplo, una app que se ejecuta en el dispositivo de usuario. La solicitud de acceso puede comprender una solicitud de acceso de datos de usuario seguros almacenados en un dispositivo de servidor, una solicitud para que el dispositivo de servidor proporcione un servicio al dispositivo de usuario y/o cualquier otro tipo de solicitud de acceso conocida en la técnica. El dispositivo de usuario adicionalmente puede estar configurado para evitar la solicitud por internet, a través de una conexión wifi, por una red de telefonía móvil o mediante cualquiera otra conexión o red por cable o inalámbrica conocida en la técnica. El dispositivo de usuario puede comprender además un agente anticlon asociado a la app, que asimismo puede recibir la notificación de que se ha enviado la solicitud de acceso.
En una forma de realización, la solicitud de acceso puede incluir una ID de app que está asociada a una app que se ejecuta en el dispositivo de usuario. La ID de app puede crearse durante el suministro o instalación de la app en el dispositivo de usuario por un dispositivo de servidor que soporta la funcionalidad de la app, y/o de cualquier otra manera indicada en la presente memoria, o disponible en la técnica.
El dispositivo de servidor puede estar configurado para iniciar una sesión y transmitir una ID de sesión al dispositivo de usuario al recibir la solicitud de acceso procedente del dispositivo de usuario. La ID de sesión puede identificar de manera única la sesión entre el dispositivo de usuario y el dispositivo de servidor, que ha sido iniciada por la solicitud de acceso.
El dispositivo de servidor puede estar adicionalmente configurado para transmitir la ID de sesión y la ID de app a la máquina anticlon por cualquier tipo de red por cable o inalámbrica (en el caso de que la máquina anticlon se realice en forma de un dispositivo informático autónomo respecto del dispositivo de servidor). Sin embargo, en el caso de que la máquina anticlon se realice en el dispositivo de servidor, el dispositivo de servidor puede configurarse para transmitir la ID de sesión y la ID de app internamente de un programa que se ejecuta en el dispositivo de servidor a la máquina anticlon.
La máquina anticlon puede estar configurada para generar un testigo de desafío una vez recibe la ID de sesión y la ID de app. En una forma de realización, el testigo de desafío puede comprender una ID de sesión y un número generado aleatoriamente. Sin embargo, en otras formas de realización, el testigo de desafío puede comprender otros datos y/o información que pueden ser utilizados en un esquema de desafío/respuesta. La máquina anticlon puede estar adicionalmente configurada para transmitir el testigo de desafío al dispositivo de usuario mediante un servicio de notificaciones push persistente, en el que se utiliza la ID de app como dirección. Sin embargo, en otras formas de realización, la máquina anticlon puede estar configurada para transmitir el testigo de desafío mediante, por ejemplo, otras redes por cable o inalámbricas.
En una forma de realización, el dispositivo de usuario puede estar configurado para comparar la ID de sesión recibida del dispositivo de servidor y la ID de sesión incluida en el testigo de desafío, una vez se ha recibido el testigo de desafío. En el caso de que falle la comparación, el dispositivo de usuario puede configurarse para transmitir una alerta de “sesión desconocida” a la máquina anticlon y/o al dispositivo de servidor. La alerta de “sesión desconocida” puede indicar que se está ejecutando una instancia clonada de la app en un dispositivo no autorizado. En otra forma de realización, el dispositivo de usuario puede estar configurado para enviar una alerta de “sesión desconocida” en el caso de que el dispositivo de usuario reciba un testigo de desafío sin haber enviado una solicitud de servicio.
El dispositivo de usuario puede estar adicionalmente configurado para generar un testigo de respuesta una vez se ha recibido el testigo de desafío. El testigo de respuesta puede incluir un número generado mediante transformación del número aleatorio contenido en el testigo de desafío mediante una función matemática predeterminada, tal como una función de hash. Sin embargo, pueden utilizarse otras funciones conocidas de la técnica para transformar el número aleatorio. Alternativamente, el dispositivo de usuario puede estar configurado para generar el testigo de respuesta mediante transformación del testigo de desafío de otras maneras conocidas de la técnica. El dispositivo de usuario asimismo puede estar configurado para transmitir el testigo de respuesta a la máquina anticlon, directamente o mediante el dispositivo de servidor. El dispositivo de servidor asimismo puede estar configurado para transmitir el testigo de respuesta mediante cualquier tipo de red inalámbrica o por cable.
La máquina anticlon puede configurarse para recibir y procesar el testigo de respuesta para determinar si la instancia de app que solicita servicio es auténtica. Lo anterior puede llevarse a cabo mediante, por ejemplo, la extracción de un número aleatorio a partir del testigo de respuesta y la verificación de su validez. Por ejemplo, la máquina anticlon puede estar configurada para aplicar la misma función matemática al número aleatorio que se ha aplicado al dispositivo de usuario. En el caso de que se determine que el testigo de respuesta no presenta información correcta, por ejemplo en el caso de que el número aleatorio transformado no se corresponda con el valor esperado, la máquina anticlon puede determinar que la instancia de app no es auténtica.
La máquina anticlon asimismo puede estar configurada para determinar el número de testigos de respuesta en respuesta a su testigo de desafío. La recepción de múltiples testigos de respuesta puede indicar la existencia de instancias de app clonada que se ejecutan en dispositivos no autorizados. De esta manera, en el caso de que la máquina anticlon reciba múltiples testigos de respuesta, la máquina anticlon puede determinar que una instancia de app no es auténtica. La máquina anticlon puede estar configurada para determinar que una instancia de app es auténtica en el caso de que el testigo de respuesta incluya datos esperados, tales como un número aleatorio correctamente transformado y se haya recibido únicamente un solo testigo de respuesta.
La máquina anticlon puede estar adicionalmente configurada para transmitir un mensaje de autorización al dispositivo de servidor una vez se ha procesado el testigo de respuesta. En el caso de que se determine que la instancia de app sea auténtica, el mensaje de autorización puede comprender un mensaje de confirmación que informa al dispositivo de servidor que puede proporcionar acceso al dispositivo de usuario. El dispositivo de servidor puede estar configurado, a su vez, para confirmar la solicitud de acceso al dispositivo de usuario según el mensaje de confirmación. Sin embargo, en el caso de que se determine que la instancia de app no es auténtica, el mensaje de autorización puede comprender un mensaje de advertencia que informe al dispositivo de servidor que puede haber instancia de app clonada operando en dispositivos no autorizados. El dispositivo de servidor puede estar configurado, a su vez, para denegar la solicitud de acceso al dispositivo de usuario según el mensaje de advertencia.
Opcionalmente, la máquina anticlon puede estar adicionalmente configurada para determinar si la ID de app está listada en una lista de “archivos defectuosos” (definida anteriormente) tras la recepción de la ID de app procedente del dispositivo de servidor. En el caso de que la ID de app se encuentre en la lista de “archivos defectuosos”, la máquina anticlon puede estar configurada para enviar un mensaje de autorización que comprende un mensaje de advertencia al dispositivo de servidor.
El dispositivo de usuario puede comprender un agente anticlon realizado en el mismo. Por ejemplo, el agente anticlon puede haber sido instalado durante el suministro de la app. El agente anticlon puede comprender una pluralidad de claves criptográficas. De esta manera, en el caso de que la máquina anticlon encripte el testigo de desafío antes de la transmisión, el agente anticlon puede estar configurado para utilizar una o más de sus claves criptográficas para desencriptar el testigo de desafío. Asimismo puede utilizarse una o más de dichas claves criptográficas para encriptar el testigo de respuesta generado por la app. Las claves criptográficas pueden comprender cualquier número de claves criptográficas simétricas o asimétricas conocidas en la técnica. Por ejemplo, la pluralidad de claves criptográficas puede comprender claves RSA (Rivest-Shamir-Adleman) o DES (estándar de encriptación de datos).
El agente anticlon puede estar adicionalmente configurado para verificar si el sistema operativo del dispositivo de usuario ha sido inapropiadamente modificado o, de otro modo, comprometido antes de la transmisión de la solicitud de acceso. Por ejemplo, el agente anticlon puede estar configurado para verificar las funcionalidades esenciales del sistema operativo y la integridad de una tabla de llamadas a fin de determinar si se han llevado a cabo cualesquiera modifciaciones no autorizadas. En el caso de que el agente anticlon determine que el sistema operativo ha sido comprometido, el agente anticlon puede estar configurado para bloquear la transmisión de la solicitud de acceso. Alternativamente, el agente anticlon puede estar configurado para transmitir un mensaje de advertencia de “sistema operativo comprometido” al dispositivo de servidor y/o a la máquina anticlon. La máquina anticlon puede estar configurada para enviar un mensaje de autorización que comprende un mensaje de advertencia al dispositivo de servidor en el caso de que reciba un mensaje de advertencia de “sistema operativo comprometido”.
Aparato de máquina anticlon
En una cuarta puesta en práctica ejemplificativa, una máquina anticlon puede estar configurada para autentificar una instancia de app. La máquina anticlon puede comprender uno o más procesadores configurados para ejecutar instrucciones almacenadas en una memoria no transitoria. La ejecución de dichas instrucciones puede causar que la máquina anticlon lleve a cabo cualquiera de las características indicadas anteriormente, y las indicadas adicionalmente después.
La máquina anticlon puede estar configurada para recibir una ID de app. La ID de app puede crearse y/o configurarse tal como se ha indicado anteriormente. Como resultado, la máquina anticlon puede estar configurada para enviar mensajes a una app que se ejecuta en un dispositivo de usuario por una red de notificaciones push mediante la utilización de la ID de app como dirección única de la app. La máquina anticlon puede establecer y mantener además una conexión de comunicación persistente con la app que se ejecuta en el dispositivo de usuario por una red de notificaciones push.
La máquina anticlon puede estar adicionalmente configurada para determinar si una ID de app está listada en una lista de “archivos defectuosos” y para enviar un mensaje de autorización que comprende un mensaje de advertencia a un dispositivo de servidor en el caso de que se realice dicha determinación. Además, la máquina anticlon puede estar configurada para recibir una ID de sesión asociada a una aplicación de software. La ID de sesión puede ser un identificador único de una sesión entre a dispositivo de usuario y un dispositivo de servidor que ha sido iniciada por la solicitud de acceso enviada por el dispositivo de usuario.
La máquina anticlon puede estar adicionalmente configurada para generar un testigo de desafío, que comprende, por ejemplo, una ID de sesión y un número generado aleatoriamente. Sin embargo, en otras formas de realización, el testigo de desafío puede comprender además otros datos y/o información que puede utilizarse en un esquema de desafío/respuesta. La máquina anticlon puede estar configurada para transmitir el testigo de desafío al dispositivo de usuario mediante, por ejemplo un servicio de notificaciones push persistente, utilizando la ID de app como dirección. Sin embargo, en otras formas de realización, la máquina anticlon puede estar configurada para enviar el testigo de desafío mediante otras redes por cable o inalámbricas.
En una forma de realización, la máquina anticlon puede estar configurada para recibir y/o procesar un testigo de respuesta procedente del dispositivo de usuario a fin de determinar si la instancia de app que solicita servicio es auténtica. En una forma de realización, la máquina anticlon puede estar configurada para extraer el número aleatorio transformado a partir del testigo de respuesta y para verificar la validez del número aleatorio transformado. Lo anterior puede conseguirse, por ejemplo, mediante aplicación de la misma función al número aleatorio que se ha aplicado el dispositivo de usuario. En el caso de que se determine que el testigo de respuesta no contiene información correcta, por ejemplo en el caso de que el número aleatorio transformado no se corresponda con el valor esperado, la máquina anticlon puede estar configurada para determinar que la instancia de app no es auténtica. En otra forma de realización, la máquina anticlon puede estar adicionalmente configurada para determinar el número de testigos de respuesta recibidos en respuesta al envío del testigo de desafío. En el caso de que se reciban múltiples testigos de respuesta, la máquina anticlon puede estar configurada para determinar que la instancia de app no es auténtica.
En otra forma de realización, en el caso de que el testigo de respuesta contenga datos esperados, tales como un número aleatorio correctamente transformado, y únicamente se reciba un único testigo de respuesta, la máquina anticlon puede configurarse para determinar que la instancia de app es auténtica.
La máquina anticlon puede estar adicionalmente configurada para enviar un mensaje de autorización al dispositivo de servidor. En el caso de que, por ejemplo, se determine que la instancia de app es auténtica, el mensaje de autorización puede comprender un mensaje de confirmación que informe al dispositivo de servidor de que puede proporcionar acceso al dispositivo de usuario. Sin embargo, en el caso de que se determine que la instancia de app no es auténtica, el mensaje de autorización puede comprender un mensaje de advertencia que informe al dispositivo de servidor de que puede haber instancias de app no clonada operando en dispositivos no autorizados, y/o denegar la solicitud de acceso.
A continuación, en referencia a la figura 1, se muestra un ejemplo ejemplificativo 100 de autentificación de una instancia de app. El diagrama secuencial de la figura 1 muestra una secuencia ejemplificativa de etapas llevadas a cabo por una máquina anticlon 110, un dispositivo de servidor 120 y un dispositivo de usuario 130 configurados según la presente exposición. Cada uno de la máquina anticlon 110, el dispositivo de servidor 120 y el dispositivo de usuario 130 puede comprender uno o más dispositivos informáticos que incluyen una memoria no transitoria para almacenar instrucciones y un procesador para ejecutar las instrucciones para llevar a cabo las etapas del método ilustrado 100.
En 140, el dispositivo de usuario puede solicitar la instalación de una app. En una forma de realización, el dispositivo de usuario 130 puede solicitar una app directamente en respuesta a la entrada del usuario; en otras formas de realización, el dispositivo de usuario 130 puede solicitar la app automáticamente. En una forma de realización, el dispositivo de usuario 130 es un teléfono inteligente que puede solicitar una app en respuesta a que el usuario adquiera la app de una tiende de apps.
En 141, el dispositivo de servidor 120 puede suministrar la app solicitada. El suministro de una app puede incluir la configuración de la instancia de app específica destinada a que únicamente se ejecute en el dispositivo de usuario 130. Por ejemplo, el dispositivo de servidor 120 puede crear una ID de app que combinará información identificadora de app e información identificadora del dispositivo de usuario 130 para crear un único ID que puede identificar de manera única la combinación de instancia de app y dispositivo de usuario 130. En una forma de realización, la ID de app puede servir de dirección para una red de notificaciones push. En dicha forma de realización, el dispositivo de servidor 120 y/o la máquina anticlon 110 pueden enviar mensajes al dispositivo de usuario 130 por una red de notificaciones push utilizando la ID de app como dirección.
En 142, el dispositivo de servidor 120 puede enviar datos de instancia de app al dispositivo de usuario 130. Los datos de instancia de app pueden utilizarse para instalar la app en el dispositivo de usuario 130. En 143, la ID de app que identifica de manera única la combinación de app/dispositivo de usuario 130, puede enviarse al dispositivo de usuario 130. La etapa 143 puede producirse concurrentemente con la etapa 142. En 144, la máquina anticlon 110 puede enviar datos del agente anticlon al dispositivo de usuario 130. Los datos del agente anticlon pueden incluir claves criptográficas que pueden ser únicas del dispositivo de usuario 130. Dichas claves pueden utilizarse para encriptar y desencriptar comunicaciones adicionales entre la máquina anticlon 110 y el dispositivo de usuario 130.
En 145, el dispositivo de usuario 130 puede instalar la app. El dispositivo de usuario 130 puede, además, en este momento, instalar el agente anticlon. El agente anticlon puede instalarse como parte de la app, o como un servicio autónomo que se ejecuta separadamente de la app.
En 146, la app que se ejecuta en el dispositivo de usuario 130 puede solicitar datos seguros del dispositivo de servidor 120. Por ejemplo, la app puede solicitar datos bancarios, datos sanitarios o cualquier otro tipo de datos o servicio seguros. En 147, la app puede notificar al agente anticlon, que se ejecuta en el dispositivo de usuario 130, de que se ha realizado una solicitud de datos seguros. A continuación, el agente anticlon puede verificar la integridad del sistema operativo del dispositivo de usuario 130 a fin de garantizar que el sistema no ha sido comprometido. En 148, la app que se ejecuta en el dispositivo de usuario 130 puede enviar la ID de app al dispositivo de servidor 120. Dicha etapa puede llevarse a cabo concurrentemente con la etapa 146.
En 149, el dispositivo de servidor 120 puede crear una ID de sesión única que puede identificar la sesión iniciada por la solicitud de datos seguros en la etapa 146. El dispositivo de servidor 120 a continuación puede enviar la ID de sesión al dispositivo de usuario 130. En 150, el dispositivo de servidor 120 puede enviar tanto la ID de sesión como la ID de app a la máquina anticlon 110 a fin de verificar la autenticidad de la combinación de app/dispositivo de usuario 130 que ha solicitado los datos seguros.
En 151, la máquina anticlon 110 puede generar y transmitir un testigo de desafío al dispositivo de usuario 130. En una forma de realización, el testigo de desafío puede comprender una ID de sesión y un número generado aleatoriamente. Sin embargo, en otras formas de realización, el testigo de desafío puede comprender otros datos o información que puede utilizarse en un esquema de desafío/respuesta. Opcionalmente, el testigo de desafío puede enviarse por un servicio de notificaciones push persistente, utilizando la ID de app como dirección. El testigo de desafío puede estar encriptado.
En 152, el dispositivo de usuario 130 puede recibir el testigo de desafío y desencriptarlo utilizando las claves proporcionadas con el agente anticlon. El dispositivo de usuario 130 a continuación puede comparar la ID de sesión en el testigo de desafío con la ID de sesión recibida en la etapa 143. En 153, en el caso de que las ID de sesión no se correspondan, o en el caso de que el dispositivo de usuario 130 no haya solicitado en ningún momento ningún dato seguro (y, de esta manera, no haya recibido una ID de sesión), el dispositivo de usuario 130 puede enviar una advertencia de “sesión desconocida” a la máquina anticlon 110.
En 154, el dispositivo de usuario 130 puede crear un testigo de respuesta. El testigo de respuesta puede generarse mediante, por ejemplo, la transformación del número aleatorio contenido en el testigo de desafío. En 155, el testigo de respuesta puede ser enviado al dispositivo de servidor 120. A continuación, en 156, el dispositivo de servidor 120 puede enviar el testigo de respuesta a la máquina anticlon 110. Alternativamente, en 157, el dispositivo de usuario 130 puede enviar el testigo de respuesta directamente a la máquina anticlon 110.
En 158, la máquina anticlon 110 puede validar la testigo de respuesta. En una forma de realización, la máquina anticlon 110 puede transformar el número aleatorio incluido en el testigo de respuesta de la misma manera en que el dispositivo de usuario 130 ha transformado el número aleatorio. La máquina anticlon 110 a continuación puede verificar el número aleatorio transformado mediante la comparación del mismo con un valor esperado. En el caso de que la validación del testigo de respuesta falle, la máquina anticlon 110 puede determinar que existen versiones clonadas no autorizadas de la app actualmente en funcionamiento. Además, la máquina anticlon 110 puede determinar el número de testigos de respuesta que se han recibido en respuesta al envío de un único testigo de desafío. En el caso de que se reciban múltiples testigos de respuesta, la máquina anticlon 110 puede determinarse que existen versiones clonadas no autorizadas de la app actualmente en funcionamiento.
En 159, la máquina anticlon 110 puede enviar un mensaje de autorización al servidor. En una forma de realización, el mensaje de autorización puede comprender un mensaje de confirmación, en el caso de que se haya determinado que la app que se ejecuta en el servicio del usuario 130 es auténtica. En otra forma de realización, el mensaje de autorización puede comprender un mensaje de advertencia en el caso de que se determine que la app no es auténtica o en el caso de que se encuentren versiones clonadas no autorizadas de la app actualmente en funcionamiento. El dispositivo de servidor 120 a continuación puede decidir conceder o denegar la solicitud de datos seguros basándose en el contenido del mensaje de autorización.
A continuación, en referencia a la figura 2, se muestra un sistema ejemplificativo 200 de autentificación de una instancia de app según la presente divulgación. El sistema 200 comprende una máquina anticlon 250, un dispositivo de servidor 290 y un dispositivo de usuario 210. Dichos elementos pueden estar conectados por una o más redes por cable o inalámbricas. Cada uno de la máquina anticlon 250, un dispositivo de servidor 290 y un dispositivo de usuario 210 puede comprender uno o más dispositivos informáticos que incluyen una memoria no transitoria para almacenar instrucciones y un procesador para ejecutar las instrucciones.
La máquina anticlon 250 puede estar configurada para garantizar que el dispositivo de servidor 290 proporcionará datos seguros únicamente a las parejas de app / dispositivo de usuario que son auténticas. La máquina anticlon 250 puede comprender un módulo máquina de procesamiento 255. El módulo máquina de procesamiento 255 puede estar configurado para recibir y gestionar todas las solicitudes para llevar a cabo comprobaciones de autenticidad de app y/o comprobaciones anticlonación. El módulo máquina de procesamiento 255 puede estar configurado para validar desafíos de validación que pueden enviarse al dispositivo de usuario 210. El módulo máquina de procesamiento 255 puede estar adicionalmente configurado para validar respuestas recibidas del dispositivo de usuario 210. El módulo máquina de procesamiento 255 puede estar adicionalmente configurado para generar resultados de las comprobaciones anticlonación que pueden utilizarse para informar al dispositivo de servidor 290 sobre los resultados de la verificación de autenticidad de app.
La máquina anticlon 250 puede comprender una lista de “archivos defectuosos” 270. La lista de “archivos defectuosos” 270 puede configurarse para comprender una lista de parejas de app/dispositivo que se ha determinado, por cualquier motivo, que son fraudulentas o no auténticas. El módulo máquina de procesamiento 255 puede estar configurado para generar y transmitir un mensaje de advertencia al dispositivo de servidor 290 cada vez que determine que una pareja de app/dispositivo se encuentra presente en la lista de “archivos defectuosos”.
La máquina anticlon 250 puede comprender además un módulo gestor antifraude 260. El módulo gestor antifraude 260 puede estar configurado para comprender reglas personalizables que pueden ser utilizadas por la máquina anticlon 250 para identificar las parejas de app/dispositivo potencialmente fraudulentas (o clonadas). Por ejemplo, el módulo gestor antifraude 260 puede estar configurado para determinar que una pareja determinada de app/dispositivo solicita autorización con una frecuencia anormal. A continuación, dicha pareja de app-dispositivo puede añadirse a la lista de “archivos defectuosos” 270.
La máquina anticlon 250 puede comprender además un módulo gestor de claves criptográficas 265 de la máquina. El módulo gestor de claves criptográficas 265 de la máquina puede estar configurado para generar y almacenar claves criptográficas para la utilización en relación a los datos relacionados con la anticlonación que se comunican o se reciben de componentes de otro sistema 200, tal como el dispositivo de usuario 210 y el dispositivo de servidor 290.
La máquina anticlon 250 puede comprender además un módulo conector anticlon 280 de la máquina. El módulo conector anticlon 280 de la máquina puede estar configurado para mantener una conexión de datos persistente y de confianza con el dispositivo de usuario 210. En una forma de realización, la conexión persistente puede estar basada en servicios de notificaciones push proporcionados por otras partes, tales como Apple™, Google™, BlackBerry™ y Microsoft™. En una forma de realización, el módulo conector anticlon 280 de la máquina puede estar configurado para enviar desafíos de validación generados por el módulo procesador 255 de la máquina.
El dispositivo de servidor 290 puede estar configurado para recibir solicitudes de acceso procedentes del dispositivo de usuario 210. El dispositivo de servidor 290 puede estar adicionalmente configurado para buscar la verificación de la autenticidad de la máquina anticlon 250 antes de contestar a las solicitudes de acceso.
El dispositivo de usuario 210 puede comprender una app que puede estar configurada para solicitar acceso a datos seguros del dispositivo de servidor 290. En una forma de realización, la app puede comprender un agente anticlon que, a su vez, comprende diversos módulos que habilitan la funcionalidad de autentificación de app. En otra forma de realización, el dispositivo de usuario 210 puede comprender un agente anticlon autónomo que se ejecuta por separado de la app.
El dispositivo de usuario 210 puede comprender un módulo procesador de agente 215. El módulo procesador de agente 215 puede estar configurado para gestionar todas las solicitudes de comprobación de autenticidad y comprobaciones anticlonación de la máquina anticlon 250 y del dispositivo de servidor 290. Por ejemplo, el módulo procesador de agente 215 puede estar configurado para procesar desafíos de validación y para generar respuestas de validación.
El dispositivo de usuario 210 puede comprender un módulo conector anticlon 230 de la app. El módulo conector anticlon 230 de la app puede estar configurado para mantener una conexión de datos persistente y de confianza con la máquina anticlon 250. En una forma de realización, dicha conexión puede estar basada en servicio de notificaciones push de otras partes, tales como Apple™, Google™, Blackberry™ y Microsoft™. En una forma de realización, el módulo conector anticlon 230 de la app puede estar configurado para recibir desafíos de validación de la máquina anticlon 250 por un servicio de notificaciones push persistente.
El dispositivo de usuario 210 puede comprender un módulo gestor de claves criptográficas 225 de la app. El módulo gestor de claves criptográficas 225 de la app puede estar configurado para almacenar claves criptográficas para la utilización en relación a los datos relacionados con la anticlonación. Por ejemplo, las claves criptográficas almacenadas por el módulo gestor de claves criptográficas 225 de la app pueden utilizarse para desencriptar los desafíos de validación recibidos de la máquina anticlon 250.
El dispositivo de usuario 210 puede comprender un módulo validador de permisos 220. El módulo validador de permisos 220 puede estar configurado para analizar las funciones esenciales del sistema operativo a fin de garantizar que no se han realizado modificaciones no autorizadas que afecten a la funcionalidad crítica, tal como la suscripción y envío de notificaciones push. Por ejemplo, el módulo validador de permisos 220 puede estar configurado para analizar la tabla de llamadas del sistema del dispositivo de usuario 210.
En una forma de realización, el dispositivo de usuario 210 puede estar configurado para enviar una solicitud inicial de datos al dispositivo de servidor 290 y para recibir un identificar de sesión de vuelta 201. El dispositivo de servidor 290 puede estar configurado para iniciar a continuación una validación de la pareja de app/dispositivo de usuario 210 que inició la solicitud 202. La máquina anticlon 250 puede estar configurada para crear y transmitir un desafío de validación 203 al dispositivo de usuario 210. El dispositivo de usuario 210 puede estar configurado para procesar el desafío de validación y para enviar una respuesta de validación 204 al dispositivo de servidor 290. El dispositivo de servidor 290 puede reenviar la respuesta de validación a la máquina anticlon 250 y recibir una determinación de la autenticidad del par de app/dispositivo de usuario 210 de vuelta 205.
A continuación, en referencia a la figura 3, se muestra un sistema ejemplificativo 300 de autentificación de una instancia de app según la presente exposición. En particular, la figura 3 muestra una configuración ejemplificativa del sistema 300 en la que se encuentra presente un dispositivo no autorizado que ejecuta una instancia clonada no autorizada de una app.
El sistema 300 comprende una máquina anticlon 310, un dispositivo de servidor 325, un dispositivo de usuario no autorizado 320 y un dispositivo no autorizado 315 que ejecuta una instancia clonada no autorizada de una app.
En dicha forma de realización, el dispositivo no autorizado 315 puede estar configurado para iniciar una solicitud fraudulenta de servicio 301. El dispositivo de servidor 325 puede estar configurado para iniciar a continuación una validación de la pareja de app/dispositivo de usuario 320 que ha iniciado la solicitud 302. La máquina anticlon 310 puede estar configurada para generar y enviar un desafío de validación a la pareja de app/dispositivo de usuario no autorizada 315 que ha iniciado la solicitud 303b. Sin embargo, debido a que el dispositivo de usuario no autorizado 315 está ejecutando una versión de la app que ha sido clonada, el dispositivo de usuario autorizado 320 asimismo recibirá dicho desafío de validación 303a.
Debido a que el dispositivo de usuario no autorizado 315 está ejecutando una app clonada, puede estar configurado para procesar el desafío de validación y para enviar una respuesta correcta al desafío 304 al dispositivo de servidor 325. Sin embargo, el dispositivo de usuario autorizado 320 puede estar configurado para enviar un mensaje de “advertencia de sesión desconocida” 305 a la máquina anticlon 310 en el caso de que reciba un desafío de validación sin haber iniciado una solicitud de servicio. La máquina anticlon 310 puede estar configurada para enviar un mensaje de advertencia 306 al dispositivo de servidor 325 en el caso de que reciba dicha “advertencia de sesión desconocida”. El dispositivo de servidor 325 puede estar adicionalmente configurado para denegar la solicitud de servicio por el dispositivo no autorizado 315 en el caso de que se haya recibido un mensaje de advertencia.
Además, el dispositivo de usuario autorizado 320 puede estar configurado para comprobar las llamadas del sistema de mensajes push y para evitar el bloqueo de mensajes. El dispositivo de usuario autorizado 320 puede estar adicionalmente configurado para garantizar que las conexiones de datos del dispositivo de usuario 300 no puedan desactivarse durante la ejecución de la app. Dichas medidas pueden utilizarse para contrarrestar la posibilidad de que se haya instalado un malware persistente en el dispositivo de usuario autorizado 320 que pueda intentar evitar que el dispositivo de usuario autorizado 320 envíe una alerta de “sesión desconocida”. En consecuencia, la implementación del sistema para autentificar una instancia de app 300 puede evitar que un dispositivo no autorizado 315 obtenga acceso inapropiadamente al dispositivo de servidor 325.
Los ejemplos anteriores se proporcionan únicamente con fines explicativos y en modo alguno deben interpretarse como limitativos. Aunque se ha hecho referencia a diversas formas de realización, los términos utilizados en la presente memoria son términos descriptivos e ilustrativos y no términos limitativos. Además, aunque se hace referencia a medios, materiales y formas de realización particulares, no existe limitación a los particulares dados a conocer en la presente memoria. Por el contrario, las formas de realización se extienden a todas las estructuras, métodos y usos funcionalmente equivalentes, tales como los comprendidos dentro del alcance según las reivindicaciones adjuntas.

Claims (25)

REIVINDICACIONES
1. Sistema (100, 200, 300) para autentificar una instancia de aplicación de software, comprendiendo el sistema: un dispositivo de usuario (130, 210);
un dispositivo de servidor (120, 290, 325); y
una máquina anticlon (110, 250, 310) implementada en un medio legible por ordenador no transitorio; comprendiendo dicho dispositivo de usuario (130, 210) una instancia de aplicación de software configurada para:
transmitir una solicitud de acceso al dispositivo de servidor (120, 290, 325), incluyendo dicha solicitud unos datos de identificación de aplicación (ID de App) asociados a dicha instancia de aplicación de software; estando configurado dicho dispositivo de servidor (120, 290, 325) para:
transmitir unos datos de identificación de sesión (ID de sesión) al dispositivo de usuario (130, 210), y transmitir la ID de sesión y la ID de App a la máquina anticlon (110, 250, 310); y
estando configurada dicha máquina anticlon (110, 250, 310) para:
generar y transmitir un testigo de desafío al dispositivo de usuario (130, 210),
recibir un testigo de respuesta desde dicho dispositivo de usuario (130, 210),
procesar el testigo de respuesta para determinar si la instancia de aplicación de software comprende una instancia auténtica de dicha aplicación de software, y
transmitir un mensaje de autorización a dicho dispositivo de servidor (120, 290, 325) según dicha determinación, caracterizado por que
dicha máquina anticlon (110, 250, 310) está configurada además para:
procesar el testigo de respuesta determinando un número de testigos de respuesta recibidos, y determinar que la instancia de aplicación de software no es auténtica si ha sido recibido un número inesperado de testigos de respuesta.
2. Sistema según la reivindicación 1, en el que el mensaje de autorización comprende un mensaje de confirmación si se determina que la instancia de aplicación de software es auténtica.
3. Sistema según la reivindicación 2, en el que el dispositivo de servidor (120, 290, 325) está configurado además para conceder acceso al dispositivo de usuario (130, 210).
4. Sistema según la reivindicación 1, en el que el mensaje de autorización comprende un mensaje de advertencia si se determina que la instancia de aplicación de software no es auténtica.
5. Sistema según la reivindicación 4, en el que el dispositivo de servidor (120, 290, 325) está configurado además para denegar el acceso al dispositivo de usuario (130, 210).
6. Sistema según la reivindicación 1, en el que la máquina anticlon (110, 250, 310) está implementada en el dispositivo de servidor (120, 290, 325), y/o
el dispositivo de servidor (120, 290, 325) está configurado además para crear la ID de App durante el suministro de la instancia de aplicación de software.
7. Sistema según la reivindicación 1, en el que el testigo de desafío comprende la ID de sesión y un número aleatorio.
8. Sistema según la reivindicación 1, en el que el testigo de desafío se trasmite mediante un servicio de notificaciones push persistente.
9. Sistema según la reivindicación 8, en el que
la ID de App identifica de manera única una combinación del dispositivo de usuario (130, 210) y la instancia de aplicación de software, y en el que la ID de App está configurada para enviar mensajes al dispositivo de usuario (130, 210) mediante el servicio de notificaciones push persistente, y/o
el servicio de notificaciones push persistente comprende por lo menos uno de los servicios siguientes: Apple® Push Notification Service, Android® Cloud to Device Messaging Service, Microsoft® Push Notification Service, Blackberry® Push Service, un servicio de notificaciones push propio.
10. Sistema según la reivindicación 7, en el que el dispositivo de usuario (130, 210) está configurado además para: comparar la ID de sesión transmitida por el servidor y la ID de sesión contenida en el testigo de desafío; y transmitir una alerta de sesión desconocida al dispositivo de servidor (120, 290, 325) si falla la comparación, y/o
generar y transmitir una alerta de sesión desconocida a por lo menos uno del dispositivo de servidor (120, 290, 325) y la máquina anticlon (110, 250, 310) si el dispositivo de usuario (130, 210) recibe el testigo de desafío sin haber generado la solicitud de servicio.
11. Sistema según la reivindicación 7, en el que el dispositivo de usuario (130, 210) está configurado además para: transformar el número aleatorio; y
generar el testigo de respuesta que incluye el número aleatorio transformado.
12. Sistema según la reivindicación 11, en el que
el dispositivo de usuario (130, 210) está configurado además para transmitir el testigo de respuesta directamente a la máquina anticlon (110, 250, 310), y/o
la máquina anticlon (110, 250, 310) está configurada además para procesar el testigo de respuesta verificando el número aleatorio transformado.
13. Sistema según la reivindicación 11,
en el que el dispositivo de usuario (130, 210) está configurado además para transmitir el testigo de respuesta al dispositivo de servidor (120, 290, 325); y
en el que el dispositivo de servidor (120, 290, 325) está configurado además para transmitir el testigo de respuesta a la máquina anticlon (110, 250, 310).
14. Sistema según la reivindicación 1, en el que el dispositivo de usuario (130, 210) comprende un agente anticlon asociado a la instancia de aplicación de software.
15. Sistema según la reivindicación 14, en el que
el testigo de desafío y los testigos de respuesta están encriptados, y en el que el agente anticlon comprende una o más claves criptográficas para desencriptar el testigo de desafío y encriptar el testigo de respuesta, y/o el agente anticlon está configurado para verificar si un sistema operativo del dispositivo de usuario (130, 210) ha sido comprometido antes de que el dispositivo de usuario (130, 210) transmita la solicitud de acceso al dispositivo de servidor (120, 290, 325).
16. Sistema según la reivindicación 1, en el que la máquina anticlon (110, 250, 310) está configurada para determinar si la ID de App está listada en un listado de archivos defectuosos antes de la transmisión del testigo de desafío al dispositivo de usuario (130, 210).
17. Máquina anticlon (110, 250, 310) implementada en un medio legible por ordenador no transitorio, estando configurada la máquina anticlon (110, 250, 310) para:
recibir unos datos de identificación de aplicación (ID de App) asociados a una instancia de aplicación de software que se ejecuta en un dispositivo de usuario (130, 210);
recibir unos datos de identificación de sesión (ID de sesión) asociados a la instancia de aplicación de software; generar y transmitir un testigo de desafío al dispositivo de usuario (130, 210), comprendiendo el testigo de desafío la ID de sesión y un número aleatorio;
recibir un testigo de respuesta a partir de dicho dispositivo de usuario (130, 210);
procesar el testigo de respuesta para determinar si la instancia de aplicación de software comprende una instancia auténtica de dicha aplicación de software; y
transmitir un mensaje de autorización según dicha determinación, caracterizada por que
dicha máquina anticlon (110, 250, 310) está configurada además para:
procesar el testigo de respuesta determinando un número de testigos de respuesta recibidos, y determinar que la instancia de aplicación de software no es auténtica si se ha recibido un número inesperado de testigos de respuesta.
18. Máquina anticlon según la reivindicación 17, en la que
el mensaje de autorización comprende un mensaje de confirmación si se determina que la instancia de aplicación de software es auténtica,
el mensaje de autorización comprende un mensaje de advertencia si se determina que la instancia de aplicación de software no es auténtica, y/o
la máquina anticlon (110, 250, 310) está configurada para transmitir el testigo de desafío mediante un servicio de notificaciones push persistente.
19. Máquina anticlon según la reivindicación 17, en la que la ID de App identifica de manera única una combinación del dispositivo de usuario (130, 210) y la instancia de aplicación de software, y en la que la ID de App está configurada para enviar mensajes al dispositivo de usuario (130, 210) mediante el servicio de notificaciones push persistente.
20. Máquina anticlon según la reivindicación 19, en la que el servicio de notificaciones push persistente es uno de los servicios siguientes: Apple® Push Notification Service, Android® Cloud to Device Messaging Service, Microsoft® Push Notification Service, Blackberry® Push Service, un servicio de notificaciones push propio.
21. Máquina anticlon según la reivindicación 17, en la que el testigo de respuesta comprende un número aleatorio transformado.
22. Máquina anticlon según la reivindicación 21, en la que la máquina anticlon (110, 250, 310) está configurada para procesar el testigo de respuesta verificando el número aleatorio transformado.
23. Máquina anticlon según la reivindicación 17, en la que la máquina anticlon (110, 250, 310) está configurada para procesar el testigo de respuesta determinando un número de testigos de respuesta recibidos.
24. Máquina anticlon según la reivindicación 23, en la que la máquina anticlon (110, 250, 310) está configurada para determinar que la instancia de aplicación de software no es auténtica si se ha recibido un número inesperado de testigos de respuesta.
25. Máquina anticlon según la reivindicación 17, en la que la máquina anticlon (110, 250, 310) está configurada para determinar si la ID de App está listada en un listado de archivos defectuosos antes de transmitir el testigo de desafío.
ES13742108T 2012-07-17 2013-07-15 Sistema y método anticlonación Active ES2810204T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261672431P 2012-07-17 2012-07-17
US13/939,488 US9053318B2 (en) 2012-07-17 2013-07-11 Anti-cloning system and method
PCT/US2013/050425 WO2014014793A1 (en) 2012-07-17 2013-07-15 Anti-cloning system and method

Publications (1)

Publication Number Publication Date
ES2810204T3 true ES2810204T3 (es) 2021-03-08

Family

ID=49947694

Family Applications (1)

Application Number Title Priority Date Filing Date
ES13742108T Active ES2810204T3 (es) 2012-07-17 2013-07-15 Sistema y método anticlonación

Country Status (6)

Country Link
US (1) US9053318B2 (es)
EP (1) EP2875460B1 (es)
DK (1) DK2875460T3 (es)
ES (1) ES2810204T3 (es)
PT (1) PT2875460T (es)
WO (1) WO2014014793A1 (es)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10181124B2 (en) * 2013-05-30 2019-01-15 Dell Products, L.P. Verifying OEM components within an information handling system using original equipment manufacturer (OEM) identifier
US20150242597A1 (en) * 2014-02-24 2015-08-27 Google Inc. Transferring authorization from an authenticated device to an unauthenticated device
US9401912B2 (en) * 2014-10-13 2016-07-26 Netiq Corporation Late binding authentication
CN105843495A (zh) * 2015-01-15 2016-08-10 阿里巴巴集团控股有限公司 推送信息的处理方法及装置
EP3091769A1 (en) * 2015-05-07 2016-11-09 Gemalto Sa Method of managing access to a service
CN109496443B (zh) * 2016-06-16 2021-11-05 哈瑞克思信息科技公司 移动认证方法和用于其的系统
CN106201620A (zh) * 2016-07-15 2016-12-07 宇龙计算机通信科技(深圳)有限公司 一种应用多开实现装置、终端及应用多开实现方法
CN107679373B (zh) * 2017-10-09 2019-09-10 武汉斗鱼网络科技有限公司 授权信息获取方法、装置及电子设备
CN110035041B (zh) * 2018-01-12 2020-11-17 华为技术有限公司 一种识别应用攻击源的方法和设备
US10523706B1 (en) * 2019-03-07 2019-12-31 Lookout, Inc. Phishing protection using cloning detection
JP2023502832A (ja) * 2019-09-02 2023-01-26 グラブタクシー ホールディングス プライベート リミテッド 通信サーバ装置およびアブステンションアタック判定方法
CN113268716A (zh) * 2020-02-17 2021-08-17 杭州海康威视数字技术股份有限公司 一种应用的授权验证系统、方法、装置及存储介质
US11012245B1 (en) * 2020-09-10 2021-05-18 Cyberark Software Ltd. Decentralized management of data access and verification using data management hub
US10931454B1 (en) 2020-09-10 2021-02-23 Cyberark Software Ltd. Decentralized management of data access and verification using data management hub
FR3122745B1 (fr) 2021-05-10 2024-03-15 Trusted Objects procédé pour l’exécution d’un programme chargé dans la mémoire non volatile d’un microcontrôleur en circuit intégré

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5629980A (en) 1994-11-23 1997-05-13 Xerox Corporation System for controlling the distribution and use of digital works
US7624072B2 (en) 2004-06-15 2009-11-24 Lipsky Scott E Method and system for securely distributing content
EA200901153A1 (ru) 2005-10-18 2010-04-30 Интертраст Текнолоджиз Корпорейшн Системы и способы на основе механизма управления цифровыми правами
CN101401104B (zh) 2006-03-15 2010-12-01 皇家飞利浦电子股份有限公司 用于从服务器取回医疗数据的数字权利管理
US8051297B2 (en) 2006-11-28 2011-11-01 Diversinet Corp. Method for binding a security element to a mobile device
US9129098B2 (en) 2007-09-28 2015-09-08 Abbyy Development Llc Methods of protecting software programs from unauthorized use
US8244799B1 (en) 2008-07-21 2012-08-14 Aol Inc. Client application fingerprinting based on analysis of client requests
CA2797131C (en) 2010-05-19 2019-04-30 Google Inc. Electronic license management
GB2485241A (en) 2010-11-05 2012-05-09 Bluecava Inc Incremental browser-based fingerprinting of a computing device
AU2010101305A4 (en) 2010-11-22 2010-12-23 Lockerteck Pty Ltd A system and method for providing an application lock

Also Published As

Publication number Publication date
WO2014014793A1 (en) 2014-01-23
PT2875460T (pt) 2020-08-26
US9053318B2 (en) 2015-06-09
US20140026196A1 (en) 2014-01-23
DK2875460T3 (da) 2020-08-17
EP2875460A1 (en) 2015-05-27
EP2875460B1 (en) 2020-05-20

Similar Documents

Publication Publication Date Title
ES2810204T3 (es) Sistema y método anticlonación
US10929524B2 (en) Method and system for verifying an access request
JP6586446B2 (ja) 通信端末および関連システムのユーザーの識別情報を確認するための方法
US9998438B2 (en) Verifying the security of a remote server
WO2018050081A1 (zh) 设备身份认证的方法、装置、电子设备及存储介质
CN110990827A (zh) 一种身份信息验证方法、服务器及存储介质
US20160125180A1 (en) Near Field Communication Authentication Mechanism
JP6906521B2 (ja) 生体認証プロトコル標準のシステムおよび方法
KR20150094548A (ko) 원격 액세스, 원격 디지털 서명을 위한 방법 및 시스템
US11424915B2 (en) Terminal registration system and terminal registration method with reduced number of communication operations
CN112272089B (zh) 云主机登录方法、装置、设备及计算机可读存储介质
US20210073359A1 (en) Secure one-time password (otp) authentication
CN114257382A (zh) 密钥管理和业务处理方法、装置及系统
US20210256102A1 (en) Remote biometric identification
CN104243452B (zh) 一种云计算访问控制方法及系统
CN106992978B (zh) 网络安全管理方法及服务器
CN108667800B (zh) 一种访问权限的认证方法及装置
CN115935318A (zh) 一种信息处理方法、装置、服务器、客户端及存储介质
KR20180034199A (ko) 싱글 사인 온 서비스 기반의 상호 인증 방법 및 시스템
KR101473576B1 (ko) Sw 토큰을 이용한 오프라인 로그인 방법 및 이를 적용한 모바일 기기
CN115146284A (zh) 数据处理方法、装置、电子设备和存储介质
KR20170111809A (ko) 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법
KR101705293B1 (ko) 비밀스런 인증데이터 관리가 필요 없는 인증시스템 및 방법
US10382430B2 (en) User information management system; user information management method; program, and recording medium on which it is recorded, for management server; program, and recording medium on which it is recorded, for user terminal; and program, and recording medium on which it is recorded, for service server
CN106992976B (zh) 网络安全管理方法及服务器