ES2343623T3 - Dispositivo inalambrico movil seguro. - Google Patents
Dispositivo inalambrico movil seguro. Download PDFInfo
- Publication number
- ES2343623T3 ES2343623T3 ES03727702T ES03727702T ES2343623T3 ES 2343623 T3 ES2343623 T3 ES 2343623T3 ES 03727702 T ES03727702 T ES 03727702T ES 03727702 T ES03727702 T ES 03727702T ES 2343623 T3 ES2343623 T3 ES 2343623T3
- Authority
- ES
- Spain
- Prior art keywords
- capabilities
- access
- server
- executable code
- protected
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2113—Multi-level security, e.g. mandatory access control
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2115—Third party
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Storage Device Security (AREA)
- Transceivers (AREA)
- Mobile Radio Communication Systems (AREA)
- Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)
- Motorcycle And Bicycle Frame (AREA)
Abstract
Un dispositivo inalámbrico móvil seguro para un solo usuario en el que está instalado código ejecutable nativo, incluyendo el dispositivo: una pluralidad de recursos protegidos; una pluralidad de servidores; y una base informática de confianza que tiene un núcleo; en el que el acceso a dicho recurso protegido es proporcionado por un correspondiente servidor; al código ejecutable nativo se le asigna un conjunto de capacidades que definen un/los recurso(s) protegido(s) en el dispositivo a los que puede acceder el código ejecutable nativo; dichos servidores correspondientes están dispuestos para que vigilen el acceso a dichos recursos protegidos en base a las capacidades asignadas al código ejecutable nativo; las capacidades están almacenadas en una ubicación que es accesible únicamente a la base informática de confianza; y el núcleo está dispuesto, para cada comunicación cliente-servidor, para pasar las capacidades del cliente a dicho servidor.
Description
Dispositivo inalámbrico móvil seguro.
La presente invención versa acerca de un
dispositivo inalámbrico móvil seguro; en particular, versa acerca
de un nuevo enfoque de la seguridad de plataformas para los
dispositivos inalámbricos móviles que protege recursos clave del
sistema operativo contra un acceso dañino.
La seguridad de plataformas abarca la filosofía,
la arquitectura y la implementación de mecanismos de defensa de las
plataformas contra código malicioso o mal escrito. Estos mecanismos
de defensa evitan que tal código cause daño. Generalmente, el
código malicioso tiene dos componentes: un mecanismo de carga útil
que causa el daño y un mecanismo de propagación que lo ayuda a
extenderse. Suelen clasificarse como sigue:
- Caballo troyano: se presenta como una aplicación legítima que parece benigna y atractiva para el usuario.
- Gusano: puede replicarse y extenderse sin acción manual adicional por parte ni de los perpetradores ni de los usuarios.
- Virus: se infiltra en los programas legítimos y altera los datos o los destruye.
\vskip1.000000\baselineskip
Las amenazas a la seguridad abarcan (a) una
brecha potencial de la confidencialidad, de la integridad o de la
disponibilidad de los servicios o de los datos en la cadena de
valores y la integridad de los servicios y (b) la puesta en peligro
de la función del servicio. Las amenazas se clasifican en las
categorías siguientes:
- 1.
- Amenazas a la confidencialidad y la integridad de los datos: Ejemplos: Obtener la contraseña del usuario; corromper ficheros.
- 2.
- Amenazas a la confidencialidad y la integridad de los servicios. Ejemplos: Usar ancho de banda de abono a la red telefónica sin pagarlo; repudio de transacciones con el proveedor de servicios de red.
- 3.
- Amenazas a la disponibilidad de un servicio (también denominadas denegación de servicio). Ejemplos: Impedir que el usuario envíe un mensaje de texto; impedir que el usuario acepte una llamada de teléfono.
\vskip1.000000\baselineskip
Por ende, los dispositivos inalámbricos móviles
ofrecen retos muy considerables para quien diseña una arquitectura
de seguridad. Típicamente, un enfoque convencional actúa
determinando en primer lugar si el código (por ejemplo, una
aplicación) es lo suficientemente digna de confianza como para ser
instalada y después, proteger subsiguientemente la plataforma
contra su conducta errática una vez que se ha instalado. En términos
de la determinación de la confianza, las aplicaciones de terceros
pueden catalogarse según el grado de confianza asociado con sus
autores. Por ello, se conoce el permiso para que las aplicaciones se
instalen automáticamente en un dispositivo únicamente si pueden
presentar un certificado digital válido emitido por una Autoridad
Certificadora (AC) aceptable.
Sin embargo, los certificados digitales solo se
están empezando a extender ahora; antes de su adopción, un
mecanismo primario para la seguridad de las plataformas debía
conceder privilegios a un usuario en vez de a una aplicación. En el
momento de la ejecución, se le conceden al código que ejecuta el
usuario todos los privilegios de este. En el momento de la
instalación, los programas sensibles únicamente podían ser
instalados por usuarios designados. Esto significaba que el código
potencialmente dañino podía ser examinado por un administrador
experto antes de su instalación. Muchos sistemas operativos bien
conocidos adoptan este enfoque a la seguridad de la plataforma; por
ejemplo, los sistemas operativos basados en Unix.
Sin embargo, la seguridad de plataformas basada
en dar a los distintos usuarios diferentes privilegios de acceso no
es relevante para los dispositivos inalámbricos móviles por la
sencilla razón de que esta categoría de producto es para un solo
usuario. Es un dispositivo personal, típicamente un "teléfono
inteligente", un teléfono móvil mejorado, una PDA u otro
dispositivo informático personal portátil. Además, es muy probable
que el usuario único no sea experto en informática y, por ello, que
no pueda evaluar de manera fiable el riesgo de instalar y ejecutar
código. Con los dispositivos inalámbricos móviles, las amenazas
clave que un modelo de seguridad de plataformas intenta abordar son
el acceso no autorizado a los datos del usuario y a los servicios
del sistema, en particular a la pila de operaciones del teléfono. La
pila de operaciones del teléfono es especialmente importante,
porque controla una conexión permanente de datos con la red
telefónica; el comercio móvil, los servicios bancarios móviles,
etc., se llevarán a cabo usando la pila de operaciones del teléfono
(como acaba de hacerse notar). Perder el control de la misma a
código malicioso o mal escrito expone al propietario del
dispositivo potencialmente a un daño financiero muy
significativo.
significativo.
Hasta la fecha, no ha habido propuestas
efectivas para la seguridad de plataforma para los dispositivos
inalámbricos móviles.
El documento EP 0 813 133 A2 da a conocer un
mecanismo para usar contenido firmado. Se suministra el contenido a
una máquina cliente en la que es capaz de usar los recursos
informáticos de la máquina. El contenido pueden ser
miniaplicaciones Java. El contenido incluye una firma que describe
las credenciales de seguridad del creador y los requisitos de
recursos del contenido. Un gestor de seguridad usa la información de
la firma para confeccionar capacidades que conceden y regulan al
acceso a diferentes subconjuntos de los recursos informáticos.
En un primer aspecto de la presente invención,
se presenta un dispositivo inalámbrico móvil para un único usuario
en el que se instala código ejecutable nativo, incluyendo el
dispositivo:
- una pluralidad de recursos protegidos;
- una pluralidad de servidores; y
- una base informática de confianza que tiene un núcleo; en el que
- el acceso a dicho recurso protegido es proporcionado por un correspondiente servidor;
- al código ejecutable nativo se le asigna un conjunto de capacidades que definen un/los recurso(s) protegido(s) en el dispositivo a los que puede acceder el código ejecutable nativo;
- dichos servidores correspondientes están dispuestos para que vigilen el acceso a dichos recursos protegidos en base a las capacidades asignadas al código ejecutable nativo;
- las capacidades están almacenadas en una ubicación que es accesible únicamente a la base informática de confianza; y
- el núcleo está dispuesto, para cada comunicación cliente-servidor, para pasar las capacidades del cliente a dicho servidor.
\vskip1.000000\baselineskip
En un segundo aspecto, se presenta un
procedimiento para habilitar que un código ejecutable nativo,
instalado en un dispositivo inalámbrico móvil para un único
usuario, acceda a recursos protegidos en el dispositivo, en el
que:
- el dispositivo incluye: una pluralidad de dichos recursos protegidos; una pluralidad de servidores; y una base informática de confianza que tiene un núcleo;
- el acceso a cada uno de dichos recursos protegidos es proporcionado por un correspondiente servidor;
- al código ejecutable nativo se le asigna un conjunto de capacidades que definen un/los recurso(s) protegido(s) en el dispositivo a los que puede acceder el código ejecutable nativo; y
- las capacidades se almacenan en una ubicación que es accesible únicamente a la base informática de confianza; comprendiendo el procedimiento las etapas de:
- (a)
- vigilar el acceso a dichos recursos protegidos en dichos servidores correspondientes en base a las capacidades asignadas al código ejecutable nativo; y
- (b)
- para cada comunicación cliente-servidor, el núcleo pasa las capacidades del cliente a dicho servidor.
\vskip1.000000\baselineskip
Por lo tanto, la presente invención toma la idea
de las capacidades (conocida en el contexto de definir las
capacidades o privilegios de acceso de diferentes usuarios en un
sistema multiusuario) y la aplica a definir las capacidades o los
privilegios de acceso de diferente código ejecutable nativo para
dispositivos inalámbricos móviles seguros de un solo usuario.
Puede concebirse una implementación de la
presente invención como una protección de cortafuegos de servidores
clave del sistema operativo mediante el uso de un control de acceso
basado en capacidades tal como se aplica a código ejecutable
nativo. Cada capacidad puede conceder el acceso a una API (o a una
gama de API), a un fichero específicos o a cualquier/cualesquiera
otro(s) recurso(s) aplicable(s). Cada
ejecutable (por ejemplo, programas (EXE), o bibliotecas compartidas
estáticas o dinámicas (DLL)) contiene las capacidades que se le han
concedido en el momento de la instalación. Cada ejecutable está
almacenado de manera permanente en una ubicación accesible
únicamente a la Base Informática de Confianza (núcleo, cargador,
servidor de ficheros e instalador de programas; véase la
Descripción detallada, sección 1.1) para mantener la integridad de
las capacidades asignadas al ejecutable. Una vez que se invoca un
ejecutable, el cargador carga el ejecutable, ya sea para crear un
nuevo proceso o para cargar el código de la biblioteca en un proceso
existente. Cuando se crea un nuevo proceso, las capacidades de este
proceso son iguales a las capacidades concedidas al programa. En
base a este conjunto de capacidades, el cargador controla qué
bibliotecas pueden cargarse en el proceso n. Para cada comunicación
cliente-servidor, el núcleo pasa las capacidades del
cliente al servidor. Por lo tanto, el servidor puede confiar
plenamente en las capacidades del cliente, dado que no son
pasadas/aprobadas por él, sino por una parte de un proceso de la
Base Informática de Confianza, por ejemplo el núcleo. El servidor
puede decidir o procesar la llamada o rechazarla.
Preferentemente, el modelo de capacidades está
limitado de forma deliberada a un número pequeño de capacidad. Las
capacidades del sistema son obligatorias y controlan el acceso al
núcleo del sistema operativo, al sistema de ficheros y a los datos
del sistema. Garantizan la integridad del "Entorno Informático de
Confianza" (o EIC, véase la Descripción detallada en 1.2). La
forma en que son controladas no puede ser modificada por el usuario
del dispositivo, y nunca están expuestas a ellos. Otros tipos de
capacidad son discrecionales, dado que son lo suficientemente
significativas para los usuarios medios como para dejarlos decidir
si conceder o no algunas de ellas al código que han instalado.
Estas capacidades se catalogan como sigue:
\vskip1.000000\baselineskip
Usadas únicamente por la Base Informática de
Confianza.
\vskip1.000000\baselineskip
Como ejemplos, podemos definir:
- EscribirDatosSistema permite a un proceso modificar los datos del sistema de configuración.
- ComDS concede acceso a todos controladores de los dispositivos de comunicaciones y de tarjetas de Ethernet.
\vskip1.000000\baselineskip
Como ejemplos, podemos definir:
- RedTelefonica. "Puede acceder a servicios de la red telefónica (y potencialmente gastar dinero del usuario)"
- LeerDatosUsuario. "Puede leer la información privada del usuario del dispositivo".
\vskip1.000000\baselineskip
La presente invención será descrita con
referencia a los dibujos adjuntos, en los que
la Figura 1 muestra los procesos del momento de
ejecución, los anillos de capacidades del sistema y agrupaciones de
capacidades visibles para el usuario para una implementación; y
la Figura 2 ilustra un posible procedimiento de
instalación.
La presente invención será descrita con
referencia a la arquitectura de seguridad del sistema operativo
orientado a objetos SO Symbian, diseñado para dispositivos
inalámbricos de un solo usuario. El sistema operativo Symbian ha
sido desarrollado para dispositivos inalámbricos móviles por Symbian
Ltd, de Londres, Reino Unido.
El esquema básico de la arquitectura de
seguridad del SO Symbian es análogo a las defensas de un castillo
medieval. De forma similar, emplea capas simples y escalonadas de
seguridad por encima y más allá del perímetro de la instalación.
Las amenazas clave que el modelo intenta abordar son aquellas
relacionadas con el acceso no autorizado a datos del usuario y a
servicios del sistema, en particular a la pila de operaciones del
teléfono. La pila de operaciones del teléfono es especialmente
importante en el contexto de un teléfono inteligente, porque estará
controlando una conexión de datos permanente con la red telefónica.
Hay dos controladores clave de diseño que están tras el modelo:
- \bullet
- Una protección de cortafuegos de los recursos clave del sistema mediante el uso de un control de accesos basado en capacidades.
- \bullet
- Una partición de los datos, lo que crea una parte protegida del sistema de ficheros a la que los programas estándar no son capaces de acceder.
El principal concepto del modelo de capacidades
descrito más abajo es controlar lo que puede hacer un proceso en
vez de lo que puede hacer un usuario. Este enfoque es muy diferente
del de sistemas bien conocidos, como Windows NT y Unix. Las razones
principales son:
- -
- La propia naturaleza del SO Symbian es que sea monousuario.
- -
- El SO Symbian proporciona servicios por medio de procesos servidores independientes. Siempre están en funcionamiento y no están vinculados a una sesión de usuario. Mientras se suministre energía, el SO Symbian siempre está activo, aunque no haya un usuario conectado.
- -
- El SO Symbian está concebido para que sea utilizado en dispositivos usados por el gran público sin conocimiento tecnológico. Cuando instala programas, el usuario puede no tener la aptitud de decidir qué permisos conceder a una aplicación. Además, con dispositivos que están siempre conectados, las consecuencias de una decisión errónea o malévola puede tener un impacto mucho mayor en un dominio que en el propio dispositivo.
\vskip1.000000\baselineskip
Un detalle notable de esta invención es que el
uso de la criptografía ha sido excluido del núcleo y del cargador
de forma deliberada: los ejecutables no van firmados, las
capacidades no se almacenan cifradas ni firmadas. Ello ha sido
posible porque la partición de los datos proporciona una zona de
almacenamiento segura para los ejecutables. Permite que el sistema
trate los ejecutables de la ROM (dispositivo incorporado) de la
misma manera que el código de la RAM (instalada por el usuario) sin
poner en peligro ni la seguridad ni el rendimiento. Por lo tanto,
todo uso indebido o vulnerabilidad del código del fabricante del
dispositivo está limitado a las capacidades asignadas a este
código.
\vskip1.000000\baselineskip
Una base informática de confianza (BIC) es un
requisito arquitectónico básico para una seguridad robusta de una
plataforma. La base informática de confianza consiste en varios
elementos arquitectónicos que no pueden ser subvertidos y que
garantizan la integridad del dispositivo. Es importante mantener
esta base en el menor tamaño posible y aplicar el principio de
privilegio mínimo para garantizar que a los servidores del sistema
y a las aplicaciones no hay que darles privilegios que no necesiten
para funcionar. En los dispositivos cerrados, la BIC consiste en el
núcleo, el cargador y el servidor de ficheros; en los dispositivos
abiertos, también se requiere el instalador de programas. Todos
estos procesos son fidedignos en la totalidad del sistema y, por lo
tanto, gozan de pleno acceso al dispositivo. Este núcleo de
confianza se ejecutaría con una capacidad de "raíz" no disponible a otro código de la plataforma (véase la
confianza se ejecutaría con una capacidad de "raíz" no disponible a otro código de la plataforma (véase la
\hbox{sección 2.1).}
Hay otro elemento importante para mantener la
integridad de la base informática de confianza que está fuera del
ámbito de la presente invención: concretamente, los componentes
físicos. En particular, con dispositivos que mantienen la
funcionalidad de la base informática de confianza en ROM
flash, es necesario proporcionar un cargador de arranque
seguro para garantizar que no es posible subvertir la base
informática de confianza con una imagen maliciosa de la ROM.
\vskip1.000000\baselineskip
Más allá del núcleo, se concederían capacidades
ortogonales restringidas del sistema a otros componentes del
sistema, y constituirían el Entorno Informático de Confianza (EIC);
incluirían servidores del sistema, como los servidores de teléfono
y de ventanas... Por ejemplo, al servidor de ventanas no se le
concedería la capacidad de acceso a la pila de operaciones del
teléfono, y al servidor de teléfono no se le concedería la capacidad
del acceso directo a los eventos del teclado. Se recomienda
encarecidamente dar el menor número posible de capacidades a un
componente de programación para limitar el daño potencial provocado
por cualquier uso indebido de estos privilegios.
La BIC garantiza la integridad de todo el
sistema, dado que cada elemento del EIC garantiza la integridad de
un servicio. El EIC no puede existir sin una BIC, pero la BIC puede
existir por sí sola para garantizar un "cajón de arena" seguro
para cada proceso.
\vskip1.000000\baselineskip
Se puede interpretar que una capacidad es un
testigo de acceso que se corresponde a un permiso para emprender
una acción sensible. El propósito del modelo de capacidades es
controlar el acceso a los recursos sensibles del sistema. El
recurso más importante que requiere control de acceso es el propio
ejecutable del núcleo, y se requiere una capacidad de sistema
(véase la sección 2.1) en un cliente para acceder a cierta
funcionalidad mediante la API del núcleo. Todos los demás recursos
residen en servidores del lado del usuario a los que se accede por
medio de una CEP [Comunicación entre procesos]. Se definiría un
conjunto pequeño de capacidades básicas para vigilar ciertas
acciones específicas del cliente en los servidores. Por ejemplo, la
posición de una capacidad de hacer llamadas permitiría que un
cliente usara el servidor telefónico. Sería responsabilidad del
correspondiente servidor vigilar el acceso del cliente a los
recursos representados por la capacidad. Las capacidades también
estarían asociadas con cada biblioteca (DLL) y cada programa (EXE) y
el cargador las combinaría en el momento de la ejecución para
producir capacidades netas de proceso que serían mantenidas por el
núcleo. Para los dispositivos abiertos, a los programas de terceros
se les asignarían capacidades ya sea durante la instalación de los
programas en base al certificado usado para firmar sus paquetes de
instalación, o con posterioridad a la instalación de los programas
por el usuario, tal como se detalla en la sección 3. La vigilancia
de las capacidades se gestionaría entre el cargador, el núcleo y los
servidores afectados, pero contaría con la mediación del núcleo por
medio del mecanismo de la CEP.
Las características clave del modelo de las
capacidades de los procesos son:
- \bullet
- Se centra fundamentalmente en torno a servidores del sistema y en interacciones CEP cliente-servidor entre estas entidades.
- \bullet
- Las capacidades están asociadas con procesos y no hilos. Los hilos del mismo proceso comparten el mismo espacio de direcciones y los mismos permisos de acceso a la memoria. Esto significa que cualesquiera datos que esté usando un hilo pueden ser leídos y modificados por todos los demás hilos en el mismo proceso.
- \bullet
- La vigilancia de las capacidades es gestionada por el cargador y el núcleo y mediante la vigilancia de las capacidades en los servidores objetivo. En esta está implicado el mecanismo CEP del núcleo.
- \bullet
- Cuando el código no se está ejecutando, las capacidades se almacenan dentro de las bibliotecas y los programas. Las capacidades almacenadas en las bibliotecas y los programas no son modificables, dado que se almacenarían durante la instalación en una ubicación que es accesible únicamente por la base informática de confianza.
- \bullet
- No todos los servidores tendrían que manipular las capacidades del cliente. Los servidores serían responsables de interpretar las capacidades a su antojo.
- \bullet
- La única criptografía implicada en este modelo sería en la etapa de instalación de los programas, en la que los certificados serían verificados con un certificado raíz adecuado (refiérase a la subsección 3).
\vskip1.000000\baselineskip
- Capacidad "raíz". Usada únicamente por la base informática de confianza. Da pleno acceso a todos los ficheros del dispositivo.
\vskip1.000000\baselineskip
- Algunos servidores del sistema requieren algún acceso específico a la base informática de confianza.
Debido a la implementación orientada a objetos
del SO Symbian, el tipo de recursos requeridos por un servidor de
sistema es exclusivo al mismo la mayor parte del tiempo. Por lo
tanto, a un servidor del sistema se le concedería alguna capacidad
de sistema que sería ortogonal a las requeridas por otro. Por
ejemplo, al servidor de ventanas se le concedería acceso a eventos
del teclado y de la pluma emitidos por el núcleo, pero no tendría
permiso para acceder a la pila de operaciones del teléfono. De la
misma manera, al servidor telefónico se le concedería acceso a la
pila de operaciones del teléfono, pero no tendría permiso para
recoger eventos del núcleo.
Como ejemplos, podemos nombrar:
- EscribirDatosSistema
- Permite la modificación de los datos del sistema de configuración.
- ComDS
- Concede acceso a todos controladores de los dispositivos de comunicaciones y de tarjetas de Ethernet.
- AdminDisco
- Puede llevar a cabo tareas administrativas en el disco (volver a darle formato, cambiar el nombre de una unidad...).
\vskip1.000000\baselineskip
El proceso de generar capacidades puede ser
difícil. Hay que identificar en primer lugar los accesos que
requieren vigilancia y, a continuación, establecer correspondencias
entre esos requisitos y algo que sea significativo para un usuario.
Además, más capacidades significan mayor complejidad, y suele
reconocerse que la complejidad es el principal enemigo de la
seguridad. Por lo tanto, una solución basada en capacidades debería
procurar minimizar el número global desplegado. Las siguientes
capacidades se corresponden muy ampliamente con las principales
amenazas que son un acceso no autorizado a los servicios del sistema
(por ejemplo, a la pila de operaciones del teléfono) y al
mantenimiento de la confidencialidad/integridad de los datos del
usuario.
- "Efectuar llamadas telefónicas".
- "Enviar mensajes cortos de texto".
\vskip1.000000\baselineskip
- "Añadir un contacto".
- "Borrar una cita".
\vskip1.000000\baselineskip
- "Acceder a los datos de los contactos".
- "Acceder a los datos de la agenda".
\vskip1.000000\baselineskip
- "Enviar mensajes por Bluetooth".
- "Establecer una conexión IR".
- "Establecer una conexión USB".
\vskip1.000000\baselineskip
- "Ubicar el dispositivo en un mapa".
- "Presentar los restaurantes y el cine más cercanos".
\vskip1.000000\baselineskip
Es necesario establecer una diferencia entre
RedTelefonica y RedLocal, porque es posible transmitir información
en una red sin gastar dinero (por ejemplo, una picorred Bluetooth).
Este tipo de acceso puede ser un habilitador muy útil para
programas de terceros, pero, pese a ello, representa una manera
local de filtrar información sensible por medio de un caballo
troyano, de modo que debe ser protegido con una capacidad, aunque
sea RedLocal. Si el usuario la concede, RedTelefonica autorizaría a
troyanos que quisiesen usar la red telefónica como vía de salida;
potencialmente, eso es mucho más dañino; de ahí la tajante
advertencia de su descripción. Las capacidades de raíz y de sistema
son obligatorias; si no se le conceden a un ejecutable, el usuario
el dispositivo no puede decidir hacerlo. Su estricto control
garantiza la integridad de la plataforma informática de confianza.
Sin embargo, la forma en que los servidores verifican las
capacidades expuestas al usuario o en que las interpretan puede
ser completamente flexible e incluso discrecional para el
usuario.
La Figura 1 muestra procesos del momento de
ejecución, anillos de capacidades del sistema y agrupaciones de
capacidades visibles para el usuario.
\vskip1.000000\baselineskip
La asociación de una capacidad para el momento
de ejecución con un proceso implica al cargador. En esencia,
transforma las configuraciones de capacidades estáticas asociadas
con las bibliotecas y los programas individuales en una capacidad
de tiempo de ejecución que el núcleo mantiene y que puede ser
consultada por medio de una biblioteca API de usuario en el núcleo.
El cargador aplica las siguientes reglas:
- Regla 1. Cuando se crea un proceso desde un programa, el cargador asigna el mismo conjunto de capacidades que las de su programa.
- Regla 2. Cuando se carga una biblioteca dentro de un ejecutable, el conjunto de capacidades de la biblioteca tiene que ser mayor o igual que el conjunto de capacidades del propio ejecutable. Si no es así, la biblioteca no se carga en el ejecutable.
- Regla 3. Un ejecutable puede cargar una biblioteca con capacidades superiores, pero no obtiene capacidades por hacerlo.
- Regla 4. El cargador se niega a cargar ningún ejecutable que no esté en la parte cerrada de datos del sistema de ficheros reservada a la BIC.
\vskip1.000000\baselineskip
Debe hacerse notar que:
- \bullet
- Las capacidades de las bibliotecas se comprueban únicamente en el momento de la carga. Más allá de eso, todo el código contenido en las bibliotecas se ejecuta libremente y se le asigna el mismo conjunto de capacidades que el programa en el que se ejecuta cuando se inician algunas llamadas de CEP.
- \bullet
- Para las imágenes ROM que tienen habilitada la ejecución, la herramienta de la compilación de ROM resuelve todos los símbolos realizando la misma labor que el cargador en el momento de la ejecución. Por lo tanto, la herramienta de la compilación de ROM debe imponer las mismas reglas que el cargador cuando compila una imagen ROM.
\vskip1.000000\baselineskip
Estas reglas
- \bullet
- evitan que se carguen programas malignos en procesos sensibles; por ejemplo, un módulo de ampliación en un servidor del sistema
- \bullet
- fomentan la encapsulación de código sensible dentro de procesos sin derivación posible.
\vskip1.000000\baselineskip
Los ejemplos que siguen muestran cómo se aplican
las reglas en los casos de bibliotecas cargadas de forma estática y
dinámica, respectivamente.
\vskip1.000000\baselineskip
El programa P.EXE está enlazado con la
biblioteca L1.DLL. La biblioteca L1.DLL está enlazada con la
biblioteca L0.DLL.
\vskip1.000000\baselineskip
Caso 1:
- P.EXE tiene la Cap1 y la Cap2
- L1.DLL tiene la Cap1, la Cap2 y la Cap3
- L0.DLL tiene la Cap1 y la Cap2
- No puede crearse el proceso P. El cargador no lo aprueba porque L1.DLL no puede cargar L0.DLL, dado que L0.DLL no tiene un conjunto de capacidades mayor o igual que L1.DLL, aplicando la Regla 2.
\vskip1.000000\baselineskip
Caso 2:
- P.EXE tiene la Cap1 y la Cap2
- L1.DLL tiene la Cap1, la Cap2 y la Cap3
- L0.DLL tiene la Cap1, la Cap2, la Cap3 y la Cap4
- Se crea el proceso P. El cargador lo consigue, y al nuevo proceso se le asignan la Cap1 y la Cap2. La capacidad del nuevo proceso se determina aplicando la Regla 1; L1.DLL no puede adquirir la capacidad Cap4 que tiene L0.DLL, y, tal como define la Regla 3, P1.EXE no puede adquirir la capacidad Cap3 que tiene L1.DLL.
\vskip1.000000\baselineskip
El programa P.EXE carga dinámicamente la
biblioteca L1.DLL. Después, la biblioteca L1.DLL carga dinámicamente
la biblioteca L0.DLL.
\vskip1.000000\baselineskip
Caso 1:
- P.EXE tiene la Cap1 y la Cap2
- L1.DLL tiene la Cap1, la Cap2 y la Cap3
- L0.DLL tiene la Cap1 y la Cap2
- Se crea con éxito el proceso P y se le asignan la Cap1 y la Cap2. Cuando P solicita al cargador que cargue L1.DLL y L0.DLL, el cargador lo logra, porque P puede cargar L1.DLL y L0.DLL. La Regla 2 sí se aplica aquí, al ser el ejecutable de la carga el proceso P y no la biblioteca L1.DLL: la solicitud de carga CEP que procesa el cargador es enviada por el proceso P. El hecho de que llamada se produzca dentro de L1.DLL es aquí irrelevante. Como antes, se aplican las Reglas 1 y 3, y P no adquiere la Cap3 por el hecho de cargar L1.DLL.
\vskip1.000000\baselineskip
Caso 2:
- P.EXE tiene la Cap1 y la Cap2
- L1.DLL tiene la Cap1, la Cap2 y la Cap3
- L0.DLL tiene la Cap1, la Cap2 y la Cap4
- Se crea con éxito el proceso P y se le asignan la Cap1 y la Cap2. Cuando P solicita al cargador que cargue L1.DLL y L0.DLL, el cargador lo logra, porque P puede cargar L1.DLL y L0.DLL. Nuevamente, sí se aplica la Regla 2, al ser P el ejecutable de la carga, no L1.DLL, mientras que la Regla 3 garantiza que P no adquiere ni la Cap3 ni la Cap4.
\vskip1.000000\baselineskip
Para evitar la suplantación de servidores
críticos, se ha creado una capacidad, ServProt, específica del
sistema. Cuando se concede esta capacidad a un proceso, puede
registrarse como "Servidor protegido" ante el núcleo con un
formato específico de nombre, que empiece, por ejemplo, con
"!". El núcleo rechazará cualquier nombre de registro que
empiece con "!" si el proceso llamante no tiene ServProt. Sin
embargo, debe confiarse en que ninguno de los servidores de la
comunidad de servidores protegidos suplante a otro servidor de esta
comunidad. Se cree que este sencillo mecanismo logrará un nivel de
seguridad suficientemente bueno, con la condición de que ServProt
sea concedido únicamente a un conjunto pequeño de servicios. Si se
comprobase que dos dominios de servidores no son suficientes, nada
evitaría en el futuro añadir un nuevo dominio vinculado a una nueva
capacidad y a un nuevo formato de
nombre.
nombre.
\vskip1.000000\baselineskip
Estando habilitado el modelo de capacidad de
procesos mediados por el núcleo, las decisiones de las normativas
específicas se delegan en los propios servidores. Cada servidor
tendría que vigilarse a sí mismo y lo haría de manera diferente:
algunos serían más paranoicos que otros y pueden decidir comprobar
la configuración de las capacidades del cliente por acceso, o
pueden negarse en redondo a permitir el acceso sin que esté activado
el imprescindible bit de capacidad. Delegar las normativas de
seguridad a una decisión local en los servidores representa una
buena abstracción, dado que ello significa que una norma de
seguridad puede ser interpretada de manera local según se desee.
Además, la interpretación de la presencia del bit de capacidad
podría hacerse de una de cuatro maneras; concretamente, permiso
global, permiso de proceso, permiso de sesión y permiso de acceso
selectivo.
Desde el punto de vista de un usuario, cada vez
viene resultando más difícil identificar la duración de un proceso
o de una sesión. Por ejemplo, en la mayoría de los teléfonos
inteligentes, cuando el usuario accede a su agenda, no sabe si se
ha creado un nuevo proceso de agenda o si se está reutilizando uno
existente. De la misma manera, cuando efectúa una llamada
telefónica, no tiene ni idea de si la aplicación telefónica ha
creado una nueva sesión con el servidor telefónico o si reutiliza la
anterior. Los inventores creen que los usuarios pueden entender
solamente dos maneras de conceder capacidades: el permiso global y
el permiso de acceso selectivo.
En línea con esto, habría dos alternativas
posibles para la interpretación de la presencia de un bit de
capacidad expuesta al usuario en los servidores conscientes de la
capacidad:
- Permiso global: La capacidad se concede de una vez para siempre. Si la capacidad no está presente cuando se crea el proceso, la petición falla. Se vigilará de esta manera todo acceso que requiera la capacidad del sistema.
- Permiso de acción única: La capacidad se comprueba con cada llamada API sensible que se hace ala servidor. Esto significa que en cada acceso a la llamada a la API sensible, un cuadro de diálogo creado por el servidor pregunta al usuario si desea conceder esa capacidad. Sin embargo, la capacidad solo está vigente durante el transcurso de la correspondiente llamada de la API sensible.
La percepción que el usuario tiene de este tipo
de permiso no debe confundirse con cuándo comprobará un servidor
una capacidad requerida. Por ejemplo, a una aplicación puede
concedérsele RedTelefonica como permiso global, pero el servidor
telefónico comprobará la capacidad RedTelefonica en cada llamada
relevante realizada por esta aplicación, dado que, en cualquier
caso, el núcleo enviará el conjunto de capacidades del cliente en
cada llamada CEP. Sin embargo, como al usuario no se le pedirá que
adopte una decisión (conceder o no conceder RedTelefonica para esta
llamada), esta comprobación de seguridad es transparente para el
usuario.
\vskip1.000000\baselineskip
Las ventajas de este diseño son:
- -
- Tener en cuenta inmediatamente cualquier modificación del conjunto de permiso global de proceso.
- -
- Mantener el momento de la comprobación tan cerca del momento de uso como sea posible para evitar cualquier fallo TOCTOU (momento de la comprobación, momento del uso).
- -
- Evitar que el servidor almacene información relativa a capacidades para un proceso.
\vskip1.000000\baselineskip
El instalador de programas tiene que soportar el
modelo de capacidades de los procesos para determinar qué
capacidades pueden concederse realmente a un trozo de código que
haya de instalarse después del momento de la fabricación. Hay
muchas maneras de hacerlo, y la presente invención no impone
ninguna. En las siguientes secciones, exploramos diferentes
escenarios basados en la existencia de una infraestructura de clave
pública para ilustrar cómo alguien puede escoger hacer y qué
asuntos deberían considerarse.
El instalador de programas puede soportar tres
escenarios principales:
- \bullet
- La [des]instalación/revocación de aplicaciones de confianza (firmadas)
- \bullet
- La [des]instalación/revocación de aplicaciones que no son de confianza (firmadas)
- \bullet
- La [des]instalación/revocación de aplicaciones no firmadas
\vskip1.000000\baselineskip
Aquí, la distinción de confianza es una función
de la presencia de un certificado raíz en la cadena de firmas que
se corresponde a uno de los certificados raíz almacenados en el
dispositivo. En las subsecciones siguientes examinamos estas
alternativas desde la perspectiva de un usuario.
\vskip1.000000\baselineskip
En este caso, las aplicaciones cliente
autorizadas serían revisadas por una autoridad reconocida. Entonces
los programas estarían firmados, junto con una lista de las
capacidades que requerían, en paquetes de instalación. Las
capacidades podrían estar firmadas para capacidades hipotéticas
expuestas al sistema y al usuario. La cadena de certificados
incluidos con los programas está terminada en una AC raíz conocida
por el instalador del programa, en cuyo caso el usuario puede
instalar el programa con seguridad por el conocimiento de que la AC
raíz responde del mismo. En el momento de la instalación, el
programa se instalaría en el dispositivo sin ninguna respuesta del
usuario, aunque en algunos dispositivos sería posible examinar los
detalles del certificado de la firma. Obsérvese que cualquier
programa de terceros que buscase la capacidad de sistema sería
obligado a seguir esta ruta.
\vskip1.000000\baselineskip
En este caso, el programa de terceros no
satisfaría una verificación contra ninguno de los certificados raíz.
El programa está firmado por una AC raíz desconocida, en cuyo caso
al usuario se le presentaría una advertencia, pero podría
simplemente seguir adelante e instalar el programa de todos modos
tras ver el contenido del certificado. El instalador del programa
presentaría un diálogo de usuario en el momento de la instalación,
lo que ofrecería al usuario la opción de instalar la aplicación más
una lista de las capacidades que la aplicación deseara solicitar.
Las capacidades que pudieran ser concedidas siguiendo esta ruta
estarían en la gama de capacidades expuestas al usuario. En otras
palabras, no sería posible que los usuarios concediesen la capacidad
de sistema a programas firmados que no satisficieran la
verificación contra uno de los certificados raíz en el
dispositivo.
\vskip1.000000\baselineskip
Aquí el escenario sería similar a 3.2. Los
terceros tendrían que solicitar capacidades con su paquete de
instalación. Nuevamente, por medio de esta ruta únicamente estarían
disponibles las capacidades expuestas al usuario: no sería posible
que los usuarios concediesen la capacidad de sistema a programas no
firmados.
La Figura 2 ilustra un proceso posible de
instalación cuando se desea dejar que el usuario adopte decisiones
discrecionales en cuanto a la normativa a aplicar ya sea a una
aplicación no firmada o a una aplicación firmada cuyo certificado
raíz de firma no cuadra con ninguno de los certificados raíz del
dispositivo.
\vskip1.000000\baselineskip
En el caso de que se desee dejar que el usuario
adopte decisiones discrecionales en cuanto a normas de seguridad
después del momento de la instalación, se requeriría un diálogo de
un panel de control del instalador de programas para proporcionar
acceso a las configuraciones de capacidades otorgadas en ese momento
a diversas aplicaciones de terceros instaladas. El usuario podría
ver y, opcionalmente, conceder o revocar las capacidades expuestas
al usuario para el código de terceros instalado. Además, (en caso
necesario) sería posible ver un certificado de firmas
correspondiente del código. La siguiente tabla ilustra el aspecto
que podría tener el diálogo del panel de control.
Claims (11)
1. Un dispositivo inalámbrico móvil seguro para
un solo usuario en el que está instalado código ejecutable nativo,
incluyendo el dispositivo:
- una pluralidad de recursos protegidos;
- una pluralidad de servidores; y
- una base informática de confianza que tiene un núcleo; en el que
- el acceso a dicho recurso protegido es proporcionado por un correspondiente servidor;
- al código ejecutable nativo se le asigna un conjunto de capacidades que definen un/los recurso(s) protegido(s) en el dispositivo a los que puede acceder el código ejecutable nativo;
- dichos servidores correspondientes están dispuestos para que vigilen el acceso a dichos recursos protegidos en base a las capacidades asignadas al código ejecutable nativo;
- las capacidades están almacenadas en una ubicación que es accesible únicamente a la base informática de confianza; y
- el núcleo está dispuesto, para cada comunicación cliente-servidor, para pasar las capacidades del cliente a dicho servidor.
\vskip1.000000\baselineskip
2. El dispositivo de la Reivindicación 1 en el
que una capacidad autoriza el acceso a una API (o a una gama de
API), a un fichero específicos o a otro(s) recurso(s)
protegido(s) del sistema operativo.
3. El dispositivo de la Reivindicación 1 en el
que, antes del momento de la instalación, el código ejecutable ya
contiene las capacidades que se le han concedido.
4. El dispositivo de la Reivindicación 3 en el
que el código ejecutable está almacenado de forma permanente en una
ubicación de la memoria del dispositivo que es accesible únicamente
a la base informática de confianza para mantener la integridad de
las capacidades asignadas al código ejecutable.
5. El dispositivo de la Reivindicación 4 en el
que un cargador se niega a cargar ejecutables no almacenados de
forma permanente en una ubicación de la memoria del dispositivo que
sea accesible únicamente a la base informática de confianza, para
mantener la integridad del sistema.
6. El dispositivo de la Reivindicación 1 en el
que hay capacidades del sistema que son obligatorias y controlan el
acceso al sistema de ficheros y al sistema de datos del núcleo del
sistema.
7. El dispositivo de la Reivindicación 1 en el
que, para que una biblioteca sea cargada en un ejecutable, el
cargador verifica que a la biblioteca se le haya asignado un
superconjunto de las capacidades concedidas al ejecutable que hace
la petición.
8. El dispositivo de la Reivindicación 1 en el
que se selecciona una capacidad entre una lista de capacidades que
comprenden capacidades raíz, capacidades del sistema y capacidades
expuestas a los usuarios.
9. El dispositivo de la Reivindicación 8 en el
que las capacidades expuestas a los usuarios permiten las siguientes
funciones:
- (a)
- Poder gastar dinero de los abonados usando la red telefónica
- (b)
- Poder leer la información privada de los usuarios
- (c)
- Poder modificar la información privada de los usuarios
- (d)
- Poder enviar información a una red local sin gastar dinero de los abonados
- (e)
- Poder conocer la ubicación del dispositivo.
\vskip1.000000\baselineskip
10. El dispositivo de la Reivindicación 1 en el
que el servidor puede ser el núcleo.
\newpage
11. Un procedimiento para habilitar que un
código ejecutable nativo, instalado en un dispositivo inalámbrico
móvil para un único usuario, acceda a recursos protegidos en el
dispositivo, en el que:
- el dispositivo incluye: una pluralidad de dichos recursos protegidos; una pluralidad de servidores; y una base informática de confianza que tiene un núcleo;
- el acceso a cada uno de dichos recursos protegidos es proporcionado por un correspondiente servidor;
- al código ejecutable nativo se le asigna un conjunto de capacidades que definen un/los recurso(s) protegido(s) en el dispositivo a los que puede acceder el código ejecutable nativo; y
- las capacidades se almacenan en una ubicación que es accesible únicamente a la base informática de confianza; comprendiendo el procedimiento las etapas de:
- (a)
- vigilar el acceso a dichos recursos protegidos en dichos servidores correspondientes en base a las capacidades asignadas al código ejecutable nativo; y
- (b)
- para cada comunicación cliente-servidor, el núcleo pasa las capacidades del cliente a dicho servidor.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB0212314 | 2002-05-28 | ||
| GBGB0212314.9A GB0212314D0 (en) | 2002-05-28 | 2002-05-28 | Secure mobile wireless device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| ES2343623T3 true ES2343623T3 (es) | 2010-08-05 |
| ES2343623B5 ES2343623B5 (es) | 2020-10-01 |
Family
ID=9937596
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES03727702T Expired - Lifetime ES2343623B5 (es) | 2002-05-28 | 2003-05-28 | Dispositivo inalambrico movil seguro. |
Country Status (9)
| Country | Link |
|---|---|
| US (1) | US7882352B2 (es) |
| EP (2) | EP2187285A1 (es) |
| JP (1) | JP4535871B2 (es) |
| AT (1) | ATE470197T1 (es) |
| AU (1) | AU2003234032A1 (es) |
| DE (1) | DE60332831C5 (es) |
| ES (1) | ES2343623B5 (es) |
| GB (2) | GB0212314D0 (es) |
| WO (1) | WO2003100581A2 (es) |
Families Citing this family (49)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB0212318D0 (en) * | 2002-05-28 | 2002-07-10 | Symbian Ltd | Tamper evident removable media storing executable code |
| US7434256B2 (en) * | 2003-12-18 | 2008-10-07 | Intel Corporation | Security management for wireless clients |
| GB2415065B (en) * | 2004-06-09 | 2009-01-21 | Symbian Software Ltd | A computing device having a multiple process architecture for running plug-in code modules |
| FI20045271A7 (fi) * | 2004-07-12 | 2006-01-13 | Ej Suunnittelu Oy | Mekanismeja tietokoneohjelman suorittamiseksi |
| US20060041940A1 (en) * | 2004-08-21 | 2006-02-23 | Ko-Cheng Fang | Computer data protecting method |
| US7630381B1 (en) | 2004-09-27 | 2009-12-08 | Radix Holdings, Llc | Distributed patch distribution |
| US20060075220A1 (en) * | 2004-10-01 | 2006-04-06 | Baugher Mark J | System and method to authorize a device to receive a content work based on device capabilities and content-work permissions |
| GB2421323B (en) * | 2004-12-15 | 2009-07-22 | Symbian Software Ltd | A method of maintaining applications in a computing device |
| GB0504326D0 (en) | 2005-03-02 | 2005-04-06 | Symbian Software Ltd | Dual mode operating system for a computing device |
| US8417640B2 (en) * | 2005-10-31 | 2013-04-09 | Research In Motion Limited | Secure license key method and system |
| US8713671B2 (en) * | 2005-11-02 | 2014-04-29 | Nokia Corporation | System and method for providing an extended platform for an operating system |
| US8352916B2 (en) * | 2006-02-17 | 2013-01-08 | International Business Machines Corporation | Facilitating the automated testing of daily builds of software |
| WO2007110093A1 (en) | 2006-03-27 | 2007-10-04 | Telecom Italia S.P.A. | A method and system for identifying malicious messages in mobile communication networks, related network and computer program product therefor |
| KR20070099200A (ko) * | 2006-04-03 | 2007-10-09 | 삼성전자주식회사 | 휴대형 무선 기기의 응용 모듈 접근 제한 장치 및 이를이용한 접근 제한 방법 |
| GB2439103B (en) * | 2006-06-15 | 2011-01-12 | Symbian Software Ltd | Implementing a process-based protection system in a user-based protection environment in a computing device |
| DE102006029756A1 (de) * | 2006-06-27 | 2008-01-03 | Deutsche Telekom Ag | Verfahren zum Delegieren von Privilegien an eine niedriger-priviligierte Instanz durch eine höher-priviligierte Instanz |
| US8087065B2 (en) * | 2006-11-17 | 2011-12-27 | Mcafee, Inc. | Method and system for implementing mandatory file access control in native discretionary access control environments |
| KR100915803B1 (ko) * | 2006-12-05 | 2009-09-07 | 한국전자통신연구원 | 임베디드 리눅스 커널의 보안성 강화를 위한 응용 프로그램구동 방법 및 시스템 |
| WO2009123880A1 (en) | 2008-03-31 | 2009-10-08 | Echostar Technologies Llc | Systems, methods and apparatus for transmitting data over a voice channel of a wireless telephone network |
| US8867571B2 (en) | 2008-03-31 | 2014-10-21 | Echostar Technologies L.L.C. | Systems, methods and apparatus for transmitting data over a voice channel of a wireless telephone network |
| US8589541B2 (en) | 2009-01-28 | 2013-11-19 | Headwater Partners I Llc | Device-assisted services for protecting network capacity |
| US12166596B2 (en) | 2009-01-28 | 2024-12-10 | Disney Enterprises, Inc. | Device-assisted services for protecting network capacity |
| US12389218B2 (en) | 2009-01-28 | 2025-08-12 | Headwater Research Llc | Service selection set publishing to device agent with on-device service selection |
| US11985155B2 (en) | 2009-01-28 | 2024-05-14 | Headwater Research Llc | Communications device with secure data path processing agents |
| US12543031B2 (en) * | 2009-01-28 | 2026-02-03 | Headwater Research Llc | Adapting network policies based on device service processor configuration |
| US9565707B2 (en) | 2009-01-28 | 2017-02-07 | Headwater Partners I Llc | Wireless end-user device with wireless data attribution to multiple personas |
| US10326800B2 (en) | 2009-01-28 | 2019-06-18 | Headwater Research Llc | Wireless network service interfaces |
| US12452377B2 (en) | 2009-01-28 | 2025-10-21 | Headwater Research Llc | Service design center for device assisted services |
| US8505084B2 (en) * | 2009-04-06 | 2013-08-06 | Microsoft Corporation | Data access programming model for occasionally connected applications |
| US9197417B2 (en) * | 2009-04-24 | 2015-11-24 | Microsoft Technology Licensing, Llc | Hosted application sandbox model |
| US9264448B2 (en) * | 2010-01-20 | 2016-02-16 | Blackberry Limited | Apparatus, and an associated method, for facilitating secure operations of a wireless device |
| US8819447B2 (en) * | 2010-03-10 | 2014-08-26 | Sprint Communications Company L.P. | Secure storage of protected data in a wireless communication device |
| GB2495058B (en) | 2010-07-26 | 2014-03-05 | Seven Networks Inc | Context aware traffic management for resource conservation in a wireless network |
| US9118686B2 (en) * | 2011-09-06 | 2015-08-25 | Microsoft Technology Licensing, Llc | Per process networking capabilities |
| US9773102B2 (en) | 2011-09-09 | 2017-09-26 | Microsoft Technology Licensing, Llc | Selective file access for applications |
| US8990561B2 (en) | 2011-09-09 | 2015-03-24 | Microsoft Technology Licensing, Llc | Pervasive package identifiers |
| US9800688B2 (en) | 2011-09-12 | 2017-10-24 | Microsoft Technology Licensing, Llc | Platform-enabled proximity service |
| US10356204B2 (en) | 2012-12-13 | 2019-07-16 | Microsoft Technology Licensing, Llc | Application based hardware identifiers |
| US9858247B2 (en) | 2013-05-20 | 2018-01-02 | Microsoft Technology Licensing, Llc | Runtime resolution of content references |
| US9280679B2 (en) * | 2013-12-31 | 2016-03-08 | Google Inc. | Tiered application permissions |
| US9256755B2 (en) | 2013-12-31 | 2016-02-09 | Google Inc. | Notification of application permissions |
| US9917841B1 (en) | 2015-07-30 | 2018-03-13 | Sprint Communications Company L.P. | Branding and improper operation detection on a user equipment |
| WO2018068868A1 (en) * | 2016-10-14 | 2018-04-19 | Huawei Technologies Co., Ltd. | Apparatus and method for tracking access permissions over multiple execution environments |
| US10742629B2 (en) * | 2017-02-28 | 2020-08-11 | International Business Machines Corporation | Efficient cloud resource protection |
| US10325116B2 (en) * | 2017-06-30 | 2019-06-18 | Vmware, Inc. | Dynamic privilege management in a computer system |
| US11675902B2 (en) | 2018-12-05 | 2023-06-13 | Vmware, Inc. | Security detection system with privilege management |
| US11733668B2 (en) | 2020-07-09 | 2023-08-22 | UiPath, Inc. | Robot access control and governance for robotic process automation |
| JP7659947B2 (ja) * | 2020-07-09 | 2025-04-10 | ユーアイパス,インコーポレイテッド | Rpaのためのロボットアクセス制御及びガバナンス |
| US12019421B2 (en) | 2020-07-09 | 2024-06-25 | UiPath, Inc. | Robot access control and governance for robotic process automation |
Family Cites Families (48)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2590739B2 (ja) * | 1994-07-13 | 1997-03-12 | 日本電気株式会社 | 構内用電子交換機の移動局認証方式 |
| US5901312A (en) * | 1994-12-13 | 1999-05-04 | Microsoft Corporation | Providing application programs with unmediated access to a contested hardware resource |
| FR2748834B1 (fr) * | 1996-05-17 | 1999-02-12 | Gemplus Card Int | Systeme de communication permettant une gestion securisee et independante d'une pluralite d'applications par chaque carte utilisateur, carte utilisateur et procede de gestion correspondants |
| JP3474706B2 (ja) | 1996-06-10 | 2003-12-08 | 富士写真フイルム株式会社 | 磁気ディスク及び磁気記録再生方法 |
| TW313642B (en) * | 1996-06-11 | 1997-08-21 | Ibm | A uniform mechanism for using signed content |
| US5841869A (en) * | 1996-08-23 | 1998-11-24 | Cheyenne Property Trust | Method and apparatus for trusted processing |
| US6317742B1 (en) * | 1997-01-09 | 2001-11-13 | Sun Microsystems, Inc. | Method and apparatus for controlling software access to system resources |
| EP0953172B1 (en) * | 1997-01-17 | 2001-08-29 | International Business Machines Corporation | Protecting resources in a distributed computer system |
| JP3300262B2 (ja) * | 1997-09-22 | 2002-07-08 | 富士通株式会社 | 移動通信システム及び移動端末 |
| US6066181A (en) * | 1997-12-08 | 2000-05-23 | Analysis & Technology, Inc. | Java native interface code generator |
| US6219787B1 (en) * | 1997-12-22 | 2001-04-17 | Texas Instruments Incorporated | Method and apparatus for extending security model to native code |
| US6026402A (en) * | 1998-01-07 | 2000-02-15 | Hewlett-Packard Company | Process restriction within file system hierarchies |
| US6505300B2 (en) * | 1998-06-12 | 2003-01-07 | Microsoft Corporation | Method and system for secure running of untrusted content |
| US6256393B1 (en) * | 1998-06-23 | 2001-07-03 | General Instrument Corporation | Authorization and access control of software object residing in set-top terminals |
| US6356752B1 (en) * | 1998-07-31 | 2002-03-12 | Avaya Technology Corp. | Wireless telephone as a transaction device |
| AU6042899A (en) * | 1998-09-18 | 2000-04-10 | Qualcomm Incorporated | Method and apparatus for authenticating embedded software in a remote unit over a communications channel |
| US6609199B1 (en) * | 1998-10-26 | 2003-08-19 | Microsoft Corporation | Method and apparatus for authenticating an open system application to a portable IC device |
| AU776027C (en) * | 1999-03-08 | 2005-04-07 | Spyrus, Inc. | Method and system for enforcing access to a computing resource using a licensing attribute certificate |
| US6775779B1 (en) * | 1999-04-06 | 2004-08-10 | Microsoft Corporation | Hierarchical trusted code for content protection in computers |
| US6651171B1 (en) * | 1999-04-06 | 2003-11-18 | Microsoft Corporation | Secure execution of program code |
| US6430599B1 (en) | 1999-06-15 | 2002-08-06 | Sun Microsystems, Inc. | Just-in-time services for small footprint devices |
| US6185666B1 (en) * | 1999-09-11 | 2001-02-06 | Powerquest Corporation | Merging computer partitions |
| GB9922665D0 (en) * | 1999-09-25 | 1999-11-24 | Hewlett Packard Co | A method of enforcing trusted functionality in a full function platform |
| AU2424401A (en) | 1999-11-03 | 2001-05-14 | Motorola, Inc. | A method for validating an application for use in a mobile communication device |
| WO2001065368A2 (en) * | 2000-03-01 | 2001-09-07 | Tashenberg Bradley A | A distributed operating network and method for using and implementing same |
| US7103598B1 (en) * | 2000-03-03 | 2006-09-05 | Micron Technology, Inc | Software distribution method and apparatus |
| EP1132796A1 (en) * | 2000-03-08 | 2001-09-12 | Universite Catholique De Louvain | Mobile code and method for resource management for mobile code |
| US6721804B1 (en) * | 2000-04-07 | 2004-04-13 | Danger, Inc. | Portal system for converting requested data into a bytecode format based on portal device's graphical capabilities |
| US6917976B1 (en) * | 2000-05-09 | 2005-07-12 | Sun Microsystems, Inc. | Message-based leasing of resources in a distributed computing environment |
| WO2002005517A2 (en) * | 2000-07-10 | 2002-01-17 | Viven Ltd. | Broadcast content over cellular telephones |
| GB0020416D0 (en) * | 2000-08-18 | 2000-10-04 | Hewlett Packard Co | Trusted system |
| IL140267A0 (en) | 2000-12-13 | 2003-09-17 | Milsys Ltd | Dual processor trusted computing environment |
| AU2002232105A1 (en) * | 2001-02-22 | 2002-09-04 | Celltick Technologies Ltd | Internet session initiation on personal cellular telecommunications devices, and customization protocol therefor |
| US7028305B2 (en) * | 2001-05-16 | 2006-04-11 | Softricity, Inc. | Operating system abstraction and protection layer |
| US7099663B2 (en) * | 2001-05-31 | 2006-08-29 | Qualcomm Inc. | Safe application distribution and execution in a wireless environment |
| US7143443B2 (en) * | 2001-10-01 | 2006-11-28 | Ntt Docomo, Inc. | Secure sharing of personal devices among different users |
| GB2380901B (en) | 2001-10-10 | 2005-09-14 | Vodafone Plc | Mobile telecommunications apparatus and methods |
| AU2002365257A1 (en) * | 2001-10-26 | 2003-07-24 | Zeosoft Corporation | Development, management of distributed clients and servers |
| US7024555B2 (en) * | 2001-11-01 | 2006-04-04 | Intel Corporation | Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment |
| US6993760B2 (en) | 2001-12-05 | 2006-01-31 | Microsoft Corporation | Installing software on a mobile computing device using the rollback and security features of a configuration manager |
| WO2003058877A1 (en) * | 2001-12-28 | 2003-07-17 | Woodstock Systems, Llc | Personal digital servertm (pdstm) |
| US7181603B2 (en) * | 2002-03-12 | 2007-02-20 | Intel Corporation | Method of secure function loading |
| US20030186722A1 (en) * | 2002-03-28 | 2003-10-02 | Comverse, Ltd. | Method and device for real time GSM user device profile interrogation and registration |
| US7188347B2 (en) * | 2002-05-24 | 2007-03-06 | Nokia Corporation | Method, apparatus and system for connecting system-level functionality of domestic OS of a mobile phone to any application operating system |
| GB0212318D0 (en) * | 2002-05-28 | 2002-07-10 | Symbian Ltd | Tamper evident removable media storing executable code |
| GB0212315D0 (en) * | 2002-05-28 | 2002-07-10 | Symbian Ltd | Secure mobile wireless device with protected file systems |
| GB0212308D0 (en) * | 2002-05-28 | 2002-07-10 | Symbian Ltd | Trusted user interface for a secure mobile wireless device |
| US20030236821A1 (en) * | 2002-06-05 | 2003-12-25 | Goun-Zong Jiau | Body wearable personal network server and system |
-
2002
- 2002-05-28 GB GBGB0212314.9A patent/GB0212314D0/en not_active Ceased
-
2003
- 2003-05-28 JP JP2004507969A patent/JP4535871B2/ja not_active Expired - Lifetime
- 2003-05-28 GB GB0312191A patent/GB2389747B/en not_active Expired - Lifetime
- 2003-05-28 AU AU2003234032A patent/AU2003234032A1/en not_active Abandoned
- 2003-05-28 ES ES03727702T patent/ES2343623B5/es not_active Expired - Lifetime
- 2003-05-28 WO PCT/GB2003/002311 patent/WO2003100581A2/en not_active Ceased
- 2003-05-28 US US10/515,740 patent/US7882352B2/en not_active Expired - Lifetime
- 2003-05-28 EP EP10001654A patent/EP2187285A1/en not_active Withdrawn
- 2003-05-28 EP EP03727702A patent/EP1512058B1/en not_active Expired - Lifetime
- 2003-05-28 AT AT03727702T patent/ATE470197T1/de not_active IP Right Cessation
- 2003-05-28 DE DE60332831.8T patent/DE60332831C5/de not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| WO2003100581A2 (en) | 2003-12-04 |
| AU2003234032A1 (en) | 2003-12-12 |
| DE60332831D1 (de) | 2010-07-15 |
| EP2187285A1 (en) | 2010-05-19 |
| JP2005528051A (ja) | 2005-09-15 |
| ATE470197T1 (de) | 2010-06-15 |
| US7882352B2 (en) | 2011-02-01 |
| US20060053426A1 (en) | 2006-03-09 |
| JP4535871B2 (ja) | 2010-09-01 |
| GB0312191D0 (en) | 2003-07-02 |
| GB2389747B (en) | 2005-02-09 |
| GB2389747A (en) | 2003-12-17 |
| ES2343623B5 (es) | 2020-10-01 |
| GB0212314D0 (en) | 2002-07-10 |
| EP1512058B1 (en) | 2010-06-02 |
| WO2003100581A3 (en) | 2004-06-03 |
| EP1512058A2 (en) | 2005-03-09 |
| DE60332831C5 (de) | 2017-05-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2343623B5 (es) | Dispositivo inalambrico movil seguro. | |
| US11356431B2 (en) | Operating system integrated domain management | |
| US11157616B2 (en) | Mobile application management | |
| US20080066187A1 (en) | Mobile Wireless Device with Protected File System | |
| KR102352505B1 (ko) | 비인가된 액세스들로부터 디바이스의 도메인들을 보호하는 방법들 및 장치 | |
| JP2005531830A (ja) | 安全な移動体無線デバイス用の信頼性のあるユーザインタフェース | |
| Liebergeld et al. | Android security, pitfalls and lessons learned | |
| Rohrer et al. | DR BACA: dynamic role based access control for Android | |
| ES2265105T3 (es) | Soportes extraibles a prueba de manipulacion que almacenan un codigo ejecutable. | |
| Michalska et al. | Security risks and their prevention capabilities in mobile application development | |
| El-Serngawy et al. | Securing business data on android smartphones | |
| US12462035B1 (en) | Dynamic kernel security module | |
| US20260134104A1 (en) | Dynamic kernel security module | |
| Löhr et al. | Trusted privacy domains–challenges for trusted computing in privacy-protecting information sharing | |
| Schwendemann | ERNW NEWSLETTER 55/SEPTEMBER 2016 | |
| Elusoji et al. | An Effective Measurement of Data Security in a Cloud Computing Environment | |
| Jones | An analysis of vulnerabilities presented by Android malware and iOS jailbreaks |