ES2253426T3 - Sistema y metodo de firma mediante codigo. - Google Patents
Sistema y metodo de firma mediante codigo.Info
- Publication number
- ES2253426T3 ES2253426T3 ES01973901T ES01973901T ES2253426T3 ES 2253426 T3 ES2253426 T3 ES 2253426T3 ES 01973901 T ES01973901 T ES 01973901T ES 01973901 T ES01973901 T ES 01973901T ES 2253426 T3 ES2253426 T3 ES 2253426T3
- Authority
- ES
- Spain
- Prior art keywords
- signature
- application
- software application
- api
- mobile 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 34
- 239000008186 active pharmaceutical agent Substances 0.000 claims description 55
- 238000012795 verification Methods 0.000 claims description 25
- 230000006870 function Effects 0.000 claims description 20
- 230000015654 memory Effects 0.000 claims description 7
- 238000010926 purge Methods 0.000 claims description 5
- 238000013499 data model Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 48
- 238000010586 diagram Methods 0.000 description 8
- 238000010295 mobile communication Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000002146 bilateral effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 241000700605 Viruses Species 0.000 description 3
- 230000001066 destructive effect Effects 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/629—Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/126—Applying verification of the received information the source of the received data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1483—Countermeasures against malicious traffic service impersonation, e.g. phishing, pharming or web spoofing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/60—Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/067—Network architectures or network communication protocols for network security for supporting key management in a packet data network using one-time keys
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
- Circuits Of Receivers In General (AREA)
- Electrotherapy Devices (AREA)
- Plural Heterocyclic Compounds (AREA)
- Container Filling Or Packaging Operations (AREA)
Abstract
Un sistema de firmas por código para la operación en conjunción con una aplicación de software (66) que tiene una firma digital (96) y una identificación de la firma (94), en el que la firma digital está asociada con la identificación de la firma, que comprende: - una plataforma de aplicación; - una interfaz de programación de aplicación (API) que tiene un identificador de firma asociada (92), en el que la API está configurada para enlazar la aplicación de software con la plataforma de aplicación; y - en el que la autenticidad de la firma digital se verifica mediante una máquina virtual (69), con el fin de controlar el acceso a la API mediante la aplicación de software, en el que el identificador de la firma corresponde con la identificación de la firma; - en el que la firma digital se genera mediante la aplicación de una clave de firma privada a un algoritmo Hash de la aplicación de software, y en el que la máquina virtual verifica la autenticidad de la firma digital, mediante la generación de un algoritmo Hash de la aplicación de software para obtener un algoritmo de Hash generado, aplicando una clave de firma pública a la firma para obtener un algoritmo Hash recuperado, y comparar el algoritmo Hash generado con el algoritmo Hash recuperado.
Description
Sistema y método de firma mediante código.
Esta invención está relacionada en general con el
campo de los protocolos de seguridad para aplicaciones de software.
Más en particular, la invención proporciona un sistema y método de
firma mediante código que está adaptado perfectamente en particular
para las aplicaciones Java^{TM} para los dispositivos móviles de
comunicaciones, tal como los Asistentes Digitales Personales (PDA),
teléfonos celulares, y dispositivos de comunicaciones
radioeléctricas bilaterales (denominados colectivamente de ahora en
adelante como "dispositivos móviles" o sencillamente
"dispositivos").
Son conocidos los protocolos de seguridad que
incluyen esquemas de firma mediante códigos por software.
Típicamente, dichos protocolos de seguridad se utilizan para
asegurar la fiabilidad de las aplicaciones de software que se
descargan desde Internet. En un esquema típico de firma mediante
código por software, se encuentra asociada una firma digital a la
aplicación de software que identifica al desarrollador del software.
Una vez que el software se descarga por el usuario, el usuario
tiene que utilizar típicamente su propia evaluación para determinar
si la aplicación del software es fiable o no, basándose solamente en
su conocimiento de la reputación del desarrollador del software.
Este tipo de esquema de firma mediante código no asegura que la
aplicación de software escrita por una tercera parte para un
dispositivo móvil pueda interactuar debidamente con las aplicaciones
nativas del dispositivo y con otros recursos. Debido a que los
protocolos de las firmas por código típicas no son seguros y que se
basan solo en el juicio del usuario, existe un riesgo serio de que
aplicaciones de software del tipo de "caballo de Troya" puedan
ser descargadas e instaladas en un dispositivo móvil.
El documento US-5978484 expone un
sistema para la distribución de objetos ejecutables firmados
digitalmente utilizando un algoritmo Hash seguro encriptado para RSA
(área de servicio rural).
Permanece también la necesidad de operadores de
redes que tengan un sistema y método para mantener el control sobre
las aplicaciones de software que se activan en los dispositivos
móviles.
Permanece la necesidad adicional en las redes de
2,5G y 3G en las que los clientes de corporaciones o bien los
operadores de redes les gustaría controlar los tipos de software en
los dispositivos suministrados a sus empleados.
Se proporciona un sistema y código de firma
mediante código. El sistema de firma mediante código opera con
conjunción con una aplicación de software que tiene una firma
digital y que incluye una plataforma de la aplicación, una interfaz
de programación de la aplicación (API), y una máquina virtual. La
interfaz API está configurada para enlazar la aplicación de
software con la plataforma de la aplicación. La máquina virtual
verifica la autenticidad de la firma digital con el fin de controlar
el acceso a la API mediante la aplicación del software.
Un sistema de firma por código para la operación
en conjunción con una aplicación de software que tiene una firma
digital, de acuerdo con otra realización de la invención, que
comprende una plataforma de aplicación, una pluralidad de API,
configurada cada una para enlazar la aplicación del software con un
recurso en la plataforma de la aplicación, y una máquina virtual
que verifica la autenticidad de la firma digital, con el fin de
controlar el acceso a la API por la aplicación del software, en el
que la maquina virtual verifica la autenticidad de la firma digital
con el fin de controlar el acceso a la pluralidad de API por la
aplicación del software.
De acuerdo con una realización adicional de la
invención, un método de controlar el acceso a las interfaces de
programación de aplicaciones sensibles en un dispositivo móvil que
comprende las etapas de cargar una aplicación de software en el
dispositivo móvil que requiere el acceso a una API sensible,
determinando si la aplicación de software incluye o no una firma
digital asociada con la API sensible, y si la aplicación de software
no incluye una firma digital asociada con la API sensible, denegando
entonces el acceso de la aplicación de software a la API
sensible.
En otra realización de la invención, un método
para controlar el acceso a una interfaz de programación de la
aplicación (API) en un dispositivo móvil mediante una aplicación de
software creada por un desarrollador de software que comprende las
etapas de recibir la aplicación de software desde el desarrollador
de software, revisando la aplicación de software para determinar si
puede acceder a la API, si la aplicación de software puede acceder a
la API, y asociando entonces una firma digital a la aplicación de
software, verificando la autenticidad de una firma digital asociada
con una aplicación del software, y proporcionando el acceso a la API
en las aplicaciones de software para las cuales es auténtica la
firma digital asociada.
Un método para restringir el acceso a una
interfaz API en un dispositivo móvil, de acuerdo con una realización
adicional de la invención, que comprende las etapas de registrar
uno o más desarrolladores de software de confianza probada para
diseñar aplicaciones de software que tengan acceso a la API
sensible, recibiendo un algoritmo de Hash seguro de una aplicación
de software, determinando si la aplicación del software fue diseñada
por uno de los desarrolladores de software registrados, y si la
aplicación de software fue diseñada por uno de los desarrolladores
de software registrados, generándose entonces una firma digital
utilizando el algoritmo Hash seguro de la aplicación de software, en
el que la firma digital puede asociarse a la aplicación del
software, y en el que el dispositivo móvil verifica la autenticidad
de la firma digital con el fin de controlar el acceso a la interfaz
API sensible por la aplicación de software.
En una realización adicional incluso, un método
para restringir el acceso a las interfaces de programación de
aplicaciones en un dispositivo móvil que comprende las etapas de
cargar una aplicación de software en el dispositivo móvil que
requiere el acceso a una o más interfaces API, determinando si el
software de aplicación incluye o no una firma digital asociada con
el dispositivo móvil, y si la aplicación de software no incluye una
firma digital asociada con el dispositivo móvil, denegando entonces
el acceso a la aplicación de software de una ó más API.
La figura 1 es un diagrama que muestra un
protocolo de firma de código de acuerdo con una realización de la
invención;
la figura 2 es un diagrama de flujo del protocolo
de firma de código descrito anteriormente con referencia a la figura
1;
la figura 3 es un diagrama de bloques de un
sistema de firma por código en un dispositivo móvil;
la figura 3A es un diagrama de bloques de un
sistema de firma por código en una pluralidad de dispositivos
móviles;
la figura 4 es un diagrama de flujo que muestra
la operación del sistema de firma por código descrito anteriormente
con referencia a la figura 3 y a la figura 3A;
la figura 5 es un diagrama de flujo que muestra
la gestión de las autoridades de firma por código descrita con
referencia a la figura 3A; y
la figura 6 es un diagrama de bloques de un
dispositivo de comunicaciones móviles en el cual puede ser
implementado un sistema y método de firma por código.
Con referencia ahora a las figuras de los
dibujos, la figura 1 es un diagrama que muestra un protocolo de
firma por código de acuerdo con una realización de la invención. El
desarrollador de aplicaciones 12 crea una aplicación de software 14
(aplicación Y) para un dispositivo móvil que requiere el acceso una
o más interfaces API sensibles en el dispositivo móvil. La
aplicación de software Y 14 puede ser, por ejemplo, una aplicación
Java, que opera en una máquina virtual Java instalada en el
dispositivo móvil. Una API habilita la aplicación de software Y
para hacer de interfaz con una plataforma de la aplicación que puede
incluir, por ejemplo, recursos tales como el hardware del
dispositivo, sistema operativo y software central y modelos de
datos. Con el fin de llamadas de función o bien para interactuar
con dichos recursos del dispositivo, la aplicación de software Y
tiene que tener acceso a una o más API. Las API pueden por tanto
"puentear" una aplicación de software y los recursos asociados
del dispositivo. En esta descripción y en las reivindicaciones
adjuntas, las referencias al acceso de las API deberán ser
interpretadas en el sentido de incluir el acceso de una API de forma
que permite que la aplicación de software Y interactúe con uno o más
recursos del dispositivo correspondientes, Proporcionando el acceso
a cualquier API se permite por tanto que una aplicación de software
Y pueda interactuar con los recursos asociados del dispositivo, por
lo que denegando el acceso a una API se impide que la aplicación
se software Y pueda interactuar con los recursos asociados. Por
ejemplo, una API de base datos puede comunicarse con un fichero del
dispositivo o un sistema de almacenamiento de datos, y tener acceso
a la API de la base de datos que proporcionaría la interacción entre
una aplicación de software Y y el fichero o el sistema de
almacenamiento de datos. La API de la interfaz de usuario (UI) se
comunicaría con los controladores y/o el software de control de los
componentes del dispositivo tal como una pantalla, teclado y
cualesquiera otros componentes que proporcionen la salida hacia el
usuario o acepten la entrada del usuario. En un dispositivo móvil,
una API de radio puede proporcionarse tan bien como una interfaz
para los recursos de comunicaciones radioeléctricas tales como un
transmisor y un receptor. De forma similar, una interfaz API
criptográfica puede proporcionarse para interactuar con un módulo
de criptografía que pueda implementar algoritmos en un dispositivo.
Estos son ejemplos meramente ilustrativos de API que pueden
proporcionarse en un dispositivo. El dispositivo puede incluir
cualquiera de esta API a modo de ejemplo, o bien diferentes API en
lugar de la adición en las descritas anteriormente.
Preferiblemente, cualquier API puede ser
clasificada como sensible por un fabricante de dispositivos móviles,
o posiblemente por un autor de API, un operador de una red
radioeléctrica, un propietario u operador del dispositivo, o alguna
otra entidad que puede estar afectada por un virus o código
malicioso en una aplicación de software del dispositivo. Por
ejemplo, el fabricante del dispositivo móvil puede clasificar como
sensibles aquellas API que hagan de interfaz con las rutinas
criptográficas, funciones de comunicaciones radioeléctricas, o
modelos de datos de propietario tales como un libro de direcciones
o entradas de calendario. Para la protección contra el acceso no
autorizado de estas API sensibles, se precisa que el desarrollador
de la aplicación 12 pueda obtener una o más firmas digitales del
fabricante del dispositivo móvil o bien otra entidad que esté
clasificada como sensible por las API, o bien a partir de una
autoridad 16 de firmas por códigos que actúe en nombre del
fabricante o bien otra entidad con interés en la protección del
acceso a las API del dispositivo sensible, y asociando la
firma(s) a la aplicación de software Y 14.
En una realización la firma digital se obtiene
para API sensible o librería que incluye una API sensible para la
cual se requiere el acceso de la aplicación de software. En algunos
casos, son deseables múltiples firmas. Esto permitiría un proveedor
de servicios, compañía o bien un operador de redes para restringir
algunas o todas las aplicaciones de software cargadas o
actualizadas en un conjunto en particular de dispositivos móviles.
En este escenario de múltiples firmas, todas las API están
restringidas y bloqueadas hasta que se verifique una firma
"global" para una aplicación de software. Por ejemplo, una
compañía puede desear impedir que sus empleados puedan ejecutar
cualesquiera aplicaciones de software en sus dispositivos sin antes
obtener un permiso del departamento de tecnología de información
corporativa o del departamento de servicios de ordenadores. Todos
los mencionados dispositivos móviles de la corporación pueden estar
configurados entonces para que precisen de la verificación de al
menos una firma global antes de que pueda ejecutarse una aplicación
de software. El acceso a las API de los dispositivos sensibles y a
las librerías, si las hubiera, podría estar restringido
adicionalmente, dependiendo de la verificación de las firmas
respectivas digitales correspondientes.
La representación ejecutable binaria de la
aplicación de software Y 14 puede ser independiente del tipo en
particular del dispositivo móvil o modelo de un dispositivo móvil.
La aplicación en particular Y 14 puede estar por ejemplo en un
formato binario de escritura una sola vez y ejecutable en cualquier
parte, tal como es el caso con las aplicaciones de software de
Java. No obstante, puede ser deseable tener una firma digital para
cada tipo o modelo de dispositivo móvil, o alternativamente para
cada plataforma o fabricante del dispositivo móvil. En
consecuencia, la aplicación de software Y 14 puede estar sometida a
varias autoridades de firmas por código si la aplicación de software
Y 14 está dirigida a varios dispositivos móviles.
La aplicación de software Y 14 se envía desde el
desarrollador de software 12 a la autoridad 16 de firmas por código.
En la realización mostrada en la figura 1, la autoridad de firmas
por código 16 revisa la aplicación de software Y 14, aunque se
describe con más detalles más adelante, y se contempla que la
autoridad 16 de firmas por códigos puede también considerar en su
lugar la identidad del desarrollador del software 12, para
determinar si la aplicación de software Y 14 debería estar firmada
o no. La autoridad 16 de firmas por código es preferiblemente uno
o más representantes del fabricante del dispositivo móvil, los
autores de cualesquiera API sensible o posiblemente otros que tengan
conocimiento de la operación de las API sensibles a las cuales tenga
necesite tener acceso la aplicación de software.
Si la autoridad 16 de firmas por código determina
que la aplicación de software Y 14 puede tener acceso a la API
sensible y que por tanto deberá tener firma, entonces se generará
una firma (no mostrada) para la aplicación de software Y 14 por la
autoridad 16 de firmas por código y asociada a la aplicación de
software Y 14. La aplicación de software firmada Y 22, que
comprende la aplicación de software Y 14 y la firma digital, es
retornada entonces al desarrollador de la aplicación 12. La firma
digital es preferiblemente una etiqueta que se genera utilizando
una clave 18 de firma privada mantenida solamente por la autoridad
16 de firma por código. Por ejemplo, de acuerdo con un esquema de
firmas, puede generarse un algoritmo Hash seguro de la aplicación
de software Y 14, utilizando un algoritmo Hash tal como el
Algoritmo Hash Seguro SHA1, y utilizándose después con la clave de
firma privada 18, para crear la firma digital. En algunos esquemas
de firma, la clave de firma privada se utiliza para encriptar un
algoritmo Hash de la información a firmar, tal como la aplicación
de software Y 14, mientras que en otros esquemas, la clave privada
puede utilizarse con otras formas para generar una firma a partir de
la información a firmar o una versión transformada de la
información.
La aplicación de software firmada Y 22 puede ser
entonces enviada al dispositivo móvil 28 o siendo descargada por el
dispositivo móvil 28 a través de una red radioeléctrica 24. Se
comprenderá, no obstante, que el protocolo de firmas por código de
acuerdo con la presente invención no está limitado a las
aplicaciones de software que se descarguen a través de una red
radioeléctrica. Por ejemplo, en realizaciones alternativas, la
aplicación de software firmada Y 22 puede ser descargada a un
ordenador personal a través de una red de ordenadores y cargada en
el dispositivo móvil a través de un enlace serie, o bien puede
adquirirse desde el desarrollador de aplicaciones 12 de cualquier
otra forma y descargada en el dispositivo móvil. Una vez que la
aplicación de software firmada Y 22 se cargue en el dispositivo
móvil 28, cada firma digital será verificada preferiblemente con
una clave de firma publica 20 antes de que la aplicación de software
Y 14 tenga garantizado el acceso a una librería API sensible.
Aunque la aplicación de software firmada Y 22 se cargue en un
dispositivo, se observará que la aplicación de software que puede
ser ejecutada eventualmente en el dispositivo es la aplicación de
software Y 14. Tal como se expuso anteriormente, la aplicación de
software firmada Y 22 incluye la aplicación de software Y 14 y una
o más firmas digitales asociadas (no mostradas). Cuando se verifican
las firmas, la aplicación de software Y 14 puede ser ejecutada en el
dispositivo y teniendo acceso a cualesquiera de las API para las
cuales hayan sido verificadas las correspondientes firmas.
La clave de firma pública 20 corresponde a la
clave de firma privada 18 mantenida por la autoridad de firma por
código 16, y siendo instalada preferiblemente en el dispositivo
móvil junto con la API sensible. No obstante, la clave pública 10
puede ser obtenida en su lugar a través de un repositorio de claves
publicas (no mostrado), utilizando el dispositivo 28 o posiblemente
un sistema de ordenador, e instalada en el dispositivo 28 según sea
preciso. De acuerdo con una realización de un esquema de firmas, el
dispositivo móvil 28 calcula un algoritmo Hash de la aplicación de
software Y 14 en la aplicación de software firmado Y 22, utilizando
el mismo algoritmo Hash que la autoridad de firmas por código 16,
y utiliza la firma digital y la clave de firma publica 20 para
recuperar el algoritmo Hash calculado por la autoridad de firmas 16.
El algoritmo Hash resultante calculado localmente y el algoritmo
Hash recuperado de la firma digital se comparan, y si los algoritmos
Hash son el mismo, queda velicada la firma. La aplicación de
software Y 14 puede ser entonces ejecutada en el dispositivo 28 y
teniendo acceso a cualesquiera API sensible para las cuales se haya
verificado la firma(s) correspondiente. Tal como se ha
expuesto anteriormente, la invención no está limitada en forma
alguna a este esquema de firma a modo de ejemplo ilustrativo en
particular. Pueden utilizarse otros esquemas de firmas incluyendo
además los esquemas de firmas de claves públicas, en conjunción con
métodos y sistemas de firmas de códigos aquí descritos.
La figura 2 es un diagrama de flujo 30 del
protocolo de firmas por código anteriormente descrito con referencia
a la figura 1. El protocolo comienza en la etapa 32. En la etapa
34, un desarrollador de software escribe la aplicación de software
Y para un dispositivo móvil que requiere el acceso a una API o
librería sensible que expone una API sensible (librería de API).
Tal como se expuso anteriormente, algunas o todas las API en un
dispositivo móvil pueden ser clasificadas como sensibles,
requiriendo por tanto la verificación de una firma digital para
obtener el acceso por cualquier aplicación de software, tal como la
aplicación de software Y. En la etapa 36, la aplicación Y se
comprueba por el desarrollador de software, utilizando
preferiblemente un simulador de dispositivos en el cual ha sido
inhabilitada la función de verificación de la firma digital. De
esta forma, el desarrollador de software puede depurar la aplicación
de software Y antes de que se adquiera la firma digital a partir de
la autoridad de firmas por código. Una vez que la aplicación de
software Y haya sido escrita y depurada, se envía a la autoridad de
firmas por código en la etapa 38.
En las etapas 40 y 42, la autoridad de firmas por
código revisa la aplicación de software Y para determinar si deberá
dar acceso o no a la API sensible, y si acepta o rechaza la
aplicación de software. La autoridad de firmas por código puede
aplicar varios criterios para determinar si concede o no el acceso
de la aplicación de software a la API sensible, incluyendo por
ejemplo la magnitud del tamaño de la aplicación de software, los
recursos del dispositivo a los que tienen acceso la API, la utilidad
detectada de la aplicación de software, la interacción con otras
aplicaciones de software, la inclusión de un virus o de otro código
destructor, y si el desarrollador tiene o no una obligación
contractual o bien otra configuración de negocios con el fabricante
del dispositivo móvil. Los detalles adicionales de las autoridades
de firmas por código y los desarrolladores se describen más adelante
con referencia a la figura 5.
Si la autoridad de firmas por código acepta la
aplicación de software Y, entonces se asociará una firma digital, y
preferiblemente una identificación de la firma, a la aplicación de
software Y en la etapa 46. Tal como se expuso anteriormente, la
firma digital puede ser generada mediante la utilización de un
algoritmo Hash de la aplicación de software Y, y una clave de firma
privada 18. La identificación de la firma está descrita más
adelante con referencia a las figuras 3 y 4. Una vez que la firma
digital y la identificación de la firma se encuentren asociadas con
la aplicación de software Y para generar una aplicación de software
firmada, la aplicación de software Y es retornada al desarrollador
de software en la etapa 48. El desarrollador de software puede
entonces dar licencia a la aplicación de software firmada Y a cargar
en un dispositivo móvil (etapa 50). Si la autoridad de firmas por
código rechaza la aplicación de software Y, no obstante, entonces se
envía preferiblemente una notificación de rechazo al desarrollador
de software (etapa 44), y la aplicación de software Y estará
inhabilitada para tener acceso a cualesquiera API asociadas con la
firma.
En una realización alternativa, el desarrollador
de software puede proporcionar a la autoridad de firmas por código
solo un código Hash de la aplicación de software Y, o bien
proporcionar la aplicación de software Y en algún tipo de formato
resumido. Si la aplicación de software Y es una aplicación Java,
entonces los ficheros de clase binaria "*." independientes del
dispositivo podrán ser utilizados en la operación del algoritmo
Hash, aunque los ficheros dependientes del dispositivo tales como
los ficheros "*.cod" utilizados por el concesionario de la
presente aplicación pueden en su lugar ser utilizados en la
operación Hash o bien en otras operaciones de la firma digital
cuando las aplicaciones de software tengan por objeto la operación
en dispositivos en particular o en distintos tipos de
dispositivos. Mediante el suministro de solo un algoritmo Hash una
versión resumida de la aplicación de software Y, el desarrollador
de software puede tener la aplicación de software Y sin revelar el
código de propietario a la autoridad de firmas por código. El
algoritmo Hash de la aplicación de software Y, junto con la clave
de la firma publica 18, pueden ser utilizados entonces por la
autoridad de firmas por código, para generar la firma digital. En
caso de enviar otra versión resumida de la aplicación de software Y
a la autoridad de firmas por código, entonces la versión resumida
puede ser utilizada de forma similar para generar la firma digital,
en el supuesto de que el esquema o algoritmo de resumen, al igual
que un algoritmo Hash, genere diferentes salidas para las distintas
entradas. Esto asegura que cualquier aplicación tenga una versión
resumida distinta y por tanto que una firma diferente pueda ser
verificada solamente cuando se asocie a la aplicación de software
correspondiente a partir de la cual se generó la versión resumida.
Debido a que esta realización no habilita a la autoridad de firmas
por código para revisar en su totalidad la aplicación de software
en cuanto a virus y otros códigos destructivos, no obstante, podrá
requerirse un proceso de registro entre el desarrollador de
software y la autoridad de firmas por código. Por ejemplo, la
autoridad de firmas por código puede acordar por adelantado el
proporcionar un acceso del desarrollador de software de confianza
probada para un conjunto limitado de API sensibles.
En otra realización inclusive alternativa, la
aplicación de software Y puede estar sometida a más de una autoridad
de firmas por código. Cada autoridad de firmas puede ser por
ejemplo responsable de las firmas para las aplicaciones de software
para API sensibles en particular en un modelo en particular de
dispositivo móvil o conjunto de dispositivos móviles que soporten
las API sensibles requeridas por la aplicación de software. Un
fabricante, operador de redes de comunicaciones móviles, proveedor
de servicios, o un cliente de la corporación, por ejemplo, puede
tener por tanto una autoridad de firma sobre el uso de API sensibles
para su modelo(s) de dispositivos móviles en particular, o
sobre los dispositivos móviles que operen en una red en particular,
abonándose a uno o más servicios en particular, o distribuidos a
los empleados de la corporación. La aplicación del software
firmado puede incluir una aplicación de software y al menos una
firma digital asociada para cada una de las autoridades firmantes.
Incluso aunque estas autoridades de firma en este ejemplo pudieran
generar una firma para la misma aplicación de software, los
distintos esquemas de verificación de la firma pueden estar
asociados con las distintas autoridades de la firma.
La figura 3 es un diagrama de bloques de un
sistema de firma por código 60 en un dispositivo móvil 62. El
sistema 60 incluye una máquina virtual 64, una pluralidad de
aplicaciones de software 66-70, una pluralidad de
librerías API 72-78, y una plataforma de
aplicaciones 80. La plataforma de aplicaciones 80 incluye
preferiblemente todos los recursos del dispositivo móvil 62 a los
que puede tener acceso mediante las aplicaciones de software
66-70. Por ejemplo, la plataforma de aplicaciones
puede incluir un hardware del dispositivo 82, el sistema 84
operativo del dispositivo móvil, o el software central y los modelos
de datos 86. Cada librería API 72-78 incluye
preferiblemente una pluralidad de API que hacen de interfaz con un
recurso disponible en la plataforma de aplicaciones. Por ejemplo,
una librería API podría incluir todas las API que hagan de interfaz
con un programa de calendario y los modelos de datos de entrada del
calendario. Otra librería API podría incluir todas las API que
hicieran de interfaz con el circuito de transmisión y funciones del
dispositivo móvil 62. Incluso otra librería API podría incluir
todos las API capaces de hacer de interfaz con los servicios de
nivel inferior ejecutados por el sistema operativo 84 del
dispositivo móvil. Adicionalmente, la pluralidad de librerías API
72-78 puede incluir tanto las librerías que exponen
una API sensible 74 y 78, tal como una interfaz para una función
criptográfica, como las librerías 72 y 76, a las que puede tenerse
acceso sin exponer las API sensibles. De forma similar, la
pluralidad de aplicaciones de software 66-70 puede
incluir las aplicaciones 66 y 70 de software firmadas que
requieren el acceso a una o más API sensibles, y las aplicaciones de
software sin firmar tales como 68. La máquina virtual 64 es
preferiblemente un entorno de ejecución orientado a objetos, tal
como el sistema J2ME^{TM} de Sun Micro System (Plataforma Java 2,
Edición Micro), que gestiona la ejecución de todas las aplicaciones
de software 66-70 que operen en el dispositivo móvil
62, y enlaces de las aplicaciones de software
66-70 a las distintas librerías de las API
72-78.
La aplicación de software Y 70 es un ejemplo de
una aplicación de software. Cada aplicación de software firmado
incluye una aplicación de software real tal como una aplicación de
software Y que comprende el código de software a modo de ejemplo
que puede ser ejecutado en la plataforma de aplicación 80, una o más
identificaciones de la firma 94 y una o más firmas 96 digitales
correspondientes. Preferiblemente cada firma digital 96 y la
identificación firmada asociada 94 en la aplicación de software
firmado 66 ó 70 corresponde a una librería 74 ó 78 de las API para
las cuales se precisa el acceso de la aplicación de software X o la
aplicación de software Y. La librería 74 o 78 de las API sensibles
puede incluir una o más API sensibles. En una realización
alternativa, las aplicaciones de software firmadas 66 y 70 pueden
incluir una firma digital 96 para API sensible dentro de una
librería 74 ó 78 de las API. Las identificaciones 94 de la firma
pueden ser enteros exclusivos o bien otros medios de relación de
una firma digital 96 con una librería 74 o 78 de las API
específicas, API, plataforma de aplicaciones 80, o el modelo del
dispositivo móvil 62.
La librería A 78 de las API es un ejemplo de una
librería API que expone una API sensible. Cada librería 74 y 78 de
las API que incluye una API sensible deberán incluir
preferiblemente una cadena de la descripción 88, una clave de firma
pública 20, y un identificador de firma 92. El identificador de
firma 92 corresponde preferiblemente a una identificación de firma
94 en una aplicación 66 ó 70 de software firmado, y que habilita a
la máquina virtual 64 para buscar la coincidencia rápida con una
firma digital 96 con una librería 74 ó 78 de las API. La clave de
la firma publica 20 corresponde a la clave 18 de la firma privada
mantenida por la autoridad de firma de código, y se utiliza para
verificar la autenticidad de una firma digital 96. La cadena de
descripción 88 puede ser por ejemplo una mensaje de texto que se
visualice en el dispositivo móvil cuando se cargue una aplicación
66 ó 70 de software firmado, o alternativamente cuando la aplicación
de software X ó Y intenta acceder a una API sensible.
Operacionalmente, cuando una aplicación de
software firmado 68-70, que incluye respectivamente
una aplicación de software X, Z ó Y, que requiere el acceso a una
librería API sensible 74 ó 78, se carga en un dispositivo móvil,
la máquina virtual 64 busca la firma digital 96 asociada con la
librería API 74 ó 78. Preferiblemente, la firma digital apropiada
96 se localiza por la maquina virtual 74 por la coincidencia del
identificador de la firma 92 en la librería API 74 o 78 con una
identificación de firma 94 en la aplicación de software firmado. Si
la aplicación de software firmado incluye la firma digital apropiada
96, entonces la máquina virtual 64 verifica su autenticidad
utilizando la clave de firma pública 20. A continuación, una ves que
la firma 96 digital apropiada haya sido localizada y verificada, la
cadena de descripción 88 se visualiza preferiblemente en el
dispositivo móvil antes de que se ejecute la aplicación de software
X o Y y tenga acceso a la API sensible. Por ejemplo, la cadena de
descripción 88 puede visualizar un mensaje constatando que la
"Aplicación Y está intentando tener acceso a la Librería A de la
API", y proporcionando por tanto al dispositivo móvil el control
final para conceder o denegar el acceso a la API sensible.
La figura 3A es un diagrama de bloques de un
sistema de firmas digitales de códigos 61 en una pluralidad de
dispositivos móviles 62E, 62F y 62G. El sistema 61 incluye una
pluralidad de dispositivos móviles en el que se muestran solamente
tres de los mismos, los dispositivos móviles 62E, 62F y 62G. Así
mismo se muestra una aplicación de software firmado 70, incluyendo
una aplicación de software Y a la cual se han asociado dos firmas
digitales 96E y 96F con las correspondientes identificaciones de
firma 94E y 94F. En el sistema del ejemplo 61, cada par compuesto
por la firma digital y la identificación, 94E/96E y 94F/96F,
corresponde un modelo de dispositivo móvil 62, la librería 78 de las
API, o la plataforma asociada 80. Si las identificaciones de la
firma 94E y 94F corresponden a diferentes modelos del dispositivo
móvil 62, entonces cuando una aplicación de software Y que
requiera el acceso a la librería 78 de la API sensible se cargue en
el dispositivo móvil 62E, la maquina virtual 64 buscará la
aplicación de software firmado 70 para una firma digital 96E
asociada con la librería 78 de las API mediante la coincidencia del
identificador 94E con el identificador de firma 92. De forma
similar, cuando una aplicación de software firmado 70 incluyendo una
aplicación de software Y que requiere el acceso a una librería 78
de las API se carga en un dispositivo móvil 62F, la maquina virtual
64 en el dispositivo 62F busca la aplicación del software firmado 70
para una firma digital 96F asociada con la librería 78 de las API.
No obstante, cuando una aplicación de software Y en una aplicación
de software firmado 70 que requiere el acceso a una librería 78 de
API sensible se carga en un modelo de dispositivo móvil para el
cual el desarrollador de software no ha obtenido la firma digital,
el dispositivo 62G en el ejemplo de la figura 3A, la máquina
virtual 64 en el dispositivo 64G no encuentra una firma digital
asociada a la aplicación Y de software, y consecuentemente se
deniega el acceso a la librería 78 de las API en el dispositivo
62G. Se observará a partir de la descripción anterior que la
aplicación de software tal como la aplicación de software Y puede
tener múltiples especificaciones del dispositivo, librerías
específicas o firmas especificas de las API o bien alguna
combinación de dichas firmas asociadas. De forma similar, pueden
configurarse diferentes requisitos de verificación de la firma para
los distintos dispositivos. Por ejemplo, el dispositivo 62E puede
precisar la verificación de la firma global, así como también las
firmas adicionales para cualesquiera API sensible a la cual una
aplicación de software precise el acceso con el fin de poder
ejecutar la aplicación de software, mientras que el dispositivo
62F puede requerir la verificación de solo una firma global, y el
dispositivo 62G puede requerir la verificación de firmas solamente
para sus API sensibles. Es evidente también que el sistema de
comunicación puede incluir dispositivos (no mostrados) sobre los
cuales una aplicación de software Y recibida como parte de una
aplicación de software firmado tal como la 70 podrá ser ejecutada
sin ninguna verificación de la firma. Aunque la aplicación de
software firmado tiene una o más firmas asociadas al mismo, la
aplicación de software Y podría posiblemente ser ejecutada en
algunos dispositivos sin haberse verificado primeramente cualquiera
de sus firmas. La firma de una aplicación de software no interfiere
preferiblemente con su ejecución en dispositivos en los cuales no
esté implementada la verificación de la firma
digital.
digital.
La figura 4 es un diagrama de flujo 100 que
muestra la operación del sistema de firma por código descrita
anteriormente con referencia a las figuras 3 y 3A. En la etapa 102,
la aplicación de software se carga en un dispositivo móvil. Una
vez que se haya cargado la aplicación de software, el dispositivo,
preferiblemente utilizando una máquina virtual, determina si la
aplicación de software requiere o no el acceso a cualesquiera
librerías API que expongan una API sensible (etapa 104). En caso
negativo, entonces la aplicación de software se enlaza con todas
las librerías API requeridas y ejecutadas (etapa 118). Si la
aplicación de software no requiere el acceso a las API sensibles,
no obstante, entonces la máquina virtual verifica que la aplicación
de software incluya una firma digital válida asociada con
cualesquiera API sensibles a la cual se requiera el acceso en las
etapas 106-116.
En la etapa 106, la maquina virtual recupera la
clave de la firma publica 20 y el identificador de firma 92 de la
librería API sensible. El identificador de firma 92 se utiliza
entonces por la maquina virtual en la etapa 108 para determinar si
la aplicación de software tiene o no una firma digital asociada 96
con una identificación 94 de firma correspondiente. En caso
negativo, entonces la aplicación de software no será aprobada para
el acceso a las API sensibles por la autoridad de firma por código,
y la aplicación de software queda impedida preferiblemente de ser
ejecutada en la etapa 116. En realizaciones alternativas, la
aplicación de software sin una firma digital apropiada 96 puede ser
purgado del dispositivo móvil, o bien se le puede denegar el acceso
a la librería API que exponga la API sensible pero ejecutándose
hasta un grado posible sin el acceso a la librería API. Se
contempla también que se pueda invitar al usuario a que introduzca
una entrada cuando falle la verificación de la firma,
proporcionando por tanto al usuario el control de dichas operaciones
subsiguientes como el purgado de la aplicación de software del
dispositivo.
En caso de que una firma digital 96
correspondiente a la librería API sensible esté asociada a la
aplicación de software y esté localizada por la máquina virtual,
entonces la máquina virtual utilizará la clave pública 20 para
verificar la autenticidad de la firma digital 96 en la etapa 110.
Esta etapa puede ser ejecutada, por ejemplo, mediante el uso del
esquema de verificación de la firma descrito anteriormente o con
otros esquemas alternativos de la firma. Si la firma digital 96 no
es auténtica, entonces la aplicación de software preferiblemente no
será ejecutada, o bien purgada o restringida en el acceso a las API
sensibles, según lo descrito anteriormente, con referencia a la
etapa 116. Si la firma digital es auténtica, no obstante, entonces
la cadena de descripción 88 será visualizada preferiblemente en la
etapa 112, avisando al usuario del dispositivo móvil de que la
aplicación de software requiere el acceso a la API sensible, e
invitando al usuario a la autorización para ejecutar o cargar la
aplicación de software (etapa 114). Cuando se tienen que verificar
más de una firma para una aplicación de software, entonces las
etapas 104-110 se repiten preferiblemente para firma
antes de que se invite al usuario en la etapa 112. Si el usuario
del dispositivo móvil en la etapa 114 autoriza la aplicación de
software, entonces podrá ser ejecutado y enlazado a la librería de
las API en la etapa 118.
La figura 5 es un diagrama de flujo 200 que
muestra la gestión de las autoridades de firma por código descrita
con referencia a la figura 3A. En la etapa 210, un desarrollador de
software ha desarrollado una aplicación de software nueva que tiene
por objeto ser ejecutada en uno o más modelos o tipos de
dispositivos. Los dispositivos de objetivo pueden incluir conjuntos
de dispositivos de diferentes fabricantes, conjuntos de modelos o
tipos de dispositivos del mismo fabricante, o generalmente
conjuntos de dispositivos que tengan una firma en particular y
distintos requisitos de verificación. El término "dispositivo de
objetivo" se refiere a cualquier conjunto de dispositivos que
tengan un requisito de firma común. Por ejemplo, un conjunto de
dispositivos que requieran la verificación de la firma global
especifica del dispositivo para la ejecución de las aplicaciones de
software puede comprender un dispositivo de objetivo, y
dispositivos que requieran una firma global y firmas adicionales
para las API sensibles que puedan ser parte de más de un conjunto de
dispositivos de objetivo. La aplicación de software puede estar
escrita en una forma independiente del dispositivo mediante la
utilización de al menos una API conocida, soportada al menos en un
dispositivo de objetivo con una librería API. Preferiblemente, la
aplicación de software desarrollada tiene por objeto ser ejecutable
en varios dispositivos de objetivo, en donde cada uno tiene al
menos una librería API.
En la etapa 220, una autoridad de firma por
código para un dispositivo de objetivo recibe una petición de firma
de objetivo desde el desarrollador. La petición de firma de objetivo
incluye la aplicación de software o un algoritmo Hash de la
aplicación de software, un identificador del desarrollador, así como
también al menos un identificador del dispositivo de objetivo, el
cual identifica el dispositivo de objetivo para el cual se solicita
la firma. En la etapa 230, la autoridad de la firma consulta una
base de datos 235 de desarrolladores o bien otros registros, para
determinar si confiar o no en el desarrollador 220. Esta
determinación puede efectuarse de acuerdo con varios criterios
expuestos anteriormente, tales como si el desarrollador tiene o no
una obligación contractual o si ha entrado en algún tipo de acuerdo
de negocios con un fabricante del dispositivo, operador de redes,
proveedor de servicios o fabricante del dispositivo. Si es
desarrollador es fiable, entonces el método avanza hasta la etapa
240. No obstante, si el desarrollador no es fiable, entonces la
aplicación de software será rechazada (250) y no será firmada por la
autoridad de la firma. Suponiendo que el desarrollador fuera
fiable, en la etapa 240 la autoridad de la firma determina si tiene
la clave privada de objetivo correspondiente al identificador de
objetivo mediante la consulta de un almacenamiento de claves
privadas tal como una base de datos 245 de claves privadas. Si se
encuentra la clave privada de objetivo, entonces se generará una
firma digital para la aplicación de software en la etapa 260 y la
firma digital o la aplicación de software firmado incluyendo la
firma digital asociada con la aplicación de software serán
retornadas al desarrollador en la etapa 280. No obstante si la
clave no se encuentra en la etapa 240, entonces la aplicación de
software será rechazada en la etapa 270 y no se generará ninguna
firma digital para la aplicación de software.
Ventajosamente, si las autoridades de firmas de
objetivo siguen realizaciones compatibles del método descrito en la
figura 5, una red de autoridades de firmas de objetivo podrá ser
establecida con el fin de gestionar rápidamente las autoridades de
firma por código y un proceso de firmas por código de comunidades de
desarrolladores para múltiples objetivos con una baja probabilidad
de un código destructivo.
En caso de haber encontrado un código
problemático o destructivo en una aplicación de software o bien que
sea sospechosa de haber demostrado dicho comportamiento al ejecutar
la aplicación de software en un dispositivo, entonces el registro o
los privilegios del correspondiente desarrollador de la aplicación
con cualquiera de las autoridades de firmas podrán ser suspendidos o
revocados, puesto que la firma digital proporciona una auditoria a
través de la cual el desarrollador de una aplicación de software
problemático puede ser identificado. En dicho caso, se puede
informar de la revocación mediante su configuración para descargar
periódicamente las listas de revocación de la firma. Si las
aplicaciones para las cuales se han revocado las firmas digitales
correspondientes se ejecutan en un dispositivo, el dispositivo puede
detener la ejecución de cualquier mencionada aplicación y
posiblemente purgar la aplicación de software de su almacenamiento
local. Si se prefiere, los dispositivos pueden ser configurados
también para re-ejecutar las verificaciones de la
firma digital, por ejemplo de forma periódica o cuando se descargue
la nueva lista de revocación.
Aunque la firma digital generada por una
autoridad de firmas es dependiente de la autenticación del
desarrollador de software y de la confirmación de que el
desarrollador de la aplicación haya sido registrado debidamente, la
firma digital se generará preferiblemente a partir de un algoritmo
Hash o bien otra versión transformada de la aplicación de software,
y siendo por tanto específica de la aplicación. Esto contrasta con
los conocidos esquemas de firmas por código, en los cuales se
concede el acceso a las API para cualesquiera aplicaciones de
software que lleguen desde los desarrolladores o autores de
aplicaciones de plena confianza. En los sistemas de firma por
código y en los métodos aquí descritos, el acceso a las API se
concede sobre la base de aplicación por aplicación, y por tanto de
este modo puede controlarse o regularse de forma más estricta.
La figura 6 es un diagrama de bloques de un
dispositivo de comunicaciones móviles en el cual pueden implementar
el sistema y método de firma por código. El dispositivo de
comunicaciones móviles 610 es preferiblemente un dispositivo de
comunicaciones bilaterales, que tiene al menos unas capacidades de
voz y de comunicaciones de datos. El dispositivo tiene
preferiblemente la capacidad de comunicarse con otros sistemas de
ordenadores de Internet. Dependiendo de la funcionalidad
proporcionada por el dispositivo, el dispositivo puede denominarse
como dispositivo de mensajería de datos, buscapersonas bilateral,
teléfono celular con capacidades de mensajería de datos,
dispositivo de Internet sin hilos, o dispositivo de comunicaciones
de datos (cono sin capacidades de telefonía).
Cuando el dispositivo 610 está habilitado para
las comunicaciones bilaterales, el dispositivo incorporará un
subsistema 611 de comunicaciones, incluyendo un receptor 612, un
transmisor 614, y los componentes asociados tales como uno o más,
preferiblemente embebidos o internos, elementos de antena 616 y 618,
osciladores locales (LO) 613, y un modulo de procesamiento tal como
un procesador de señales digitales (DSP) 620. Tal como es evidente
para los técnicos especializados en el arte de las comunicaciones,
el diseño particular del subsistema de comunicaciones 611 dependerá
de la red de comunicaciones en las que el dispositivo tiene por
objeto ser instalado para su operación. Por ejemplo, el dispositivo
610 destinado al mercado de América del Norte puede incluir un
subsistema de comunicaciones 811 diseñado para operar dentro del
sistema de comunicaciones móviles Mobitex^{TM} o el sistema de
comunicaciones móviles DataTAC^{TM}, mientras que el dispositivo
610 que tiene por objeto su utilización en Europa puede incorporar
un subsistema 611 de comunicaciones del Servicio de Radio por
Paquetes (GPRS).
Los requisitos de acceso de red variarán también
dependiendo del tipo de red 919. Por ejemplo, en las redes de
Mobitex y DataTAC, los dispositivos móviles tales como el 610 están
registrados en la red utilizando un número de identificación
exclusivo asociado con cada dispositivo. En las redes GPRS, no
obstante, el acceso de red está asociado con un abonado o usuario
de un dispositivo 610. El dispositivo GPRS requiere por tanto un
módulo de identidad de abonado (no mostrado), denominado comúnmente
como la tarjeta SIM, con el fin de operar en la red GPRS. Sin una
tarjeta SIM, el dispositivo GPRS no será totalmente funcional. Las
funciones de comunicaciones locales o fuera de la red (si las
hubiere) pueden ser operables, pero el dispositivo 610 será incapaz
de llevar a cabo cualesquiera funciones que incluyan comunicaciones
a través de la red 619, distintas a cualquiera de las operaciones
requeridas legalmente, tales como la llamada de emergencia del
número "911".
Al haber completado los procesos de registro o
activación de la red requerida, el dispositivo 610 puede enviar y
recibir señales de comunicaciones a través de la red 619. Las
señales recibid<as por la antena 616 a través de la red de
comunicaciones 619 son introducidas en el receptor 612, el cual
puede ejecutar dichas funciones del receptor de tipo común tales
como la amplificación, conversión de reducción de la frecuencia,
filtrado, selección de canal y similares, y en el sistema del
ejemplo mostrado en la figura 6, la conversión
analógica-digital. La conversión
analógica-digital de la señal recibida permite
funciones de comunicaciones más complejas tales como la
demodulación y la decodificación a ejecutar en el DSP 620. De una
forma similar, las señales a transmitir son procesadas, incluyendo
la modulación y la codificación, por ejemplo, mediante el DSP 620 y
su introducción en el transmisor 614 para la conversión
digital-analógica, conversión de elevación de la
frecuencia, filtrado, amplificación y transmisión a través de la red
de comunicaciones 619 por medio de la antena 618.
El procesador DSP 620 no solo procesa las señales
de comunicaciones, sino también proporciona el control del receptor
y del transmisor. Por ejemplo, las ganancias aplicadas a las
señales de comunicaciones en el receptor 612 y el transmisor 614
pueden estar controladas adaptativamente a través de algoritmos de
control de ganancia automática implementados en el DSP 620.
El dispositivo 610 incluye preferiblemente un
microprocesador 638 que controla la operación completa del
dispositivo. Las funciones de comunicaciones, incluyendo al menos
las comunicaciones de datos y voz, se ejecutan a través del
subsistema de comunicaciones 611. El microprocesador 638 interactúa
también con subsistemas de dispositivos adicionales o con recursos
tales como la pantalla 622, memoria Flash 624, memoria de acceso
aleatorio (RAM) 626, subsistemas de entradas/salidas (I/O)
auxiliares 628, puerto serie 630, teclado 632, altavoz 634,
micrófono 636, subsistema de comunicaciones de cobertura corta 640
y cualesquiera subsistemas de dispositivos, denominados
generalmente como 642. Las API, incluyendo las API sensibles que
requieren la verificación de una o más firmas digitales
correspondientes antes de que pueda concederse el acceso, pueden
proporcionarse en el dispositivo 610 para hacer de interfaz entre
las aplicaciones de software y cualquiera de los recursos mostrados
en la figura 6.
Algunos de los subsistemas mostrados en la figura
6 ejecutan funciones relacionadas con las comunicaciones, mientras
que otros subsistemas pueden proporcionar funciones
"residentes" o funciones incorporadas en el propio
dispositivo. Algunos subsistemas tales como el teclado 632 y la
pantalla 622 por ejemplo pueden utilizarse para ambas funciones
relacionadas con las comunicaciones, tales como la introducción de
un mensaje de texto para la transmisión a través de la red de
comunicaciones, y funciones residentes en el propio dispositivo
tales como una calculadora o lista de tareas.
El software del sistema operativo utilizado por
el microprocesador 638, y posiblemente las API para su acceso por
las aplicaciones de software, está almacenado preferiblemente en una
memoria persistente tal como la memoria Flash 624, la cual puede
ser en su lugar una memoria de solo lectura (ROM), o un elemento de
almacenamiento similar (no mostrado). Los técnicos especializados
en el arte observaran que el sistema operativo, las aplicaciones de
software del dispositivo específico, o las partes del mismo, pueden
ser cargados temporalmente en una memoria volátil tal como la RAM
626. Se contempla que las señales de comunicaciones recibidas y
transmitidas pueden ser almacenadas también en la memoria RAM
626.
El microprocesador 638, además de sus funciones
del sistema operativo, permite preferiblemente la ejecución de las
aplicaciones de software en el dispositivo. Un conjunto
predeterminado de aplicaciones que controlan las operaciones del
dispositivo básico, incluyendo las aplicaciones de comunicaciones de
datos y voz al menos, por ejemplo, podrán instalarse en el
dispositivo 610 durante su fabricación. La aplicación preferida 610
que puede ser cargada en el dispositivo puede ser una aplicación de
un gestor de información personal (PIM) teniendo la posibilidad de
organizar y gestionar los temas de datos relativos al usuario del
dispositivo tales como, aunque sin limitación, los correos
electrónicos, eventos del calendario, correos de voz, citas, y temas
de tareas. Naturalmente, una o más memorias estarían disponibles
para facilitar el almacenamiento de los temas de los datos PIM en
el dispositivo. Tal aplicación SIM tendría preferiblemente la
capacidad de enviar y recibir temas de datos, a través de la red
sin hilos. En una realización preferida, los temas de los datos PIM
están integrados sin interrupciones, sincronizados y actualizados,
a través de la red sin hilos, con los temas de los datos
correspondientes del usuario del dispositivo, almacenados o
asociados con un sistema de ordenador servidor, creando por tanto
un ordenador servidor en el dispositivo móvil al menos con respecto
a los temas de los datos. Esto sería especialmente ventajoso en el
caso en el que el sistema del ordenador servidor sea el sistema de
ordenadores de oficina del usuario del dispositivo móvil. Las
aplicaciones adicionales, incluyendo las aplicaciones de software
firmado según se ha descrito anteriormente, pueden cargarse también
en el dispositivo 610 a través de la red 619, un subsistema de E/S
auxiliar 628, puerto serie 630, subsistema de comunicaciones de
corto alcance 640 o cualquier otro subsistema adecuado 642. El
microprocesador del dispositivo 638 puede entonces verificar
cualesquiera firmas digitales, incluyendo posiblemente las firmas de
dispositivos "globales" y las firmas de API específicas,
asociadas a dicha aplicación de software antes de que la aplicación
de software pueda ser ejecutada por el microprocesador 638 y/o con
el acceso a cualquier API sensible asociada. Dicha flexibilidad
en la instalación de la aplicación incrementa la funcionalidad del
dispositivo y puede proporcionar funciones mejoradas en el
dispositivo, funciones relacionadas con las comunicaciones, o ambas.
Por ejemplo, las aplicaciones de comunicaciones seguras pueden
permitir funciones de comercio electrónico y otras transacciones
financieras a ejecutar utilizando el dispositivo 610, a través de
una API encriptada y un modulo de encriptado el cual implemente los
algoritmos de encriptado en el dispositivo (no mostrado).
En el modo de comunicaciones de datos, la señal
recibida tal como un mensaje de texto o la descarga de una pagina
WEB, serán procesadas por el subsistema de comunicaciones 611 e
introducida al microprocesador 638, el cual además procesará la
señal recibida para su salida en la pantalla 622, o alternativamente
al dispositivo de E/S auxiliar 628. El usuario del dispositivo 610
puede también componer temas de datos tales como mensajes de correo
electrónico por ejemplo, utilizando el teclado 632, el cual es
preferiblemente un teclado alfanumérico completo o bien un teclado
del tipo de teléfono, en conjunción con la pantalla 622 y
posiblemente un dispositivo 628 de E/S auxiliar. Tales temas
compuestos pueden ser transmitidos a través de una red de
comunicaciones a través del subsistema 611 de comunicaciones.
Para las comunicaciones de voz, la operación
global del dispositivo 610 es substancialmente similar, excepto que
las señales recibidas serían suministradas a la salida a un altavoz
634, y las señales para la transmisión se generarían por un
micrófono 636. Los subsistemas alternativos de voz o audio de E/S
tales como el subsistema de grabación de mensajes de voz pueden ser
implementados también en el dispositivo 610. Aunque la salida de
la señal de voz o audio se realiza preferiblemente a través del
altavoz 634, la pantalla 622 puede ser utilizada también para
proporcionar una indicación de la identidad de la parte llamante, la
duración de la llamada de voz, o bien cualquier otra información
por ejemplo relacionada con la llamada de voz.
El puerto serie 630 en la figura 6 estaría
implementado normalmente en un dispositivo de comunicaciones del
tipo de asistente digital personal (PDA), siendo deseable la
sincronización con un ordenador de sobremesa del usuario (no
mostrado), aunque es un componente del dispositivo opcional. Dicho
puerto 630 permitiría al usuario el configurar las preferencias a
través de un dispositivo externo o una aplicación de software, y
ampliarían las posibilidades del dispositivo para proporcionar
información o las descargas del software al dispositivo 610 en
forma distinta a una red de comunicaciones radioeléctricas. El
recorrido de descarga alternativo puede ser utilizado por ejemplo
para cargar una clave de encriptado en el dispositivo a través de
una conexión directa y por tanto fiable y probada, para permitir
por tanto una comunicación segura del dispositivo.
El subsistema 640 de comunicaciones de corto
alcance es un componente opcional adicional que puede proporcionar
la comunicación entre el dispositivo 624 y los sistemas o
dispositivos distintos, que no necesitan ser necesariamente unos
dispositivos similares. Por ejemplo, el subsistema 640 puede
incluir un dispositivo de infrarrojos y circuitos asociados y
componentes o un modulo de comunicaciones Bluetooth^{TM} para
proporcionar la comunicación con sistemas y dispositivos habilitados
de forma similar.
Las realizaciones aquí descritas son ejemplos de
estructuras, sistemas o métodos que tiene elementos correspondientes
a los elementos de la invención expuestos en las reivindicaciones.
Esta descripción expuesta puede permitir a los técnicos
especializados en el arte poder crear y utilizar las realizaciones
teniendo elementos alternativos que corresponden de forma similar a
los elementos de la invención expuestos en las reivindicaciones.
El alcance pretendido de la invención incluye otras estructuras,
sistemas o métodos que no difieren del lenguaje literal de las
reivindicaciones, y que además incluye otras estructuras, sistemas o
métodos con diferencias insubstanciales con respecto al lenguaje
literal las reivindicaciones.
Por ejemplo, cuando una aplicación de software es
rechazada en la etapa 250 en el método mostrado en la figura 5, la
autoridad de la firma puede solicitar que el desarrollador firme un
contrato o bien entre en una relación de negocios con un fabricante
de dispositivos o bien otra entidad en cuyo nombre pueda actuar la
autoridad de las firmas. De forma similar, si una aplicación de
software es rechazada en la etapa 270, la autoridad de la firma de
la aplicación de software puede delegar a una autoridad de firmas
distinta. La firma de una aplicación de software con posterioridad
a la delegación de la firma de la aplicación del software ante una
autoridad distinta puede proceder substancialmente tal como se
muestra en la figura 5, en la que la autoridad de firma de objetivo
que recibe la petición original del desarrollador probado en la
etapa 220 solicita que la aplicación de software sea firmada por la
autoridad de firma distinta en nombre del desarrollador probado con
respecto a la autoridad de firma de objetivo. Una vez que la
relación haya sido establecida entre las autoridades de la firma
por código, la claves de firma por código privadas de objetivo
podrían ser compartidas entre las autoridades de la firma por
código para mejorar la eficacia del método en la etapa 240, o bien
un dispositivo puede ser configurado para validar firmas digitales
desde cualquiera de las autoridades de firmas probadas.
Además de ello, aunque se ha expuesto
principalmente en el contexto de las aplicaciones de software, los
sistemas y métodos de firma por código de acuerdo con la presente
invención puede ser aplicados también a otros componentes
relacionados con el dispositivo, incluyendo aunque no en forma
limitante las ordenes y los argumentos de ordenes asociadas, y las
librerías configuradas para hacer de interfaz con los recursos del
dispositivo. Dichas órdenes y librerías pueden enviarse a los
dispositivos móviles mediante los fabricantes de los móviles,
propietarios de los móviles, operadores de las redes, proveedores
de servicios, desarrolladores de las aplicaciones de software y
similares. Sería deseable el controlar la ejecución de cualquier
orden que pueda afectar a la operación del dispositivo, tal como
una orden para cambiar el código de identificación del dispositivo o
la dilección de la red de comunicaciones radioeléctricas, por
ejemplo mediante la petición de la verificación de una o más firmas
digitales antes de que una orden pueda ser ejecutada en un
dispositivo, de acuerdo con los sistemas y métodos de firma por
código aquí descritos y reivindicados.
Claims (27)
1. Un sistema de firmas por código para la
operación en conjunción con una aplicación de software (66) que
tiene una firma digital (96) y una identificación de la firma (94),
en el que la firma digital está asociada con la identificación de la
firma, que comprende:
- -
- una plataforma de aplicación;
- -
- una interfaz de programación de aplicación (API) que tiene un identificador de firma asociada (92), en el que la API está configurada para enlazar la aplicación de software con la plataforma de aplicación; y
- -
- en el que la autenticidad de la firma digital se verifica mediante una máquina virtual (69), con el fin de controlar el acceso a la API mediante la aplicación de software, en el que el identificador de la firma corresponde con la identificación de la firma;
- -
- en el que la firma digital se genera mediante la aplicación de una clave de firma privada a un algoritmo Hash de la aplicación de software, y en el que la máquina virtual verifica la autenticidad de la firma digital, mediante la generación de un algoritmo Hash de la aplicación de software para obtener un algoritmo de Hash generado, aplicando una clave de firma pública a la firma para obtener un algoritmo Hash recuperado, y comparar el algoritmo Hash generado con el algoritmo Hash recuperado.
2. El sistema de firma por código de la
reivindicación 1, en el que:
- (i)
- la máquina virtual deniega el acceso de la aplicación de software a la API si la firma digital no es autentificada, ó
- (ii)
- si la maquina virtual efectúa el purgado de la aplicación de software si la firma digital no es autentificada.
3. El sistema de la firma por código de la
reivindicación 1 ó 2, en el que
- (iii)
- el sistema de firma por código está instalado en un dispositivo móvil, o
- (iv)
- en el que la firma digital se genera mediante una autoridad de firmas por códigos.
4. El sistema de firmas por códigos de cualquiera
de las reivindicaciones 1 a 3, que comprende además:
- -
- una pluralidad de librerías API, en el que cada librería de la pluralidad de librerías APLI incluye una pluralidad de API, en el que la máquina virtual controla el acceso a la pluralidad de librerías APLI mediante la aplicación de software.
5. El sistema de firmas por códigos de cualquiera
de las reivindicaciones 1 a 4,
- -
- en el que al menos una librería de la pluralidad de librerías API está clasificada como sensible;
- -
- en el que el acceso a una librería API sensible requiere una firma digital asociada con una identificación de la firma, en el que la identificación de la firma corresponde a un identificador de la firma asociado con la librería API sensible;
- -
- en el que la aplicación de software incluye al menos una firma digital y al menos una identificación de la firma asociada para el acceso a las librerías API sensibles; y
- -
- en el que la maquina virtual autentifica la aplicación de software para el acceso a la librería API sensible para verificar la firma digital incluida en la aplicación de software que tenga una identificación de la firma correspondiente al identificador de la firma de la librería API sensible.
6. El sistema de firma por código de la
reivindicación 3, en el que la API comprende además:
- -
- una cadena de descripción que se visualiza mediante el dispositivo móvil cuando la aplicación de software intenta tener acceso a la API.
7. El sistema de firma de código de cualquiera de
las reivindicaciones 1 a 6, en el que la plataforma de
aplicación:
- (i)
- comprende un sistema operativo, o que
- (ii)
- comprende una o más funciones de un dispositivo móvil, o
- (iii)
- que comprende un hardware en un dispositivo móvil.
8. El sistema de firma por código de la
reivindicación 7, en el que el hardware comprende una tarjeta (SIM)
del modulo de identidad del abonado.
9. Un sistema de firma de código de cualquiera de
las reivindicaciones 1 a 8, en el que la aplicación de software es
una aplicación Java para un dispositivo móvil.
10. El sistema de firma por código de cualquiera
de las reivindicaciones 1 a 9, en el que:
- (i)
- la API hace de interfaz con una rutina criptográfica en la plataforma de aplicación, o en el que:
- (ii)
- la API hace de interfaz con un modelo de datos de propietario en la plataforma de la aplicación.
11. El sistema de firma por código de cualquiera
de las reivindicaciones 1 a 10, en el que la máquina virtual es una
máquina virtual Java instalada en un dispositivo móvil.
12. Un método para controlar el acceso a las
interfaces de programación de aplicaciones sensibles en un
dispositivo móvil (62), que comprende las etapas de:
- -
- cargar una aplicación de software (66) en el dispositivo móvil que requiera acceso a una interfaz de programación de aplicación sensible (API) que tenga un identificador de firmas (92);
- -
- determinar si la aplicación de software incluye una firma digital (96) y una identificación de firmas (94);
- -
- denegar el acceso de la aplicación de software a la API sensible cuando la firma digital no corresponda con el identificador de firma;
- -
- verificar la autenticidad de la firma digital si la identificación de la firma corresponde con el identificador de la firma, en donde el acceso a la API sensible por el software de aplicación está basado en la verificación de la autenticidad de la firma digital;
- -
- en donde la firma digital se genera por la aplicación de una clave de firma privada en un algoritmo Hash de la aplicación del software, y en el que la etapa de verificación de la autenticidad de la firma digital se ejecuta mediante las etapas que comprenden:
- -
- almacenar una clave de firma pública que corresponda con la clave de firma privada en el dispositivo mó- vil;
- -
- generar un algoritmo Hash de la aplicación de software para obtener un algoritmo Hash;
- -
- aplicar la clave de la firma pública a la firma digital para obtener un algoritmo Hash recuperado; y
- -
- comparar el algoritmo Hash generado con el algoritmo Hash recuperado.
13. El método de la reivindicación 12, que
comprende la etapa adicional de:
- -
- purgar la aplicación de software del dispositivo móvil si la identificación de la firma no se corresponde con el identificador de la firma.
14. El método de la reivindicación 12 ó 13, en el
que la firma digital y la identificación de la firma se generan por
una autoridad de firmas por código.
15. El método de cualquiera de las
reivindicaciones 12 a 14, que comprende la etapa adicional de:
- -
- denegar el acceso de la aplicación de software a la API sensible si la firma digital no está autenticada.
16. El método de la reivindicación 15, que
comprende la etapa adicional de:
- -
- purgar la aplicación de software del dispositivo móvil si la firma digital no está autenticada.
17. El método de acuerdo con las reivindicaciones
12 a 16, en el que se visualiza una cadena de descripción ante el
usuario cuando la aplicación de software intenta acceder a una de
las mencionadas API sensibles.
18. El método de cualquiera de las
reivindicaciones 12 a 17, que comprende la etapa adicional de:
- -
- visualizar una cadena de descripción que notifique al usuario del dispositivo móvil que la aplicación de software requiere el acceso a la API sensible.
\newpage
19. El método de la reivindicación 18, que
comprende la etapa adicional de:
- -
- recibir una orden del usuario que conceda o deniegue el acceso de la aplicación de software a la API sensible.
20. Un dispositivo móvil (62) que comprende:
- -
- una plataforma de aplicación que tiene interfaces de programación de aplicaciones (API);
- -
- un sistema de verificación para autenticar firmas digitales (96) y las identificaciones de firmas (94) provistas por las aplicaciones de software respectivas (66) para tener acceso a las API; y
- -
- un sistema de control para permitir que una aplicación de software tenga acceso al menos a una de las API, en el caso de que una firma digital provista por la aplicación de software está autenticada por el sistema de verificación;
- -
- en el que una autoridad de firmas por código proporciona firmas digitales e identificaciones de firmas para las aplicaciones de software que requieran el acceso al menos a una de las API, de forma tal que la firma digital de la aplicación de software se genere de acuerdo con un esquema de firmas de una identificación de la firma, y en el que las identificaciones de firmas provistas por las aplicaciones de software comprenden aquellas identificaciones de firmas que estén substancialmente autorizadas solamente para permitir el acceso a un primer subconjunto de la pluralidad de dispositivos móviles;
- -
- en el que se utiliza una primera firma digital e identificación de la firma para un primer tipo de dispositivo móvil;
- -
- en el que se utiliza una segunda firma digital e identificación de la firma para un segundo tipo de dispositivo móvil;
- -
- en el que una primera firma digital e identificación de la firma asociada con una aplicación impide que la aplicación utilice una API en el segundo tipo de dispositivo móvil;
- -
- en el que una segunda firma e identificación de la firma asociada con una aplicación impide que la aplicación utilice una API del primer tipo de dispositivo móvil.
21. El dispositivo móvil de la reivindicación 20,
en el que una máquina virtual comprende el sistema de verificación
y el sistema de control, siendo preferiblemente la maquina virtual
una maquina virtual Java y siendo la aplicación de software una
aplicación Java.
22. El dispositivo móvil de la reivindicación 20
ó 21, en el que el sistema de control requiere una firma digital y
una identificación de firma para cada librería de al menos una de
las API.
23. El dispositivo móvil de cualquiera de las
reivindicaciones 20 a 22, en el que las API de la plataforma de
aplicación tienen acceso al menos a uno modulo criptográfico, el
cual implementa algoritmos criptográficos, una memoria de datos, un
modelo de datos de propietario, y una interfaz de usuario (UI).
24. El dispositivo móvil de cualquiera de las
reivindicaciones 20 a 23, en el que la firma digital se genera
utilizando una clave de firma privada bajo el esquema de la firma, y
en el que el sistema de verificación utiliza una clave de firma
pública para autenticar la firma digital.
25. El dispositivo móvil de la reivindicación 24,
en el que:
- -
- la firma digital se genera con la aplicación de la clave de firma privada en un algoritmo Hash de la aplicación de software bajo el esquema de la firma; y
- -
- en el que el sistema de verificación autentica la firma digital mediante la generación de un algoritmo Hash de la aplicación de software para obtener un algoritmo Hash, aplicando la clave de firma pública a la firma digital para obtener un algoritmo Hash, y verificando que el algoritmo Hash generado con el algoritmo recuperado son los mismos.
26. El dispositivo móvil de cualquiera de las
reivindicaciones 20 a 25, en el que al menos una de las API
comprende además:
- -
- una cadena de descripción que se visualiza ante el usuario cuando la aplicación de software intenta tener acceso a una de las mencionadas API.
27. El dispositivo móvil de la reivindicación 20,
en el que el primer tipo de dispositivo móvil y el segundo tipo de
dispositivo móvil son modelos diferentes del dispositivo móvil.
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US23415200P | 2000-09-21 | 2000-09-21 | |
US23535400P | 2000-09-26 | 2000-09-26 | |
US235354P | 2000-09-26 | ||
US27066301P | 2001-02-20 | 2001-02-20 | |
US270663P | 2001-02-20 | ||
US234152P | 2009-08-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
ES2253426T3 true ES2253426T3 (es) | 2006-06-01 |
ES2253426T5 ES2253426T5 (es) | 2009-12-14 |
Family
ID=27398521
Family Applications (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES01973901T Expired - Lifetime ES2253426T5 (es) | 2000-09-21 | 2001-09-20 | Sistema y metodo de firma mediante codigo por software. |
ES10186194.6T Expired - Lifetime ES2545791T3 (es) | 2000-09-21 | 2001-09-20 | Sistema y método de firma mediante código por software |
ES05024661T Expired - Lifetime ES2385565T3 (es) | 2000-09-21 | 2001-09-20 | Sistema y método de firma mediante código por software |
ES05024662T Expired - Lifetime ES2352556T3 (es) | 2000-09-21 | 2001-09-20 | Sistema y método de firma mediante código por software. |
ES05024663T Expired - Lifetime ES2360005T3 (es) | 2000-09-21 | 2001-09-20 | Sistema y método de firma mediante código por software. |
ES10186296.9T Expired - Lifetime ES2465967T3 (es) | 2000-09-21 | 2001-09-20 | Sistema y método de firma mediante código por software |
Family Applications After (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES10186194.6T Expired - Lifetime ES2545791T3 (es) | 2000-09-21 | 2001-09-20 | Sistema y método de firma mediante código por software |
ES05024661T Expired - Lifetime ES2385565T3 (es) | 2000-09-21 | 2001-09-20 | Sistema y método de firma mediante código por software |
ES05024662T Expired - Lifetime ES2352556T3 (es) | 2000-09-21 | 2001-09-20 | Sistema y método de firma mediante código por software. |
ES05024663T Expired - Lifetime ES2360005T3 (es) | 2000-09-21 | 2001-09-20 | Sistema y método de firma mediante código por software. |
ES10186296.9T Expired - Lifetime ES2465967T3 (es) | 2000-09-21 | 2001-09-20 | Sistema y método de firma mediante código por software |
Country Status (11)
Country | Link |
---|---|
US (8) | US8489868B2 (es) |
EP (8) | EP2284644B1 (es) |
CN (4) | CN101694688B (es) |
AT (4) | ATE479930T1 (es) |
AU (1) | AU2001293563A1 (es) |
BR (1) | BRPI0114066B1 (es) |
CA (3) | CA2422917C (es) |
DE (3) | DE60142991D1 (es) |
ES (6) | ES2253426T5 (es) |
HK (7) | HK1055629A1 (es) |
WO (1) | WO2002025409A2 (es) |
Families Citing this family (102)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002025409A2 (en) | 2000-09-21 | 2002-03-28 | Research In Motion Limited | Software code signing system and method |
US7631196B2 (en) * | 2002-02-25 | 2009-12-08 | Intel Corporation | Method and apparatus for loading a trustable operating system |
US20030191943A1 (en) * | 2002-04-05 | 2003-10-09 | Poisner David I. | Methods and arrangements to register code |
JP2003337716A (ja) * | 2002-05-20 | 2003-11-28 | Ntt Docomo Inc | 電子機器、データ共用方法、プログラム及び記憶媒体 |
FR2840134B1 (fr) * | 2002-05-21 | 2004-08-13 | France Telecom | Procede de controle d'acces a des ressources cryptographiques, plate-forme informatique et module logiciel utilisables dans la mise en oeuvre du procede |
US20080313282A1 (en) | 2002-09-10 | 2008-12-18 | Warila Bruce W | User interface, operating system and architecture |
FR2849230B1 (fr) * | 2002-12-24 | 2005-04-22 | Francois Bangui | Procede et dispositif de verification de l'integrite d'une application logicielle sans cle de chiffrement/dechiffrement |
US7096005B2 (en) * | 2003-01-23 | 2006-08-22 | Inventec Appliances Corp. | Method of carrying out a safe remote electronic signing by cellular phone |
US7565551B2 (en) * | 2003-02-19 | 2009-07-21 | Microsoft Corporation | Enhancing software integrity through installation and verification |
US7921302B2 (en) | 2003-03-10 | 2011-04-05 | Igt | Universal game download methods and system for legacy gaming machines |
US8491391B2 (en) | 2003-03-10 | 2013-07-23 | Igt | Regulated gaming—agile media player for controlling games |
US7802087B2 (en) | 2003-03-10 | 2010-09-21 | Igt | Universal method for submitting gaming machine source code software to a game certification laboratory |
CA2724141A1 (en) | 2003-03-10 | 2004-09-23 | Mudalla Technology, Inc. | Dynamic configuration of a gaming system |
US7600251B2 (en) | 2003-03-10 | 2009-10-06 | Igt | Universal peer-to-peer game download |
US7337330B2 (en) | 2003-03-10 | 2008-02-26 | Cyberview Technology, Inc. | Universal game download system for legacy gaming machines |
US7966493B2 (en) * | 2003-11-18 | 2011-06-21 | Oracle International Corporation | Method of and system for determining if an electronic signature is necessary in order to commit a transaction to a database |
WO2005071515A1 (en) * | 2004-01-22 | 2005-08-04 | Koninklijke Philips Electronics N.V. | Method of authorizing access to content |
US20050289350A1 (en) * | 2004-06-25 | 2005-12-29 | Markus Schmidt-Karaca | Method and system for secure synchronization between an enterprise system and a device |
US7607011B1 (en) * | 2004-07-16 | 2009-10-20 | Rockwell Collins, Inc. | System and method for multi-level security on a network |
US9313214B2 (en) | 2004-08-06 | 2016-04-12 | Google Technology Holdings LLC | Enhanced security using service provider authentication |
GB2422919B (en) * | 2004-11-02 | 2009-05-27 | T Mobile Int Ag & Co Kg | Software application security access management in mobile communication devices |
WO2006054128A1 (en) * | 2004-11-22 | 2006-05-26 | Nokia Corporation | Method and device for verifying the integrity of platform software of an electronic device |
JP4727278B2 (ja) * | 2005-04-05 | 2011-07-20 | 株式会社エヌ・ティ・ティ・ドコモ | アプリケーションプログラム検証システム、アプリケーションプログラム検証方法およびコンピュータプログラム |
US20060236100A1 (en) * | 2005-04-19 | 2006-10-19 | Guruprasad Baskaran | System and method for enhanced layer of security to protect a file system from malicious programs |
DE102005030590B4 (de) * | 2005-06-30 | 2011-03-24 | Advanced Micro Devices, Inc., Sunnyvale | Sicheres Patchsystem |
WO2007005140A1 (en) * | 2005-06-30 | 2007-01-11 | Advanced Micro Devices, Inc. | Secure patch system |
US8838974B2 (en) * | 2005-07-15 | 2014-09-16 | The Mathworks, Inc. | System and method for verifying the integrity of read-only components in deployed mixed-mode applications |
US8320880B2 (en) * | 2005-07-20 | 2012-11-27 | Qualcomm Incorporated | Apparatus and methods for secure architectures in wireless networks |
JP2007081482A (ja) * | 2005-09-09 | 2007-03-29 | Canon Inc | 端末認証方法及びその装置、プログラム |
US20070074031A1 (en) * | 2005-09-29 | 2007-03-29 | Research In Motion Limited | System and method for providing code signing services |
US20070074032A1 (en) * | 2005-09-29 | 2007-03-29 | Research In Motion Limited | Remote hash generation in a system and method for providing code signing services |
US20070074033A1 (en) * | 2005-09-29 | 2007-03-29 | Research In Motion Limited | Account management in a system and method for providing code signing services |
US8340289B2 (en) | 2005-09-29 | 2012-12-25 | Research In Motion Limited | System and method for providing an indication of randomness quality of random number data generated by a random data service |
US7797545B2 (en) | 2005-09-29 | 2010-09-14 | Research In Motion Limited | System and method for registering entities for code signing services |
US20070083378A1 (en) * | 2005-10-11 | 2007-04-12 | Microsoft Corporation | Secure application programming interface |
JP4854000B2 (ja) * | 2005-11-02 | 2012-01-11 | 株式会社日立ソリューションズ | 機密ファイル保護方法 |
SE530662C2 (sv) * | 2005-11-09 | 2008-08-05 | Noll Och Ett Data Ab | Förfarande och anordning |
WO2007097439A1 (ja) * | 2006-02-21 | 2007-08-30 | Nec Corporation | プログラムの実行制御システム、実行制御方法、実行制御用コンピュータプログラム |
JP2007328770A (ja) * | 2006-05-10 | 2007-12-20 | Ricoh Co Ltd | 情報処理装置、アクセス制御方法、アクセス制御プログラム、記録媒体、及び画像形成装置 |
US8341747B2 (en) * | 2006-08-08 | 2012-12-25 | International Business Machines Corporation | Method to provide a secure virtual machine launcher |
US8615801B2 (en) * | 2006-08-31 | 2013-12-24 | Microsoft Corporation | Software authorization utilizing software reputation |
EP2009565A1 (en) * | 2007-06-28 | 2008-12-31 | Gemplus | Method for securely loading a client applet in an electronic portable device |
US8842836B2 (en) * | 2007-11-26 | 2014-09-23 | Koolspan, Inc. | System for and method of cryptographic provisioning |
US8364978B2 (en) * | 2007-11-26 | 2013-01-29 | Koolspan, Inc. | System for and method of auto-registration with cryptographic modules |
US9223938B2 (en) * | 2007-12-31 | 2015-12-29 | Google Technology Holdings LLC | Location bound secure domains |
WO2009097350A1 (en) * | 2008-01-29 | 2009-08-06 | Palm, Inc. | Secure application signing |
EP2252957A1 (en) * | 2008-03-04 | 2010-11-24 | Apple Inc. | Managing code entitlements for software developers in secure operating environments |
US20090228704A1 (en) * | 2008-03-04 | 2009-09-10 | Apple Inc. | Providing developer access in secure operating environments |
EP2404428B1 (en) | 2009-03-06 | 2017-11-15 | Gemalto SA | A system and method for providing security in browser-based access to smart cards |
US8818412B2 (en) * | 2009-03-18 | 2014-08-26 | Wavemarket, Inc. | System for aggregating and disseminating location information |
US20100242097A1 (en) | 2009-03-20 | 2010-09-23 | Wavemarket, Inc. | System and method for managing application program access to a protected resource residing on a mobile device |
US8683554B2 (en) * | 2009-03-27 | 2014-03-25 | Wavemarket, Inc. | System and method for managing third party application program access to user information via a native application program interface (API) |
US8839458B2 (en) * | 2009-05-12 | 2014-09-16 | Nokia Corporation | Method, apparatus, and computer program for providing application security |
US20110137817A1 (en) * | 2009-06-01 | 2011-06-09 | Wavemarket, Inc. | System and method for aggregating and disseminating personal data |
CN102087689B (zh) * | 2009-12-04 | 2013-04-03 | 北大方正集团有限公司 | 一种软件重用模块的保护方法及装置 |
AU2010335972B2 (en) | 2009-12-21 | 2013-10-03 | 13079023 Canada Association | Systems and methods for accessing and controlling media stored remotely |
US8533811B2 (en) * | 2010-01-20 | 2013-09-10 | Microsoft Corporation | Developer phone registration |
US9264448B2 (en) * | 2010-01-20 | 2016-02-16 | Blackberry Limited | Apparatus, and an associated method, for facilitating secure operations of a wireless device |
CN102130907B (zh) * | 2010-01-20 | 2014-05-07 | 微软公司 | 开发者电话注册 |
JP2012003679A (ja) * | 2010-06-21 | 2012-01-05 | Kyocera Mita Corp | 画像形成装置用追加アプリケーションのセキュリティ確保方法、画像形成システム及び画像形成装置 |
US20120089978A1 (en) * | 2010-10-12 | 2012-04-12 | I O Interconnect, Ltd. | Method for managing applications of portable devices |
US20120090021A1 (en) * | 2010-10-12 | 2012-04-12 | Ansca, Inc. | Platform Specific Application Building |
US8621591B2 (en) * | 2010-10-19 | 2013-12-31 | Symantec Corporation | Software signing certificate reputation model |
US8938809B2 (en) | 2011-06-24 | 2015-01-20 | Google Technology Holdings LLC | Retrieval of data across multiple partitions of a storage device using digital signatures |
US8745616B1 (en) * | 2011-09-23 | 2014-06-03 | Symantec Corporation | Systems and methods for providing digital certificates that certify the trustworthiness of digitally signed code |
US8572368B1 (en) | 2011-09-23 | 2013-10-29 | Symantec Corporation | Systems and methods for generating code-specific code-signing certificates containing extended metadata |
KR101430240B1 (ko) * | 2011-12-19 | 2014-08-19 | 주식회사 케이티 | 어플리케이션 서명 장치 및 방법 |
US9042266B2 (en) | 2011-12-21 | 2015-05-26 | Kik Interactive, Inc. | Methods and apparatus for initializing a network connection for an output device |
KR101876297B1 (ko) * | 2012-03-16 | 2018-07-10 | 삼성전자주식회사 | 전자 서명 검증 장치 및 방법 |
US9009705B2 (en) * | 2012-10-01 | 2015-04-14 | International Business Machines Corporation | Authenticated distribution of virtual machine images |
EP2750065A1 (en) * | 2012-12-27 | 2014-07-02 | Telefonica S.A. | Method, system and computer program product for managing operations of service terminals |
US8894485B2 (en) * | 2013-03-18 | 2014-11-25 | Cadillac Jack, Inc. | Electronic gaming system with ROM-based media validation |
IN2013MU01235A (es) * | 2013-03-28 | 2015-04-10 | Tata Consultancy Services Ltd | |
US9158932B2 (en) | 2013-05-08 | 2015-10-13 | Sap Se | Modeled authorization check implemented with UI framework |
US9515832B2 (en) * | 2013-06-24 | 2016-12-06 | Microsoft Technology Licensing, Llc | Process authentication and resource permissions |
US9385869B1 (en) * | 2014-03-26 | 2016-07-05 | Symantec Corporation | Systems and methods for trusting digitally signed files in the absence of verifiable signature conditions |
US20160048688A1 (en) * | 2014-08-14 | 2016-02-18 | Google Inc. | Restricting System Calls using Protected Storage |
US10050993B2 (en) * | 2014-09-24 | 2018-08-14 | Mcafee, Llc | Non-invasive whitelisting |
US9843451B2 (en) * | 2014-10-30 | 2017-12-12 | Motorola Solutions, Inc. | Apparatus and method for multi-state code signing |
US10303891B2 (en) * | 2014-12-30 | 2019-05-28 | Data I/O Corporation | Automated manufacturing system with job packaging mechanism and method of operation thereof |
US9536080B2 (en) * | 2015-05-29 | 2017-01-03 | Apple Inc. | Method for validating dynamically loaded libraries using team identifiers |
US10044701B2 (en) * | 2016-05-24 | 2018-08-07 | Vantiv, Llc | Technologies for token-based authentication and authorization of distributed computing resources |
US10419224B2 (en) * | 2016-06-14 | 2019-09-17 | International Business Machines Corporation | Preventing monoculture in application distribution |
CN108259413B (zh) * | 2016-12-28 | 2021-06-01 | 华为技术有限公司 | 一种获取证书、鉴权的方法及网络设备 |
SE541713C2 (en) * | 2017-05-03 | 2019-12-03 | Enigio Time Ab | Method and system for registering digital documents |
US11354399B2 (en) | 2017-07-17 | 2022-06-07 | Hewlett-Packard Development Company, L.P. | Authentication of entitlement certificates |
US20190026442A1 (en) * | 2017-07-24 | 2019-01-24 | Microsoft Technology Licensing, Llc | Offline activation for application(s) installed on a computing device |
CN108768664B (zh) * | 2018-06-06 | 2020-11-03 | 腾讯科技(深圳)有限公司 | 密钥管理方法、装置、***、存储介质和计算机设备 |
US10719373B1 (en) * | 2018-08-23 | 2020-07-21 | Styra, Inc. | Validating policies and data in API authorization system |
US11520877B2 (en) * | 2018-12-12 | 2022-12-06 | Raytheon Company | Resilient multi-variant execution verification |
RU2706873C1 (ru) * | 2018-12-28 | 2019-11-21 | Акционерное общество "Лаборатория Касперского" | Система и способ проверки ЭЦП файла |
US10897361B1 (en) * | 2019-09-04 | 2021-01-19 | Garantir LLC | Automated hash validation |
US11645410B2 (en) | 2019-10-09 | 2023-05-09 | Intertrust Technologies Corporation | Content management systems and methods |
KR102644153B1 (ko) * | 2019-10-31 | 2024-03-07 | 삼성에스디에스 주식회사 | 데이터 보안 장치 및 방법 |
US11244077B2 (en) * | 2020-01-31 | 2022-02-08 | Fortanix, Inc. | Securing data integrity for an application |
US11431510B1 (en) | 2020-04-30 | 2022-08-30 | Wells Fargo Bank, N.A. | Code-sign white listing (CSWL) |
US11003498B1 (en) | 2020-08-10 | 2021-05-11 | Coupang Corp. | Computerized systems and methods for fail-safe loading of information on a user interface using a circuit breaker |
US11334345B2 (en) * | 2020-10-08 | 2022-05-17 | Pelion Technology, Inc. | Differential firmware update generation |
US20220141029A1 (en) * | 2020-10-29 | 2022-05-05 | Microsoft Technology Licensing, Llc | Using multi-factor and/or inherence-based authentication to selectively enable performance of an operation prior to or during release of code |
US11057215B1 (en) | 2021-01-27 | 2021-07-06 | Garantir LLC | Automated hash validation |
US12008146B2 (en) * | 2021-03-31 | 2024-06-11 | Seagate Technology Llc | Code-based signatures for secure programs |
US11954007B2 (en) | 2022-04-20 | 2024-04-09 | International Business Machines Corporation | Tracking usage of common libraries by means of digitally signed digests thereof |
Family Cites Families (82)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5005200A (en) | 1988-02-12 | 1991-04-02 | Fischer Addison M | Public key/signature cryptosystem with enhanced digital signature certification |
US5412717A (en) | 1992-05-15 | 1995-05-02 | Fischer; Addison M. | Computer system security method and apparatus having program authorization information data structures |
KR0161361B1 (ko) | 1993-04-28 | 1999-03-20 | 사또 후미오 | 구동 회로 장치 |
US5421013A (en) | 1993-07-08 | 1995-05-30 | Park City Group, Inc. | Agent-based multithreading application programming interface |
US6135646A (en) | 1993-10-22 | 2000-10-24 | Corporation For National Research Initiatives | System for uniquely and persistently identifying, managing, and tracking digital objects |
US5625690A (en) | 1993-11-15 | 1997-04-29 | Lucent Technologies Inc. | Software pay per use system |
NZ329891A (en) * | 1994-01-13 | 2000-01-28 | Certco Llc | Method of upgrading firmware of trusted device using embedded key |
US5724425A (en) | 1994-06-10 | 1998-03-03 | Sun Microsystems, Inc. | Method and apparatus for enhancing software security and distributing software |
US6157721A (en) * | 1996-08-12 | 2000-12-05 | Intertrust Technologies Corp. | Systems and methods using cryptography to protect secure computing environments |
US5680619A (en) | 1995-04-03 | 1997-10-21 | Mfactory, Inc. | Hierarchical encapsulation of instantiated objects in a multimedia authoring system |
US5657378A (en) | 1995-04-11 | 1997-08-12 | M Power Corporation | Digital screen phone terminal with graphical user interface |
US5966714A (en) | 1995-04-28 | 1999-10-12 | Intel Corporation | Method and apparatus for scaling large electronic mail databases for devices with limited storage |
US5845282A (en) | 1995-08-07 | 1998-12-01 | Apple Computer, Inc. | Method and apparatus for remotely accessing files from a desktop computer using a personal digital assistant |
US5797089A (en) | 1995-09-07 | 1998-08-18 | Telefonaktiebolaget Lm Ericsson (Publ) | Personal communications terminal having switches which independently energize a mobile telephone and a personal digital assistant |
US5978484A (en) * | 1996-04-25 | 1999-11-02 | Microsoft Corporation | System and method for safety distributing executable objects |
US6253027B1 (en) * | 1996-06-17 | 2001-06-26 | Hewlett-Packard Company | System, method and article of manufacture for exchanging software and configuration data over a multichannel, extensible, flexible architecture |
US6067582A (en) | 1996-08-13 | 2000-05-23 | Angel Secure Networks, Inc. | System for installing information related to a software application to a remote computer over a network |
US5844986A (en) | 1996-09-30 | 1998-12-01 | Intel Corporation | Secure BIOS |
US6023509A (en) * | 1996-09-30 | 2000-02-08 | Intel Corporation | Digital signature purpose encoding |
US5958051A (en) | 1996-11-27 | 1999-09-28 | Sun Microsystems, Inc. | Implementing digital signatures for data streams and data archives |
US5903882A (en) | 1996-12-13 | 1999-05-11 | Certco, Llc | Reliance server for electronic transaction system |
US6009176A (en) | 1997-02-13 | 1999-12-28 | International Business Machines Corporation | How to sign digital streams |
US5935249A (en) * | 1997-02-26 | 1999-08-10 | Sun Microsystems, Inc. | Mechanism for embedding network based control systems in a local network interface device |
EP1004992A3 (en) * | 1997-03-24 | 2001-12-05 | Visa International Service Association | A system and method for a multi-application smart card which can facilitate a post-issuance download of an application onto the smart card |
US6233683B1 (en) * | 1997-03-24 | 2001-05-15 | Visa International Service Association | System and method for a multi-application smart card which can facilitate a post-issuance download of an application onto the smart card |
US6212636B1 (en) * | 1997-05-01 | 2001-04-03 | Itt Manufacturing Enterprises | Method for establishing trust in a computer network via association |
EP0983541B1 (en) * | 1997-05-29 | 2003-08-06 | Sun Microsystems, Inc. | Method and apparatus for signing and sealing objects |
US6389534B1 (en) | 1997-06-30 | 2002-05-14 | Taher Elgamal | Cryptographic policy filters and policy control method and apparatus |
US5940379A (en) | 1997-07-23 | 1999-08-17 | Motorola, Inc. | Apparatus and method for using multiple spreading codes for data transmission in a satellite communication system |
US6188995B1 (en) * | 1997-07-28 | 2001-02-13 | Apple Computer, Inc. | Method and apparatus for enforcing software licenses |
EP1040630B1 (en) * | 1997-12-19 | 2004-11-03 | BRITISH TELECOMMUNICATIONS public limited company | Data communications |
US8489860B1 (en) * | 1997-12-22 | 2013-07-16 | Texas Instruments Incorporated | Mobile electronic device having a host processor system capable of dynamically canging tasks performed by a coprocessor in the device |
DE69911174T2 (de) | 1998-02-03 | 2004-07-01 | Mondex International Ltd. | System und verfahren zur kontrolle des zugangs zu dem computercode in einer chipkarte |
US6131166A (en) | 1998-03-13 | 2000-10-10 | Sun Microsystems, Inc. | System and method for cross-platform application level power management |
US6324650B1 (en) * | 1998-03-16 | 2001-11-27 | John W.L. Ogilvie | Message content protection and conditional disclosure |
US20010044901A1 (en) * | 1998-03-24 | 2001-11-22 | Symantec Corporation | Bubble-protected system for automatic decryption of file data on a per-use basis and automatic re-encryption |
US6374357B1 (en) * | 1998-04-16 | 2002-04-16 | Microsoft Corporation | System and method for regulating a network service provider's ability to host distributed applications in a distributed processing environment |
US6256393B1 (en) | 1998-06-23 | 2001-07-03 | General Instrument Corporation | Authorization and access control of software object residing in set-top terminals |
US6226618B1 (en) * | 1998-08-13 | 2001-05-01 | International Business Machines Corporation | Electronic content delivery system |
US6085321A (en) * | 1998-08-14 | 2000-07-04 | Omnipoint Corporation | Unique digital signature |
US6230184B1 (en) | 1998-10-19 | 2001-05-08 | Sun Microsystems, Inc. | Method and apparatus for automatically optimizing execution of a computer program |
US6748541B1 (en) * | 1999-10-05 | 2004-06-08 | Aladdin Knowledge Systems, Ltd. | User-computer interaction method for use by a population of flexibly connectable computer systems |
JP4764536B2 (ja) * | 1998-11-17 | 2011-09-07 | 株式会社リコー | 画像計測機器 |
US6390374B1 (en) * | 1999-01-15 | 2002-05-21 | Todd Carper | System and method for installing/de-installing an application on a smart card |
US6298354B1 (en) | 1999-02-19 | 2001-10-02 | Sun Microsystems, Inc. | Mechanism and process to transform a grammar-derived intermediate form to an object-oriented configuration database |
US6256737B1 (en) * | 1999-03-09 | 2001-07-03 | Bionetrix Systems Corporation | System, method and computer program product for allowing access to enterprise resources using biometric devices |
US6223291B1 (en) * | 1999-03-26 | 2001-04-24 | Motorola, Inc. | Secure wireless electronic-commerce system with digital product certificates and digital license certificates |
US6574636B1 (en) * | 1999-05-04 | 2003-06-03 | Accenture Llp | Method and article of manufacture for isolating data within a computer program |
US6697948B1 (en) * | 1999-05-05 | 2004-02-24 | Michael O. Rabin | Methods and apparatus for protecting information |
US6895507B1 (en) * | 1999-07-02 | 2005-05-17 | Time Certain, Llc | Method and system for determining and maintaining trust in digital data files with certifiable time |
US7243236B1 (en) * | 1999-07-29 | 2007-07-10 | Intertrust Technologies Corp. | Systems and methods for using cryptography to protect secure and insecure computing environments |
US6526513B1 (en) * | 1999-08-03 | 2003-02-25 | International Business Machines Corporation | Architecture for dynamic permissions in java |
EP1076279A1 (en) * | 1999-08-13 | 2001-02-14 | Hewlett-Packard Company | Computer platforms and their methods of operation |
ATE306096T1 (de) * | 1999-08-31 | 2005-10-15 | Swisscom Ag | Mobiler roboter und steuerverfahren für einen mobilen roboter |
US6289382B1 (en) * | 1999-08-31 | 2001-09-11 | Andersen Consulting, Llp | System, method and article of manufacture for a globally addressable interface in a communication services patterns environment |
US20050160272A1 (en) * | 1999-10-28 | 2005-07-21 | Timecertain, Llc | System and method for providing trusted time in content of digital data files |
US20020112078A1 (en) * | 1999-12-03 | 2002-08-15 | David Yach | Virtual machine web browser |
US6931546B1 (en) | 2000-01-28 | 2005-08-16 | Network Associates, Inc. | System and method for providing application services with controlled access into privileged processes |
US7162035B1 (en) * | 2000-05-24 | 2007-01-09 | Tracer Detection Technology Corp. | Authentication method and system |
US6687837B1 (en) | 2000-06-15 | 2004-02-03 | Cisco Technology, Inc. | Method and system for controlling the supply of power to a circuit card in a card shelf through an activation signal |
US6981262B1 (en) * | 2000-06-27 | 2005-12-27 | Microsoft Corporation | System and method for client interaction in a multi-level rights-management architecture |
US6678887B1 (en) | 2000-07-11 | 2004-01-13 | Networks Associates Technology, Inc. | Customizing business logic and data sources by modifying methods defined within an API |
US6766353B1 (en) * | 2000-07-11 | 2004-07-20 | Motorola, Inc. | Method for authenticating a JAVA archive (JAR) for portable devices |
US6721809B1 (en) | 2000-08-21 | 2004-04-13 | Oracle International Corporation | Method and apparatus for configuring extensible application programming interfaces |
EP1314294B1 (en) * | 2000-08-25 | 2005-10-19 | Research In Motion Limited | System and method for implementing an enhanced transport layer security protocol |
WO2002025409A2 (en) | 2000-09-21 | 2002-03-28 | Research In Motion Limited | Software code signing system and method |
US7295836B2 (en) * | 2001-03-09 | 2007-11-13 | Research In Motion Limited | Advanced voice and data operations in a mobile data communication device |
CA2450601C (en) * | 2001-06-12 | 2012-10-16 | Research In Motion Limited | System and method for compressing secure e-mail for exchange with a mobile data communication device |
CA2717229A1 (en) * | 2001-06-12 | 2002-12-19 | Research In Motion Limited | Certificate management and transfer system and method |
ATE375686T1 (de) * | 2001-07-12 | 2007-10-15 | Research In Motion Ltd | System und verfahren zum datenzugriff für ein mobiles telekommunikationsendgerät |
US7526572B2 (en) * | 2001-07-12 | 2009-04-28 | Research In Motion Limited | System and method for providing remote data access for a mobile communication device |
CN103178963A (zh) * | 2001-07-16 | 2013-06-26 | 捷讯研究有限公司 | 用于在移动通信设备上支持多证书授权的***和方法 |
CA2394503A1 (en) * | 2001-07-23 | 2003-01-23 | Research In Motion Limited | System and method for pushing information to a mobile device |
BRPI0211756B1 (pt) * | 2001-08-06 | 2016-09-06 | Blackberry Ltd | sistema e método para processar mensagens codificadas |
US20030063772A1 (en) | 2001-09-06 | 2003-04-03 | Smith Joshua R. | System and method for authentication and tracking of a workpiece that includes an optically active medium |
CA2464361C (en) * | 2001-10-25 | 2010-09-14 | Research In Motion Limited | Multiple-stage system and method for processing encoded messages |
US20040166334A1 (en) | 2003-02-26 | 2004-08-26 | Shigeo Kawabata | Decorative film-like material |
WO2006016407A1 (ja) * | 2004-08-12 | 2006-02-16 | Fujitsu Limited | Javaアプレット、JARファイル生成方法、JARファイル生成プログラム、JARファイル生成装置 |
CN102301127B (zh) | 2008-12-02 | 2014-03-26 | 维斯塔斯风力***有限公司 | 安装风轮机的方法、风轮机机舱和运输风轮机元件的方法 |
US20110162074A1 (en) | 2009-12-31 | 2011-06-30 | Sap Portals Israel Ltd | Apparatus and method for remote processing while securing classified data |
US7944079B1 (en) | 2010-04-21 | 2011-05-17 | General Electric Company | Systems and methods for assembling a gearbox handling assembly for use in a wind turbine |
WO2012105971A1 (en) | 2011-02-02 | 2012-08-09 | Smith Matthew K | Nacelle-mounted maintenance system for wind turbines |
-
2001
- 2001-09-20 WO PCT/CA2001/001344 patent/WO2002025409A2/en active IP Right Grant
- 2001-09-20 US US10/381,219 patent/US8489868B2/en active Active
- 2001-09-20 ES ES01973901T patent/ES2253426T5/es not_active Expired - Lifetime
- 2001-09-20 EP EP10183655.9A patent/EP2284644B1/en not_active Expired - Lifetime
- 2001-09-20 AT AT05024662T patent/ATE479930T1/de not_active IP Right Cessation
- 2001-09-20 EP EP05024662A patent/EP1626325B1/en not_active Expired - Lifetime
- 2001-09-20 EP EP01973901A patent/EP1320795B2/en not_active Expired - Lifetime
- 2001-09-20 EP EP10186194.6A patent/EP2306259B1/en not_active Expired - Lifetime
- 2001-09-20 CN CN200910207912.5A patent/CN101694688B/zh not_active Expired - Lifetime
- 2001-09-20 DE DE60142991T patent/DE60142991D1/de not_active Expired - Lifetime
- 2001-09-20 CN CNB018192009A patent/CN100573402C/zh not_active Expired - Lifetime
- 2001-09-20 CA CA2422917A patent/CA2422917C/en not_active Expired - Lifetime
- 2001-09-20 CN CN200910207911.0A patent/CN101694687B/zh not_active Expired - Lifetime
- 2001-09-20 ES ES10186194.6T patent/ES2545791T3/es not_active Expired - Lifetime
- 2001-09-20 ES ES05024661T patent/ES2385565T3/es not_active Expired - Lifetime
- 2001-09-20 ES ES05024662T patent/ES2352556T3/es not_active Expired - Lifetime
- 2001-09-20 CA CA2923740A patent/CA2923740C/en not_active Expired - Lifetime
- 2001-09-20 AT AT05024661T patent/ATE553426T1/de active
- 2001-09-20 BR BRPI0114066A patent/BRPI0114066B1/pt active IP Right Grant
- 2001-09-20 AT AT01973901T patent/ATE310271T1/de not_active IP Right Cessation
- 2001-09-20 EP EP05024663A patent/EP1626326B1/en not_active Expired - Lifetime
- 2001-09-20 DE DE60142992T patent/DE60142992D1/de not_active Expired - Lifetime
- 2001-09-20 ES ES05024663T patent/ES2360005T3/es not_active Expired - Lifetime
- 2001-09-20 EP EP10186296.9A patent/EP2306260B1/en not_active Expired - Lifetime
- 2001-09-20 DE DE60115072T patent/DE60115072T3/de not_active Expired - Lifetime
- 2001-09-20 EP EP05024661A patent/EP1626324B1/en not_active Expired - Lifetime
- 2001-09-20 AU AU2001293563A patent/AU2001293563A1/en not_active Abandoned
- 2001-09-20 AT AT05024663T patent/ATE479931T1/de not_active IP Right Cessation
- 2001-09-20 ES ES10186296.9T patent/ES2465967T3/es not_active Expired - Lifetime
- 2001-09-20 CA CA3006733A patent/CA3006733A1/en not_active Abandoned
- 2001-09-20 EP EP10183997.5A patent/EP2278429B1/en not_active Expired - Lifetime
- 2001-09-20 CN CN200910209311.8A patent/CN101714201B/zh not_active Expired - Lifetime
-
2003
- 2003-09-12 HK HK03106586A patent/HK1055629A1/xx not_active IP Right Cessation
-
2006
- 2006-07-18 HK HK06108035.4A patent/HK1091665A1/xx not_active IP Right Cessation
- 2006-07-18 HK HK06108037.2A patent/HK1091667A1/xx not_active IP Right Cessation
- 2006-07-18 HK HK11108558.4A patent/HK1154427A1/xx not_active IP Right Cessation
- 2006-07-18 HK HK06108036.3A patent/HK1091666A1/xx not_active IP Right Cessation
- 2006-07-18 HK HK11110554.4A patent/HK1156409A1/xx not_active IP Right Cessation
-
2011
- 2011-07-26 HK HK11107793.1A patent/HK1153829A1/xx not_active IP Right Cessation
-
2012
- 2012-03-06 US US13/413,173 patent/US20120179917A1/en active Granted
-
2013
- 2013-01-30 US US13/754,162 patent/US8984278B2/en not_active Expired - Fee Related
-
2014
- 2014-08-14 US US14/459,785 patent/US9507920B2/en not_active Expired - Lifetime
-
2016
- 2016-11-28 US US15/361,993 patent/US9922175B2/en not_active Expired - Fee Related
-
2018
- 2018-03-19 US US15/925,284 patent/US10032007B1/en not_active Expired - Fee Related
- 2018-07-17 US US16/037,412 patent/US10437967B2/en not_active Expired - Fee Related
-
2019
- 2019-08-16 US US16/543,201 patent/US11030278B2/en not_active Expired - Lifetime
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2253426T3 (es) | Sistema y metodo de firma mediante codigo. | |
EP1776799B1 (en) | Enhanced security using service provider authentication | |
US7797545B2 (en) | System and method for registering entities for code signing services | |
US20070074031A1 (en) | System and method for providing code signing services | |
KR20070112432A (ko) | 런타임 패키지 서명에서 트러스트된, 하드웨어 기반의 신원증명을 사용하여 모바일 통신과 고액 거래 실행을 보안처리하기 위한 방법 | |
CA2561608A1 (en) | System and method for registering entities for code signing services |