ES2343623T3 - Dispositivo inalambrico movil seguro. - Google Patents

Dispositivo inalambrico movil seguro. Download PDF

Info

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
Application number
ES03727702T
Other languages
English (en)
Other versions
ES2343623B5 (es
Inventor
Corinne Dive-Reclus
Jonathan Harris
Dennis May
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Inc
Original Assignee
Nokia Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=9937596&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2343623(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Nokia Inc filed Critical Nokia Inc
Publication of ES2343623T3 publication Critical patent/ES2343623T3/es
Application granted granted Critical
Publication of ES2343623B5 publication Critical patent/ES2343623B5/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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/53Monitoring 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2113Multi-level security, e.g. mandatory access control
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2115Third party
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2141Access 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.
Campo de la invención
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.
Descripción de la técnica anterior
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.
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.
Resumen de la presente invención
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
Raíz (obligatorias) "Pleno acceso a todos los ficheros: Puede modificar las capacidades asociadas con los ejecutables"
Usadas únicamente por la Base Informática de Confianza.
\vskip1.000000\baselineskip
Capacidades del sistema (obligatorias)
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
Capacidades expuestas al usuario (discrecionales)
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
Breve descripción de los dibujos
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.
Descripción detallada
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
1 Plataforma informática de confianza 1.1. Base informática de confianza
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
\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
1.2. Entorno informático de confianza
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
2 Capacidades de los procesos
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
2.1. Capacidades del sistema: Protección de la integridad del dispositivo Raíz. "Pleno acceso a todos los ficheros: Puede modificar las capacidades asociadas con los ejecutables"
Capacidad "raíz". Usada únicamente por la base informática de confianza. Da pleno acceso a todos los ficheros del dispositivo.
\vskip1.000000\baselineskip
Capacidades del sistema
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
2.2. Capacidades expuestas al usuario: Correspondencia de los permisos en la práctica
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.
RedTelefonica. "Puede acceder a los servicios de la red telefónica y, potencialmente, gastar dinero del usuario"
"Efectuar llamadas telefónicas".
"Enviar mensajes cortos de texto".
\vskip1.000000\baselineskip
EscribirDatosUsuario. "Puede leer y modificar la información privada de los usuarios"
"Añadir un contacto".
"Borrar una cita".
\vskip1.000000\baselineskip
LeerDatosUsuario. "Puede leer la información privada de los usuarios"
"Acceder a los datos de los contactos".
"Acceder a los datos de la agenda".
\vskip1.000000\baselineskip
RedLocal. "Puede acceder a la red local"
"Enviar mensajes por Bluetooth".
"Establecer una conexión IR".
"Establecer una conexión USB".
\vskip1.000000\baselineskip
Ubicacion. "Puede acceder a la ubicación actual del dispositivo"
"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
2.3. Asignación de capacidades a un proceso
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
2.3.1 Ejemplos de DLL enlazadas
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
2.3.2 Ejemplos de DLL cargadas dinámicamente
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
2.4. Protección de los nombres de los servidores del sistema
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.
\vskip1.000000\baselineskip
2.5. Aislar los servidores de sistema del SO Symbian mediante cortafuegos 2.5.1 Capacidad de duración de un permiso
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
3 Instalador de programas: Mejora de la seguridad perimetral
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
3.1. Instalación de programas de confianza (firmados)
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
3.2. Instalación de programas que no son de confianza (firmados)
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
3.3. Instalación de programas no firmados
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
3.4. Panel de control para revocar capacidades
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.
1

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.
ES03727702T 2002-05-28 2003-05-28 Dispositivo inalambrico movil seguro. Expired - Lifetime ES2343623B5 (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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