ES2826551T3 - Protección de software - Google Patents

Protección de software Download PDF

Info

Publication number
ES2826551T3
ES2826551T3 ES16198679T ES16198679T ES2826551T3 ES 2826551 T3 ES2826551 T3 ES 2826551T3 ES 16198679 T ES16198679 T ES 16198679T ES 16198679 T ES16198679 T ES 16198679T ES 2826551 T3 ES2826551 T3 ES 2826551T3
Authority
ES
Spain
Prior art keywords
software
location
time
license
storage device
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
ES16198679T
Other languages
English (en)
Inventor
Mark Beardall
Melvin Brandman
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.)
Towers Watson Ltd
Original Assignee
Towers Watson Ltd
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 Towers Watson Ltd filed Critical Towers Watson Ltd
Application granted granted Critical
Publication of ES2826551T3 publication Critical patent/ES2826551T3/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/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
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

Un método de control de acceso a software instalado en un dispositivo de almacenamiento o durante la instalación de dicho software, el método que comprende: (i) tras la instalación del software: comprobar (104) un número de licencia frente a los datos de un servidor de licencias (34) para determinar si un usuario tiene derecho a instalar el software en el dispositivo de almacenamiento; determinar (110) la ubicación física de dicho software, o una parte del mismo, en dicho dispositivo de almacenamiento, siendo dicha ubicación la ubicación física en el momento de la instalación; almacenar (116) la ubicación física determinada en el momento de la instalación en un archivo de configuración almacenado en el dispositivo de almacenamiento (10), incluyendo el almacenamiento de uno o más parámetros que incluyen una hora y fecha de la instalación y un período de expiración para permitir o denegar el acceso sin licencia al software; y almacenar (114) datos que confirmen que el software se ha activado con éxito según dicho uno o más parámetros; y (ii) tras iniciar o durante el tiempo de ejecución del software instalado: comprobar (301; 402, 430) si el software puede conectarse al servidor de licencias (34); y (a) si el software puede conectarse al servidor de licencias: comprobar (404) uno o más parámetros en el archivo de configuración almacenado en el dispositivo de almacenamiento frente a datos del servidor de licencias para determinar si un usuario tiene derecho a retirar una licencia del servidor de licencias para ejecutar el software; si se determina que el usuario tiene derecho a retirar una licencia, retirar una licencia, ejecutar o continuar ejecutando (309; 408) el software y actualizar (406) el uno o más parámetros, en donde el uno o más parámetros incluyen además la hora y la fecha de retirada; o (b) si el software no puede conectarse al servidor de licencias: determinar (302; 412) la ubicación física del software, o una parte del mismo, en un dispositivo de almacenamiento, siendo dicha ubicación la ubicación física de tiempo de ejecución; comparar (306; 414) la ubicación física de tiempo de ejecución determinada del software con la ubicación física de tiempo de instalación predeterminada almacenada en el archivo de configuración; comprobar (416) si la presente hora está dentro del período de expiración; y negar el acceso o impedir la ejecución (310; 420) del software cuando la ubicación del tiempo de ejecución determinada y la ubicación física del tiempo de instalación predeterminada no coincidan o si la hora presente no está dentro del período de expiración.

Description

DESCRIPCIÓN
Protección de software
Campo técnico
La presente invención se refiere a sistemas y métodos para controlar acceso a software, un programa o sistema informático y/o a activar software, un programa o sistema informático.
Antecedentes de la invención
Se implementan varias medidas para garantizar que solamente aquellas personas con derecho o autorizadas para acceder a un documento o un sistema informático puedan hacerlo así. Por ejemplo, la protección con contraseña para iniciar sesión en un ordenador o acceder a una cuenta en particular es extremadamente común en estos días. Los datos también se pueden proteger con cifrado. En este caso, los datos se codifican o cifran de manera que no se pueda acceder a ellos ni recuperarlos sin la clave correcta. Esto se usa ampliamente para proteger los derechos, la privacidad y la identidad de un usuario, y para evitar que otros obtengan acceso a los datos de ese usuario. Se necesitan medidas adicionales para evitar la copia no autorizada de software.
La piratería de software, tratar ilegalmente software sin autorización, abunda en estos días. El software a menudo se protege con una licencia. Por ejemplo, un único usuario puede tener derecho solamente a instalar el software en una única máquina. La copia de ese software es piratería de software. También se usan otras formas de protección, por ejemplo, claves de activación, llaves electrónicas y otro software o soluciones basadas en la nube. El uso de un servidor de licencias en red para llevar a cabo comprobaciones regulares para asegurar que el usuario de un programa de software esté autorizado para estar usando el programa es un método sólido de restricción de piratería de software. No obstante, uno de los problemas cuando se hace cumplir la comprobación regular de licencia en una red es que, si se interrumpe la conexión de red, entonces el programa no puede funcionar. Este es un problema particular para los software críticos.
El documento US2008/021936 A1 describe un método para distinguir un archivo de cualquiera o todas las copias del archivo que puedan existir. El método determina la ubicación física real del archivo y asocia esa ubicación física con el archivo como la ubicación física demandada del archivo. El estado de originalidad del archivo se puede determinar entonces encontrando la demanda de ubicación, leyendo de ella la ubicación física demandada asociada con el archivo, determinando la ubicación física real del archivo y comparando las ubicaciones. Si las ubicaciones demandadas y reales son idénticas, entonces el archivo es el archivo original que dice ser. Si hay una disparidad entre la ubicación física demandada indicada para o por el archivo y la ubicación física real del archivo, entonces no es el archivo original que dice ser.
El documento US 2005/102664 A1 describe un método y un sistema que permite la preinstalación de una aplicación de software sin una clave de licencia. El sistema informático instala una aplicación de software y proporciona un aviso para una clave de licencia. La clave de licencia se almacena en un registro. Si no se introduce la clave de licencia, el sistema informático instala la aplicación de software e instala un código de deshabilitación. Al inicio, el código de deshabilitación se ejecuta si está instalado, proporcionando un aviso para una clave de licencia. Si se introduce la clave de licencia adecuada, el sistema informático almacena la clave en un registro y desinstala el código de deshabilitación, permitiendo la instalación de la aplicación de software.
El documento EP 1351111 A2 describe una actualización de producto usada para añadir un mecanismo de control de licencia a un programa de ordenador instalado. El programa de ordenador es preferiblemente un escáner de programa maligno u otro programa que requiere actualización regular del producto con el fin de mantener efectiva su funcionalidad normal. El mecanismo de control de licencia tiene un período de gracia que discurre desde la instalación del mecanismo de control de licencia hasta introducir una clave de licencia válida.
Es deseable un sistema más robusto que pueda tolerar una red intermitente u otros fallos de hardware y todavía siga siendo igualmente difícil de penetrar. La presente invención se ha concebido con lo anterior en mente.
Compendio de la invención
Según un primer aspecto de la presente invención, se proporciona un método de control de acceso al software como se define en la reivindicación 1.
Las características preferidas y/u opcionales se establecen en las reivindicaciones dependientes.
Como tal, la invención compara la ubicación del software que se ha instalado en un dispositivo de almacenamiento, por ejemplo, un disco duro de ordenador, con una ubicación predefinida, por ejemplo, la ubicación donde se debería instalar el software. Si hay una coincidencia, es decir, el software está en el lugar correcto, se puede conceder acceso al software para permitir que el software se ejecute. De otro modo, se deniega el acceso. La invención hace uso de la característica de que cuando se instala software en un dispositivo de almacenamiento, se le asigna “aleatoriamente” una ubicación en el dispositivo de almacenamiento en el sentido de que no se sabe por adelantado dónde se almacenará el software, pero la ubicación se elige según la capacidad de almacenamiento disponible. Cuando un usuario intenta ejecutar un software, si está autorizado para hacerlo, la ubicación determinada coincidirá con la ubicación predefinida que permite que el software sea ejecutado. No obstante, si el software se ha copiado sin autorización, es extremadamente improbable que la nueva ubicación (y, es decir, la que se determinará por la invención) coincida con la ubicación predefinida (es decir, la ubicación original o autorizada), en cuyo caso se deniega el acceso.
En una realización, la ubicación determinada y/o la ubicación física predefinida es una coordenada de ubicación tal como un sector y bloque.
El método puede comprender además cifrar la ubicación determinada y almacenar la ubicación determinada cifrada. La ubicación predefinida también se puede cifrar. El cifrado de la ubicación determinada y/o la ubicación predefinida puede usar un conjunto de funciones resumen criptográficas.
En una realización, el método comprende además registrar una instancia del método que se realiza en una base de datos.
El método puede comprender además activar el software instalado en un dispositivo de almacenamiento. Alternativamente, en lugar de almacenar datos que confirman que el software se ha activado con éxito según dichos uno o más parámetros, el método puede proporcionar almacenamiento de datos que confirman que el software no se activó con éxito según dichos uno o más parámetros.
El método puede comprender además cifrar la ubicación y almacenar la ubicación cifrada. El cifrado de la ubicación puede usar un conjunto de funciones resumen criptográficas.
El método comprende determinar la presencia de una licencia válida. El método puede comprender además determinar si la ejecución está ocurriendo en una red predefinida. En una realización, se puede requerir una conexión a Internet.
El método puede comprender además registrar información con relación a la activación de dicho software, incluyendo si la activación fue o no exitosa y/o detalles del usuario.
El software también incluye una característica de fecha/período de expiración, de manera que el software solamente pueda confiar en el proceso de autenticación del primer aspecto durante un tiempo limitado antes de que sea necesario que un usuario se conecte a un servidor de licencias para verificar la licencia.
Según otro aspecto de la presente invención, se proporciona un sistema para controlar el acceso al software como se define en la reivindicación 11.
Alternativamente, en lugar de almacenar datos que confirmen que el software se ha activado con éxito según dichos uno o más parámetros, el sistema puede proporcionar almacenamiento de datos que confirmen que el software no se activó con éxito según dichos uno o más parámetros.
En cualquiera o en todos los aspectos y realizaciones, el dispositivo de almacenamiento puede ser cualquier dispositivo de almacenamiento que utilice un sistema de referencia para registrar dónde se instala un software en el mismo. Por ejemplo, el dispositivo de almacenamiento puede ser un dispositivo de almacenamiento de medio magnético tal como un disco magnético o un disco de memoria de estado sólido. Puede ser parte o, de otro modo, estar en comunicación con una máquina o terminal de usuario, por ejemplo, un ordenador personal (PC). La máquina del usuario puede estar en comunicación o bien por cable o bien inalámbrica con un servidor o centro de datos o similar. El servidor/centro de datos puede ser o comprender una base de datos u otro dispositivo de almacenamiento y puede almacenar detalles de autorización que, por ejemplo, identifiquen a un usuario como que está autorizado para instalar y/o ejecutar un software. También puede almacenar información de actividad con relación al software, por ejemplo, cuando 'se instaló, accedió o intentó ser accedido, etc.
“Software”, como se usa en la presente memoria, se puede referir a un sistema, aplicación o programa de software. También se puede referir a cualquier otro tipo de datos que se puedan almacenar en un dispositivo de almacenamiento electrónico, tal como un medio magnético o un medio de almacenamiento de estado sólido.
De manera ventajosa, los aspectos y las realizaciones de la invención pueden evitar la copia de o el acceso no autorizados al programa.
Los aspectos y las realizaciones de la invención proporcionan la ejecución segura de un programa tal como un ejecutable, y aseguran que solamente se pueda ejecutar si ha pasado por un proceso de activación o registro adecuado. Si no se ha seguido o completado el proceso de registro adecuado, se impide que el software se ejecute, lo que puede limitar o impedir entonces el acceso a otro software, sistema, archivos, etc.
La invención hace uso ventajosamente de la característica de que cuando se instala un sistema o software, esto ocurre de una manera aleatoria o semialeatoria. Es decir, en la instalación, el software se almacena en una o más ubicaciones (sectores y bloques) dependiendo de las limitaciones de almacenamiento existentes. Se puede instalar una pequeña instalación en una ubicación del dispositivo de almacenamiento, aunque esto será en una ubicación no conocida por adelantado, donde haya espacio para acomodar la instalación. Las instalaciones más grandes se dividirán en una pluralidad de ubicaciones, de nuevo en ubicaciones “aleatorias” (es decir, no predeterminadas) dependiendo de la capacidad de almacenamiento disponible. No es posible predecir dónde se almacenará una instalación en particular en un dispositivo de almacenamiento (que puede ser físico o virtual). La invención utiliza el hecho de que intentar copiar un software dará como resultado que se guarde en una o más ubicaciones diferentes, lo que de nuevo no se puede determinar por adelantado. La posibilidad de que una versión copiada esté en ubicaciones idénticas en el medio de almacenamiento objetivo es extremadamente pequeña. Los aspectos y las realizaciones de la invención se pueden usar con cualquier dispositivo de almacenamiento que use un sistema de referencia de ubicación.
En los aspectos y las realizaciones de la invención, donde el software se ha instalado bajo autorización, los datos de ubicación del software (o una parte del mismo) coincidirán con los datos de ubicación determinados y almacenados durante la instalación de ese software. Solamente entonces el software será capaz de ejecutarse. Es decir, si se ha ocurrido cualquier instalación o copia no autorizada, el software no se será capaz de ejecutarse.
El programa informático se puede proporcionar en un medio legible por ordenador, que puede ser un medio físico legible por ordenador, tal como un disco o un dispositivo de memoria.
Breve descripción de los dibujos
Ahora se describirán realizaciones de la invención con referencia a las Figuras de los dibujos que se acompañan en los que:
La Figura 1 muestra una representación del almacenamiento de archivos en una unidad de disco duro;
La Figura 2 es un diagrama de bloques de un aparato usado para llevar a cabo el método de los aspectos y las realizaciones de la invención;
La Figura 3 es un diagrama de flujo de un método que incorpora parte de la invención;
La Figura 4 es un diagrama de flujo de otro método que incorpora otra parte de la invención; y
La Figura 5 es un diagrama de flujo de otro método que incorpora otra parte de la invención.
Descripción detallada de realizaciones de la invención.
Un programa de software comprende uno o más componentes en forma de archivos electrónicos que se mantienen en un dispositivo de almacenamiento. Los dispositivos de almacenamiento están disponibles en una variedad de tipos diferentes, incluyendo dispositivos de almacenamiento magnético, dispositivos de almacenamiento óptico, unidades de memoria rápida, unidades de estado sólido, así como almacenamiento en línea y basado en la nube. El almacenamiento magnético y los medios de almacenamiento de estado sólido (SS) son comunes en discos duros de ordenador. Los medios magnéticos (MM) usados comúnmente pueden ser en forma de discos magnéticos que, a su vez, se pueden conectar a PC autónomos, ordenadores portátiles, redes de servidores de archivos, SAN (Redes de Área de Almacenamiento), NAS (Almacenamiento Conectado a la Red), etc.
El acceso a los medios de almacenamiento, por ejemplo, medios MM o SS, es a través de un sistema operativo, y el sistema operativo (SO) en particular formateará los medios de almacenamiento de tal forma que cada archivo colocado en el almacenamiento se pueda situar a través de una ubicación de referencia que, en la terminología de Microsoft™ (MS), para un disco duro es el número de agrupación donde comienza el archivo. Esta ubicación de referencia se puede considerar como un sistema de coordenadas, de una forma similar a la que podemos navegar a lugares del mundo a través de coordenadas de latitud y longitud.
Cuando se coloca un archivo en MM, el OS decidirá dónde colocarlo dependiendo de la disponibilidad de espacio libre. Por ejemplo, un archivo de 1MB necesitaría espacio en el disco de al menos 1MB de tamaño, pero colocar éste en el disco puede dejar pequeños huecos entremedias. Además, cuando se hacen cambios en el almacenamiento, por ejemplo, se mueven o eliminan archivos, esto puede dar como resultado que se formen huecos. La Figura 1 muestra una representación de ejemplo de fragmentación en un disco duro magnético donde las bandas muestran las ubicaciones de almacenamiento de varios archivos, con los espacios en blanco entremedias representando el espacio libre en el disco.
A menos que un dispositivo de MM haya sido clonado de otro, el patrón de espacio libre de dos cualesquiera MM será muy diferente uno de otro, en la medida que cada uno tendrá un historial totalmente diferente de cómo se hayan cargado las aplicaciones y los archivos de datos en ellos. Dada esta situación, si una aplicación/sistema en particular se cargó en dos MM diferentes, entonces la probabilidad de que los archivos componentes terminen en la misma ubicación en los dos MM será extremadamente baja.
Como tal, si los componentes del sistema se copian de un MM a otro, entonces cualquier componente en particular copiado no terminará en la misma ubicación en el MM de destino que en el MM de origen.
Las aplicaciones de software comerciales normalmente requieren una licencia válida para estar disponible con el fin de su lanzamiento, con disponibilidad de la licencia también requerida para la operación continuada de la aplicación lanzada. Una licencia puede ser concurrente o asignada. Cuando la licencia se consume en una red desde un servidor de licencias, la aplicación llega a ser dependiente no solamente de la estabilidad del servidor de licencias en sí mismo, sino también de la fiabilidad de la red.
Algunas aplicaciones de software incluyen actualmente un período de gracia o de expiración para hacer frente a la inestabilidad de la red o breve interrupción del servidor de licencias. El período de gracia permite que la aplicación continúe ejecutándose (permanecer en un 'estado con licencia') en el caso de que la licencia llegue a estar indisponible, por ejemplo, se pierda la conexión con el servidor de licencias. Ese período de gracia es dependiente de que la aplicación se haya lanzado con éxito y haya adquirido una licencia en primer lugar.
El período de gracia actualmente implementado por algunas aplicaciones sufre al estar vinculado al proceso, ya que la aplicación se debe lanzar con éxito y obtener una licencia válida antes de sea capaz de entrar en un período de gracia si la licencia llega a estar inaccesible/ser inválida. Si la aplicación es incapaz de obtener una licencia en el arranque entonces la aplicación no es capaz de entrar en el período de gracia. Además, si un usuario está ejecutando actualmente una instancia de la aplicación y se pierde la comunicación con el servidor de licencias, entonces la instancia en ejecución puede entrar en el período de gracia, pero la indisponibilidad de licencias evitará que el usuario lance instancias adicionales de la aplicación.
La Figura 2 representa un dispositivo de almacenamiento 10 que es parte de o de otro modo esté en comunicación con una máquina o terminal de usuario 20, por ejemplo, un ordenador personal (PC). El PC 20 está en comunicación por cable o inalámbrica con un servidor o centro de datos 30. Con los propósitos de la siguiente discusión, y a modo de ejemplo, el dispositivo de almacenamiento 10 es un dispositivo de almacenamiento magnético (MM). No obstante, se apreciará que, y como llegará a quedar claro más adelante, se pueden usar otros tipos de dispositivos de almacenamiento con los aspectos y las realizaciones de la presente invención que incluyen, pero no se limitan a, medios de almacenamiento de estado sólido. Los aspectos y las realizaciones de la presente invención se pueden usar con cualquier tipo de dispositivo de almacenamiento que tenga o use un sistema de referencia para indicar la ubicación del contenido almacenado en el mismo o sobre él.
Un MM típico comprende una memoria de solo lectura (ROM) 12 y una memoria de acceso aleatorio (RAM) 14. Uno o más discos magnéticos 16 se escriben en/leen de mediante un dispositivo de lectura/escritura 18 bajo el control de un circuito de control 19. (En otras realizaciones, donde el dispositivo de almacenamiento no es un MM, el dispositivo o dispositivos de almacenamiento pueden ser uno o más discos, etc., por ejemplo, discos ópticos).
El PC tiene un procesador 22, un visualizador 24 y uno o más dispositivos/controles de entrada/salida 26.
El servidor remoto/centro de datos 30 comprende una base de datos 32 para almacenar detalles del software, usuarios autorizados y/u otra información requerida para la activación/registro del software, etc. Un servidor de licencias 34 gobierna la emisión, uso y terminación de licencias para usar el software. Una unidad forense/de análisis 36 comprende algoritmos para analizar datos de la base de datos, por ejemplo, para monitorizar cuándo se han intentado intentos permisibles e impermisibles de instalar y/o usar el software. Un administrador o módulo de utilidad de seguridad 38 es responsable de regular los derechos para instalar software en una máquina o red y/o de comprobar si el intento de acceso al software instalado es o no válido o autenticado. La utilidad de seguridad 38 es parte del software y se comunica con el servidor de licencias 34. Uno cualquiera o más de estos componentes se pueden almacenar en una ubicación física o virtual.
La Figura 3 ilustra un método que incorpora una realización de la presente invención, para “activar” software. Inicialmente, en el paso 100, un usuario inicia la instalación de algún software en su máquina o servidor 20 usando una rutina de instalación. La instalación forma parte opcionalmente de una realización según la invención, pero alternativamente puede ser un requisito previo de la misma. En una realización, un usuario instala un software y luego ejecuta la utilidad de seguridad 38. Alternativamente, la utilidad de seguridad 38 podría ser parte del procedimiento de instalación.
En el paso 102, se ejecuta la utilidad de seguridad 38 para autenticar al usuario/entidad que hace la solicitud de instalar el software. Esto puede comprender comprobar que la instalación ha ocurrido o está ocurriendo en una máquina o red válida y/o autenticada, por ejemplo, una red de la empresa interna y/o comprobar que el usuario tiene derecho a instalar el software. Alternativamente, esto puede comprender autenticar un usuario o una solicitud en otra máquina o red. Se puede solicitar un número de licencia válido o una contraseña.
Por ejemplo, se le puede sugerir a un usuario que introduzca un número de licencia. En el paso 104, el módulo de utilidad de seguridad 38 comprueba la licencia frente a los datos del servidor de licencias 34 y, si la licencia está registrada y es válida, concede acceso para proceder con la instalación del software (Y); de otro modo, se deniega el acceso y el proceso de instalación se aborta (N) en el paso 105. Por supuesto, un usuario puede introducir inadvertidamente una contraseña o un número de licencia incorrectos, y así el módulo de utilidad de seguridad 38 puede permitir múltiples (por ejemplo, cualquier número entre y que incluye tres y diez, o de otro modo) intentos antes de abortar en el paso 105. El módulo de utilidad de seguridad 38 puede comprobar, adicional o alternativamente, si el software está diseñado o se pretende que se ejecute en el centro de datos 30 y, en caso negativo, puede abortarse en el paso 105. Si la utilidad de seguridad no se puede conectar al servidor de licencias 34, la instalación se aborta en el paso 105.
En el paso 108, la utilidad de seguridad 38 escribe información en la base de datos de registro en línea 32. Los datos que se pueden registrar pueden incluir uno o más de los siguientes: bandera de registro en proceso, fecha, hora, dirección IP y número de licencia (si es aplicable), aunque esta lista no es exhaustiva.
En el paso 110, la utilidad 38 determina la ubicación física del programa/software que se instala en el MM10 (la ubicación física en el momento de la instalación). Preferiblemente, ésta es en forma de coordenadas de ubicación, por ejemplo, una referencia de sector y bloque. Cuando la instalación requiera una capacidad de almacenamiento que comprenda una pluralidad de sectores y bloques, es conveniente y convencional que las coordenadas de ubicación representen el punto de partida del almacenamiento usado, pero en principio se podría usar una ubicación diferente y otros criterios. Típicamente, un MM comprende un disco, cada uno de los cuales está dividido en anillos o pistas concéntricos. Cada pista está dividida en sectores, que pueden acomodar una cantidad predeterminada de datos. La utilidad 38 entonces cifra las coordenadas de ubicación determinadas (paso 112). En una realización, la ubicación física determinada en el momento de la instalación se cifra usando una función resumen aleatorizada unidireccional. El cifrado/resumen puede ocurrir en, durante, o después de la instalación.
En una realización, el cifrado es a través de una función resumen SHA-2 de resistencia industrial aleatorizada unidireccional. La ubicación cifrada se almacena en un archivo de configuración o archivo de “huella dactilar” en el dispositivo del usuario. Usar una función resumen aleatorizada unidireccional para el cifrado asegura que la cadena resumen no se pueda descifrar mediante una fórmula matemática o que no se pueda buscar en una tabla arcoíris. SHA-2 es un conjunto de funciones resumen (SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256) diseñadas por la Agencia de Seguridad Nacional (NSA) de EE.UU. y publicado en 2001 por el NIST como un Estándar Federal de Procesamiento de Información (FIPS) de EE.UU. SHA representa Algoritmo Resumen de Seguridad. SHA-2 incluye un número significativo de cambios con respecto a su predecesor, SHA-1. SHA-2 consta actualmente de un conjunto de seis funciones resumen con extractos que son de 224, 256, 384 o 512 bits. En criptografía, una aleatorización son datos aleatorios que se usan como una entrada adicional a una función unidireccional que comprueba aleatoriamente una contraseña o frase de paso. La función principal de las aleatorizaciones es defenderse contra los ataques de diccionario y de los ataques de tabla arcoíris calculada previamente. Una tabla arcoíris es una tabla calculada previamente para invertir funciones resumen criptográficas, normalmente para quebrar comprobaciones aleatorias de contraseñas.
De manera importante, la invención cifra datos de ubicación física reales en lugar de, por ejemplo, usar la ubicación virtual del software que se encuentra en una carpeta, por ejemplo, un localizador/marcador de archivos virtual. De manera ventajosa, los datos que se cifran son simples datos de ubicación física, aunque los datos cifrados de salida en sí mismos pueden ser físicos o virtuales.
También se puede almacenar un sello de tiempo en el archivo de configuración cifrado. Por ejemplo, la fecha y la hora de la instalación se pueden cifrar y almacenar en el archivo de configuración. El archivo de configuración cifrado también puede contener información de identificación acerca de la aplicación de software y el ordenador en el que está instalada.
En el paso 114, se actualiza la base de datos 32 de registro. Los datos que se pueden registrar incluyen uno o más de los siguientes: bandera de registro completo, fecha, hora, dirección IP y número de licencia (si es aplicable), aunque esta lista no es exhaustiva.
El módulo de utilidad 38 escribe entonces los datos de ubicación cifrados (la cadena resumen) en el medio de almacenamiento (por ejemplo, memoria MM o SS). Esto puede estar en el Registro de MS Windows si MS Windows es el sistema operativo subyacente, o en un archivo de configuración si el sistema operativo subyacente es Unix o MS Windows (paso 116).
En realizaciones, en cualquier momento durante o después del procedimiento de utilidad de seguridad, la unidad forense/de análisis 36 puede inspeccionar la base de datos 32 de registro en línea para detectar patrones de actividad de instalación sospechosos y/o puede inspeccionar registros de procedimientos abortados (paso 200). Dependiendo de la información registrada, se puede dirigir una investigación adicional de las circunstancias.
De manera importante, se puede almacenar información que confirme que ha ocurrido una activación/registro con éxito (es decir, autorizada).
Después de la instalación, cuando se ejecuta el software, la utilidad de seguridad 38 comprueba inicialmente la licencia frente a los datos del servidor de licencias 34 para autenticar de nuevo al usuario. La información dentro del archivo de configuración se comprueba y actualiza. Si el usuario se autentica, el servidor de licencias 34 permitirá que una licencia sea “retirada” para ser usada por el software.
La Figura 4 representa las comprobaciones que se hacen en o durante el tiempo de ejecución del software según una realización. En el paso 300, un usuario arranca un programa de software que se ha instalado en su máquina/MM 10. En el paso 301, el software intenta conectarse al servidor de licencias 34 para verificar que el usuario está autorizado a ejecutar el software y retirar una licencia. Si el software puede retirar una licencia, la aplicación se ejecutará (paso 309). Si el software no se puede conectar con el servidor de licencias 34, no se retirará una licencia y el software pasa al paso 302. En el paso 302, el sistema operativo determina las coordenadas de ubicación física del software o una parte específica del software diseñada con el propósito de comparación (la ubicación física de tiempo de ejecución). En el paso 304, las coordenadas de la ubicación física de tiempo de ejecución determinadas se cifran usando una función resumen como se ha descrito anteriormente. En el paso 306, el programa de software compara la ubicación física de tiempo de ejecución cifrada del paso 304 frente a la ubicación física de tiempo de instalación predeterminada cifrada almacenada, por ejemplo, almacenada en un archivo de configuración (del paso 116). Si las dos cadenas resumen coinciden (“PASA”), el programa de software puede continuar ejecutándose (paso 308). De otro modo, si las cadenas resumen no coinciden (“FALLA”), se cancela la apertura/ejecución del programa de software (paso 310).
La información relacionada con el arranque del software, o los intentos de iniciar el software, se puede registrar para su análisis en tiempo real o futuro.
Si se ha copiado el sistema, derivando el proceso de registro, entonces la probabilidad de que las dos cadenas resumen coincidan es muy baja por las razones descritas anteriormente. De manera similar, si se intenta un acceso no autorizado, un usuario no autorizado no tendrá una cadena resumen coincidente válida (por ejemplo, datos de ubicación cifrados y/o nombre de usuario). En estos casos, el software puede no ser ejecutado o, si los procedimientos de comprobación son parte del proceso de instalación, se puede detener la instalación en sí misma. En el caso de un intento de acceso no autorizado, el software puede ser desinstalado y/o se puede enviar un mensaje al organismo que autoriza el software para informarle del intento de acceso no autorizado.
En algunos casos, será necesario volver a ejecutar la utilidad que configuró el archivo de configuración con las ubicaciones resumen, por ejemplo, si el software no se ejecuta después de una desfragmentación del MM (donde las ubicaciones de los archivos pueden cambiar), un movimiento de un archivo a otro MM, o si se requiere una reconstrucción del MM por cualquier razón.
A modo de ejemplo, supongamos que un sistema de software comprende solo tres archivos:
• programa.exe - el programa ejecutable
• programa.prm - archivo de programa - contiene información de parámetros que no cambian
• programa.cfg - archivo de configuración - contiene el resumen cifrado para las coordenadas de ubicación del archivo especificado
El archivo especificado usado para las coordenadas de ubicación necesitaría ser un archivo de solo lectura y podría ser o bien un programa.exe o bien programa.prm, pero supongamos que es programa.prm para este ejemplo.
La utilidad de seguridad 38 cuando se ejecuta, y si tiene éxito, determinará la ubicación del programa.prm (paso 110), lo cifrará (paso 112) y luego colocará la cadena resumen en el archivo programa.cfg (paso 116), y/o se podría almacenar en otro lugar.
Incluso si un instalador deshonesto fuera a deducir cuál era el archivo especificado y en qué archivo se mantuvo la cadena resumen, la fuerza de la función resumen de cifrado frustraría todos los intentos de copiar el software y desviaría el proceso correcto de instalación y activación. Si se copia un programa o software protegido sin pasar por el proceso de “activación” de la Figura 2, entonces es altamente improbable que funcione la copia de los componentes del programa en otro disco de ordenador, o el uso de un procedimiento de instalación pirateado, en la medida que la probabilidad de ser instalado exactamente en la misma ubicación en un disco diferente es extremadamente baja.
En las realizaciones, el software incluye una fecha/período de expiración o una característica de período de gracia que permite el uso fuera de línea del software si está dentro de un período de gracia especificado. Mientras que la aplicación de software esté ejecutándose y tenga una licencia válida (ejecutándose en modo en línea), puede actualizar continuamente el archivo de configuración cifrado que registra la información acerca de la aplicación, el ordenador y el sello de tiempo. El sello de tiempo actualizado es entonces la hora/fecha actual.
En el caso de que la aplicación de software pierda la conexión con el servidor de licencias 34, el último sello de tiempo registrado se lee del archivo de configuración. Si ese sello de tiempo más el período de gracia da como resultado un tiempo que sea posterior al tiempo actual (es decir, en el futuro), la aplicación continuará operando como si tuviera una licencia (ejecutándose en modo fuera de línea). Si y cuando el período de gracia/expiración ha expirado, el software no se lanzará o se abortará y se notifica al usuario que la licencia ha expirado.
El archivo de configuración se evalúa en el arranque, permitiendo por ello que el software se lance mientras que no haya conexión con el servidor de licencias, siempre y cuando esté dentro del período de gracia permitido.
El período de gracia, por lo tanto, no es un proceso ligado ni dependiente de que el software se conecte primero al servidor de licencias en el arranque. Dado que el archivo de configuración solamente se crea o actualiza cuando el software está operando en modo de licencia (es decir, cuando está conectado al servidor de licencias 34), la aplicación debe tener licencia con el fin de calificar para su operación en el período de gracia.
Dado que se permite que el software se ejecute en el período de gracia sin una licencia concurrente si hay un archivo de configuración válido que contiene una referencia de característica dentro del período de gracia, el archivo de configuración debe ser seguro y único, de modo que copiarlo en otro ordenador no permitirá el lanzamiento del software por un usuario no autorizado en un ordenador no autorizado. Esto se logra usando el cifrado descrito anteriormente y la ubicación física determinada almacenada en el archivo de configuración.
Además de la ubicación física determinada del software y el sello de tiempo, los datos que se pueden almacenar en el archivo de configuración cifrado incluyen, pero no se limitan a: nombre del ordenador principal del ordenador; dominio del ordenador; dirección o direcciones MAC del ordenador; fecha/hora de expiración (fecha/hora actual más período de gracia); nombre de usuario (incluyendo el dominio) de la cuenta del ordenador que está ejecutando el software; ID de producto y de características de todas las licencias que se retiran actualmente por el software; ID de proceso si el software en ejecución; y una copia de los datos de la memoria de clave de licencia.
A modo de ejemplo, una vez que se hayan recuperado los elementos de datos, se almacenarán de la siguiente forma:
(1) El nombre de ordenador principal del ordenador, el dominio del ordenador, la dirección o direcciones MAC del ordenador, la ubicación de la aplicación en ejecución ejecutable en el volumen lógico del ordenador, el ID de proceso y, opcionalmente, el nombre de usuario de la aplicación en ejecución se combinan en una estructura de datos (XML) luego se convierten en una matriz de bytes y se hace un resumen.
(2) El valor resumen del conjunto de datos (1) anterior, la versión del esquema de archivo de configuración que se usa, la fecha y hora (actual) de creación del archivo de configuración, el ID del producto de licencia, el nombre del archivo ejecutable de la aplicación, el nombre de usuario (incluyendo el dominio) del usuario que está ejecutando la aplicación que creó el archivo de configuración, los ID de características de las licencias que se han retirado por la aplicación y sus respectivas fechas/horas de expiración de retirada y período de gracia se combinan en una estructura de datos XML y se cifran.
(3) La estructura de datos XML cifrada (2) anterior se escribirá en un archivo como un flujo de bytes y se guardará en el directorio de datos de la aplicación de perfil del usuario.
La figura 5 ilustra un método que controla el acceso según una realización. En el paso 400, un usuario arranca un programa de software que se ha instalado en su máquina/MM 10. En el paso 402, el software comprueba si se puede conectar al servidor de licencias 34 para verificar que el usuario está autorizado para ejecutar el software y retirar una licencia. Si el software no se puede conectar al servidor de licencias, no se retirará una licencia y el software pasa en modo fuera de línea al paso 410. Si el software se puede conectar al servidor de licencias 34, pasa en modo en línea al paso 404.
Modo fuera de línea
En el paso 410, el software comprueba si existe un archivo de configuración en el dispositivo del usuario. Si no existe ningún archivo de configuración, el software nunca tuvo una licencia y se notifica al usuario que la aplicación no tiene licencia en el paso 418. El software puede terminar entonces en el paso 420. Si se encuentra un archivo de configuración en el dispositivo del usuario, en el paso 412, el sistema operativo determina las coordenadas de ubicación física del software o una parte específica del software diseñada con el propósito de comparación. Las coordenadas de ubicación determinadas se cifran usando una función resumen como se ha descrito anteriormente. En el paso 414, el programa de software compara la ubicación cifrada del paso 412 frente a la ubicación cifrada almacenada, por ejemplo, almacenada en un archivo de configuración. Si las dos cadenas resumen coinciden, el programa de software entonces comprueba, en 416, si el período de gracia ha expirado. Si las cadenas resumen no coinciden en 414, o el período de gracia ha expirado en 416, se notifica al usuario que el software no tiene licencia en 418. El software entonces puede terminar en el paso 420. Si el período de gracia no ha expirado en 416, el software tiene licencia y se ejecutará en el paso 418. Después de que haya transcurrido un período de tiempo predeterminado (N minutos), el software comprobará de nuevo en 402 si se puede conectar al servidor de licencias 34 para verificar la licencia. Si no se hace ninguna conexión con el servidor de licencias 34 en 402, el software vuelve al paso 410. La secuencia de los pasos 410, 412, 414, 416, 418, 402 se repite hasta que o bien expire el período de gracia o bien se establezca la conexión al servidor de licencias 34.
Si se establece la conexión al servidor, en 402, el usuario se autentica y se retira la licencia. En el paso 406, el software comprueba los datos del archivo de configuración cifrados y, cuando sea necesario, se actualiza, incluyendo el presente sello de tiempo. En el paso 408, el software pasa a ejecutarse en modo en línea.
Modo en línea
En el paso 402, si el software se puede conectar al servidor de licencias 34 y retirar la licencia, en el paso 404 la aplicación comprueba si existe un archivo de configuración en el dispositivo del usuario. Si el archivo de configuración no existe, se creará. Si se encuentra un archivo de configuración en 404, se comprueban los datos del archivo de configuración cifrado y, cuando sea necesario, se actualizan, incluyendo el presente sello de tiempo en 406. El software entonces pasa a ejecutarse en modo en línea en 408. Después de que haya transcurrido un período de tiempo predeterminado (N minutos), el software comprobará en 430 si se puede conectarse al servidor de licencias 34 para verificar la licencia. Si la conexión con el servidor 34 todavía está presente, el usuario se autentica y la licencia permanece retirada. El software entonces vuelve al paso 406, comprueba los datos del archivo de configuración cifrado y, cuando sea necesario, los actualiza, incluyendo el presente sello de tiempo. En el paso 408, el software continúa ejecutándose en modo en línea. La secuencia de los pasos 406, 408, 430 se repite hasta que se termine el software por el usuario o se pierda la conexión con el servidor de licencias 34. Si se pierde la conexión con el servidor de licencias 34, en el paso 430 el software saldrá del modo en línea y pasará en modo fuera de línea al paso 410.
Además de crear/actualizar el archivo de configuración cifrado acerca de la máquina y el sello de tiempo, la identidad de la característica que se sacó también se almacenará en forma de un ID de producto y un par de ID de características con una fecha y hora de expiración del período de gracia. Esto permite que la aplicación conozca qué licencias de características del producto ha retirado correctamente y cuándo expirarán los respectivos períodos de gracia.
Por el bien de la integridad, también se expresa que el término “que comprende” no excluye otros elementos o pasos, el término “un” o “una” no excluye una pluralidad, y los signos de referencia en las reivindicaciones no se interpretarán como limitantes del alcance de las reivindicaciones.

Claims (12)

REIVINDICACIONES
1. Un método de control de acceso a software instalado en un dispositivo de almacenamiento o durante la instalación de dicho software, el método que comprende:
(i) tras la instalación del software:
comprobar (104) un número de licencia frente a los datos de un servidor de licencias (34) para determinar si un usuario tiene derecho a instalar el software en el dispositivo de almacenamiento;
determinar (110) la ubicación física de dicho software, o una parte del mismo, en dicho dispositivo de almacenamiento, siendo dicha ubicación la ubicación física en el momento de la instalación;
almacenar (116) la ubicación física determinada en el momento de la instalación en un archivo de configuración almacenado en el dispositivo de almacenamiento (10), incluyendo el almacenamiento de uno o más parámetros que incluyen una hora y fecha de la instalación y un período de expiración para permitir o denegar el acceso sin licencia al software; y
almacenar (114) datos que confirmen que el software se ha activado con éxito según dicho uno o más parámetros;
y (ii) tras iniciar o durante el tiempo de ejecución del software instalado:
comprobar (301; 402, 430) si el software puede conectarse al servidor de licencias (34); y
(a) si el software puede conectarse al servidor de licencias:
comprobar (404) uno o más parámetros en el archivo de configuración almacenado en el dispositivo de almacenamiento frente a datos del servidor de licencias para determinar si un usuario tiene derecho a retirar una licencia del servidor de licencias para ejecutar el software;
si se determina que el usuario tiene derecho a retirar una licencia, retirar una licencia, ejecutar o continuar ejecutando (309; 408) el software y actualizar (406) el uno o más parámetros, en donde el uno o más parámetros incluyen además la hora y la fecha de retirada; o
(b) si el software no puede conectarse al servidor de licencias:
determinar (302; 412) la ubicación física del software, o una parte del mismo, en un dispositivo de almacenamiento, siendo dicha ubicación la ubicación física de tiempo de ejecución;
comparar (306; 414) la ubicación física de tiempo de ejecución determinada del software con la ubicación física de tiempo de instalación predeterminada almacenada en el archivo de configuración;
comprobar (416) si la presente hora está dentro del período de expiración; y
negar el acceso o impedir la ejecución (310; 420) del software cuando la ubicación del tiempo de ejecución determinada y la ubicación física del tiempo de instalación predeterminada no coincidan o si la hora presente no está dentro del período de expiración.
2. El método de la reivindicación 1, en donde la ubicación de tiempo de ejecución determinada y/o la ubicación física de tiempo de instalación predeterminada es una coordenada de ubicación tal como un sector y bloque.
3. El método de la reivindicación 1 o 2, que comprende además cifrar la ubicación de tiempo de ejecución determinada y almacenar la ubicación de tiempo de ejecución cifrada, y cifrar la ubicación de tiempo de instalación determinada y almacenar la ubicación de tiempo de instalación cifrada.
4. El método de la reivindicación 3, en donde el cifrado de la ubicación de tiempo de ejecución determinada y/o la ubicación de tiempo de instalación determinada usa un conjunto de funciones resumen criptográficas.
5. El método de cualquier reivindicación anterior, que comprende además registrar una instancia del método que se realiza en una base de datos.
6. El método de cualquier reivindicación anterior, en donde el paso de comprobar (301; 402, 430) si el software se puede conectar a un servidor de licencias ocurre periódicamente durante el tiempo de ejecución.
7. El método de cualquier reivindicación anterior, en donde el paso de determinar (412) la ubicación física del software, o una parte del mismo, en un dispositivo de almacenamiento comprende además comprobar (410) si un archivo de configuración está almacenado en el dispositivo de almacenamiento.
8. El método de cualquier reivindicación anterior, en donde el período de expiración discurre desde la última hora de retirada registrada.
9. El método de cualquier reivindicación anterior, que comprende además registrar información con relación a la activación de dicho software, incluyendo si la activación fue o no exitosa y/o detalles del usuario.
10. El método de cualquier reivindicación anterior, en donde el dispositivo de almacenamiento es un dispositivo de almacenamiento de medio magnético tal como un disco magnético; o memoria de estado sólido.
11. Un sistema para controlar el acceso a software instalado en un dispositivo de almacenamiento, el sistema que comprende:
un módulo de control de acceso (38) configurado para realizar los pasos del método de cualquiera de las reivindicaciones 1 a 10.
12. El sistema de la reivindicación 11, en donde el dispositivo de almacenamiento es un dispositivo de almacenamiento de medio magnético tal como un disco magnético; o memoria de estado sólido.
ES16198679T 2015-11-13 2016-11-14 Protección de software Active ES2826551T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1520047.0A GB2544328B (en) 2015-11-13 2015-11-13 Software protection
EP16175527.7A EP3168767A1 (en) 2015-11-13 2016-06-21 Software protection

Publications (1)

Publication Number Publication Date
ES2826551T3 true ES2826551T3 (es) 2021-05-18

Family

ID=55132744

Family Applications (1)

Application Number Title Priority Date Filing Date
ES16198679T Active ES2826551T3 (es) 2015-11-13 2016-11-14 Protección de software

Country Status (9)

Country Link
EP (1) EP3168767A1 (es)
CY (1) CY1123473T1 (es)
DK (1) DK3168768T3 (es)
ES (1) ES2826551T3 (es)
GB (2) GB2544328B (es)
HR (1) HRP20201678T1 (es)
HU (1) HUE051047T2 (es)
LT (1) LT3168768T (es)
PT (1) PT3168768T (es)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8997249B1 (en) * 2014-06-18 2015-03-31 Storagecraft Technology Corporation Software activation and revalidation

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0754613B2 (ja) * 1986-07-21 1995-06-07 松下電器産業株式会社 光デイスクのコピ−防止方法
US5327563A (en) * 1992-11-13 1994-07-05 Hewlett-Packard Method for locking software files to a specific storage device
US6324649B1 (en) * 1998-03-02 2001-11-27 Compaq Computer Corporation Modified license key entry for pre-installation of software
US20080021936A1 (en) * 2000-10-26 2008-01-24 Reynolds Mark L Tools and techniques for original digital files

Also Published As

Publication number Publication date
HRP20201678T1 (hr) 2021-03-05
DK3168768T3 (da) 2020-10-26
HUE051047T2 (hu) 2021-03-01
PT3168768T (pt) 2020-10-30
GB201520047D0 (en) 2015-12-30
GB2546366B (en) 2019-05-08
EP3168767A1 (en) 2017-05-17
LT3168768T (lt) 2021-01-11
CY1123473T1 (el) 2022-03-24
GB2544328B (en) 2019-09-18
GB2546366A (en) 2017-07-19
GB2544328A (en) 2017-05-17

Similar Documents

Publication Publication Date Title
JP6595822B2 (ja) 情報処理装置及びその制御方法
US7779478B2 (en) System and method for distributed module authentication
US20170230179A1 (en) Password triggered trusted encrytpion key deletion
US8528062B1 (en) Method and service for securing a system networked to a cloud computing environment from malicious code attacks
JP5270694B2 (ja) 機密ファイルを保護するためのクライアント・コンピュータ、及びそのサーバ・コンピュータ、並びにその方法及びコンピュータ・プログラム
US9197633B1 (en) Methods and apparatuses for securely operating shared host computers with portable apparatuses
US11329814B2 (en) Self-encryption drive (SED)
JP6072091B2 (ja) アプリケーション・プログラム用の安全なアクセス方法および安全なアクセス装置
JP2005525662A (ja) 認証のためのシステムおよび方法
JP2008159059A (ja) ハード・ディスク・ドライブ
US7921270B2 (en) Methods and systems for controlling access to a storage device
EP3001341B1 (en) NFC device, software installation method, software uninstallation method, computer program and article of manufacture
US10460110B1 (en) Systems and methods for unlocking self-encrypting data storage devices
ES2826551T3 (es) Protección de software
US9003201B2 (en) Hardware protection for encrypted strings and protection of security parameters
CN104361298A (zh) 信息安全保密的方法和装置
US8490208B2 (en) Method and device for detecting if a computer file has been copied and method and device for enabling such detection
EP3168768B1 (en) Software protection
WO2012050421A1 (en) Secure external storage system and method thereof
GB2574316A (en) Controlling access to data
JP5126530B2 (ja) コンピュータの環境を測定する機能を備えた外部記憶デバイス
CN112513849A (zh) 信息处理装置、验证方法和验证程序
Quarisa An inexpensive hardware-based identification system for improved computer security