Modelo de seguridad para ejecución de aplicaciones en Windows Mobile

Tabla de contenidos

Modelo de seguridad para ejecución de aplicaciones en Windows Mobile 6
Políticas de seguridad en Windows Mobile 6
Permisos de ejecución de aplicaciones
Arquitectura de capas de seguridad para ejecución de aplicaciones
Certificados y firmado de aplicaciones, librerías DLL y archivos comprimidos CAB en Windows Mobile

Modelo de seguridad para ejecución de aplicaciones en Windows Mobile 6


Los dispositivos Windows Mobile utilizan una combinación de políticas de seguridad, roles y certificados para gestionar la ejecución de aplicaciones en el sistema.

Las políticas de seguridad controlan los límites de acción y funcionalidad de una aplicación en el dispositivo.

Los certificados se utilizan para firmar ejecutables, librerías DLL y archivos comprimidos CAB que pueden ejecutarse en dispositivos Windows Mobile.

Políticas de seguridad en Windows Mobile 6


Con el fin de garantizar la seguridad en el dispositivo, las políticas de seguridad de Windows Mobile de protección frente a intrusiones no autorizadas definen reglas que permiten o impiden la ejecución de aplicaciones en el sistema. Cada política tiene una configuración por defecto.


  

Ejemplo de solicitudes de confirmación para ejecución de aplicaciones e instalación de archivos comprimidos CAB en Windows Mobile Professional.


  

Ejemplo de solicitudes de confirmación para ejecución de aplicaciones e instalación de archivos comprimidos CAB en Windows Mobile Standard.

Permisos de ejecución de aplicaciones


La ejecución de aplicaciones en Windows Mobile está basada en permisos. Existen 3 niveles de permisos de ejecución:

Las aplicaciones que se ejecutan con privilegios tienen el permiso más alto: pueden llamar a cualquier API (privilegiada o no), escribir en zonas protegidas del registro y tienen acceso completo a archivos del sistema. Sólo algunas pocas aplicaciones necesitan ejecutarse con privilegios. Dar permisos a una aplicación para que pueda ejecutarse con privilegios hace que esta pueda modificar el entorno del sistema operativo y puede suponer una amenaza para la integridad del dispositivo.

La mayoría de aplicaciones se ejecutan en modo normal. No pueden llamar a todas las APIs; pueden leer, pero no escribir, en zonas protegidas del registro; pueden leer, pero no escribir, en archivos del sistema o en el directorio \Windows\System; y tampoco pueden instalar certificados en almacenes de certificados con privilegios, pero sí en el almacen personal de certificados.

Las aplicaciones bloqueadas no tienen permiso para ejecutarse en el sistema. Una aplicación puede bloquearse debido a que no esté firmada con un certificado conocido o el usuario no autorice la ejecución de la misma cuando el sistema solicite confirmación.

Arquitectura de capas de seguridad para ejecución de aplicaciones


Las políticas de seguridad de Windows Mobile para la ejecución de aplicaciones se configuran en los dispositivo en forma de arquitectura de capas. Se definen dos modelos de capas de acceso para la ejecución de aplicaciones:

Modelo de una capa o One-tier access

Un dispositivo con modelo de una capa decide únicamente si una aplicación puede ejecutarse o no, basándose en si está firmada con un certificado almacenado en el sistema. No decide los permisos con los que se va a ejecutar (con privilegios/normal); si una aplicación se ejecuta lo hace en el nivel de permisos más elevado: con privilegios.

Aplicación firmada con un certificado conocido

Se ejecuta sin comprobaciones adicionales de las políticas de seguridad. Tiene permiso para ejecutarse con privilegios: puede llamar a cualquier API, acceder a todo el sistema de archivos y modificar cualquier parte del registro.

Aplicación sin firmar o firmada con un certificado desconocido

En primer lugar se comprueba la política de seguridad que especifica si se permite la ejecución de aplicaciones no firmadas. En caso negativo, se bloquea la ejecución de la aplicación. En caso positivo, se comprueba la política de seguridad que especifica si se debe solicitar autorización al usuario para ejecutar una aplicación no firmada. En caso negativo, se ejecuta la aplicación con los mismos permisos que una aplicación firmada. En caso positivo, se solicita autorización al usuario. Si este acepta, la aplicación se ejecuta. Si no acepta, se bloquea la ejecución de la aplicación.

En el caso de que la aplicación conste de un servicio o de un driver, si la librería DLL en que se basa no está firmada, el servicio o el driver no se lanzará al arrancar el sistema. La política de seguridad que especifica si se debe solicitar autorización al usuario para ejecutar una librería DLL no firmada no se tiene en cuenta en este punto.

 
Modelo de dos capas o Two-tier access

Un dispositivo con modelo de dos capas decide si una aplicación puede ejecutarse o no, basándose en si está firmada con un certificado almacenado en el sistema. También decide los permisos con los que se va a ejecutar (con privilegios/normal).

Aplicación firmada con un certificado conocido

Se ejecuta sin comprobaciones adicionales de las políticas de seguridad.

El permiso con el que se ejecuta la aplicación depende del almacen en el que se encuentra el certificado con el que se ha firmado.

  • Las aplicaciones firmadas con un certificado alojado en el almacén de certificados de autoridades de certificación raiz de confianza para ejecución privilegiada (Privileged Execution Trust Authorities) se ejecutan con privilegios: pueden llamar a cualquier API, acceder a todo el sistema de archivos y modificar cualquier parte del registro.
  • Las aplicaciones firmadas con un certificado alojado en el almacén de certificados sin privilegios se ejecutan con permiso normal: no pueden llamar a todas las APIs; pueden leer, pero no escribir, en zonas protegidas del registro y pueden leer, pero no escribir, en archivos del sistema o en el directorio \Windows\System.

Aplicación sin firmar o firmada con un certificado desconocido

En primer lugar se comprueba la política de seguridad que especifica si se permite la ejecución de aplicaciones no firmadas. En caso negativo, se bloquea la ejecución de la aplicación. En caso positivo, se comprueba la política de seguridad que especifica si se debe solicitar autorización al usuario para ejecutar una aplicación no firmada. En caso negativo, se ejecuta la aplicación con permiso normal. En caso positivo, se solicita autorización al usuario. Si este acepta, la aplicación se ejecuta con permiso normal. Si no acepta, se bloquea la ejecución de la aplicación.

En el caso de que la aplicación conste de un servicio o de un driver, si la librería DLL en que se basa no está firmada, el servicio o el driver no se lanzará al arrancar el sistema. La política de seguridad que especifica si se debe solicitar autorización al usuario para ejecutar una librería DLL no firmada no se tiene en cuenta en este punto.



La siguiente tabla muestra la compatibilidad de la arquitectura de capas de seguridad con las distintas plataformas Windows Mobile:

Plataforma Windows Mobile Soporta modelo One-tier Soporta modelo Two-tier
Windows Mobile 6 Classic Sí (por defecto) No
Windows Mobile 6 Professional Sí (por defecto) No
Windows Mobile 6 Standard Sí (por defecto)


A partir de la arquitectura de capas de seguridad, se definen 5 niveles de seguridad de dispositivo. Cada uno de estos niveles combina diferentes polítícas de seguridad para permitir la ejecución de aplicaciones no firmadas, los permisos con los que se ejecutan y si es necesario solicitar autorización al usuario para poder ejecutarse en el sistema.

Sin seguridad

Se permite la ejecución tanto de aplicaciones firmadas con no firmadas, sin solicitar ningún tipo de autorización al usuario.

Cualquier aplicación que se ejecute lo hace con privilegios: pueden llamar a cualquier API, acceder a todo el sistema de archivos y modificar cualquier parte del registro.

Este nivel de seguridad debe ser utilizado únicamente en fase de pruebas del dispositivo, no se trata de una política segura para dispositivos finales. Cualquier dispositivo con este nivel de seguridad es vulnerable a aplicaciones maliciosas y permite el acceso al sistema sin restricciones.

 
Modelo de una capa o One-tier access

Se permite la ejecución de aplicaciones firmadas.

En el caso de aplicaciones no firmadas o firmadas con certificados desconocidos se solicita autorización al usuario para su ejecución.

Cualquier aplicación que se ejecute (firmada o no firmada) lo hará con privilegios y con acceso total al sistema.

 
Modelo de dos capas o Two-tier access

Se permite la ejecución de aplicaciones firmadas.

En el caso de aplicaciones no firmadas o firmadas con certificados desconocidos se solicita autorización al usuario para su ejecución.

El permiso con el que se ejecuta la aplicación depende del almacen en el que se encuentra el certificado con el que se ha firmado.

  • Las aplicaciones firmadas con un certificado alojado en el almacén de certificados de autoridades de certificación raiz de confianza para ejecución privilegiada (Privileged Execution Trust Authorities) se ejecutan con privilegios: pueden llamar a cualquier API, acceder a todo el sistema de archivos y modificar cualquier parte del registro.
  • Las aplicaciones firmadas con un certificado alojado en el almacén de certificados sin privilegios se ejecutan con permiso normal. No pueden llamar a todas las APIs; pueden leer, pero no escribir, en zonas protegidas del registro y pueden leer, pero no escribir, en archivos del sistema o en el directorio \Windows\System.
 
Cerrado a aplicaciones Mobile2Market

Sólo se permite la ejecución de aplicaciones firmadas con certificados Mobile2Market.

No se permite la ejecución de aplicaciones no firmadas o firmadas con certificados desconocidos.

El permiso con el que se ejecuta la aplicación depende de si el certificado con el que se ha firmado está alojado en el almacén de certificados de autoridades de certificación raiz de confianza para ejecución privilegiada (Privileged Execution Trust Authorities) o en el almacén de certificados de autoridades de certificación raiz de confianza de ejecución normal (Unprivileged Execution Trust Authorities).

Mobile2Market es el programa de certificación y marketing de Microsoft para aplicaciones de movilidad para fabricantes de hardware y desarrolladores de software independientes. Los partners de Mobile2Market disponen de una autoridad de certificación raiz de confianza y una firma digital para Windows Mobile. Una vez certificadas, las aplicaciones pueden ser distribuidas a través del catálogo de aplicaciones de movilidad Mobile2Market.

Todas las aplicaciones firmadas con certificados Mobile2Market se pueden ejecutar en cualquier dispositivo Windows Mobile, ya que todos los OEMs y Operadores móviles incorporan en los dispositivos que comercializan los certificados Mobile2Market.

 
Bloqueado

Los certificados Mobile2Market se han eliminado del dispositivo pero los certificados del OEM, del Operador móvil y Enterprise (Administrador de Exchange) están presentes.



Certificados y firmado de aplicaciones, librerías DLL y archivos comprimidos CAB en Windows Mobile


Certificados

El uso de certificados digitales juega un papel significativo a la hora de hacer un dispositivo más seguro. Los certificados son documentos electrónicos mediante los cuales una tercera entidad confiable (autoridad de certificación) garantiza la vinculación entre la identidad de una aplicación y su clave pública. Los certificados digitales aseguran que una aplicación firmada pertenece a una organización de confianza.

Los certificados son importantes en el proceso de firmado de una aplicación, pues determinan si una aplicación puede ejecutarse o no en el sistema y con qué permisos de ejecución (con privilegios/normal). Para que una aplicación pueda ejecutarse en el sistema, debe presentar un certificado digital que pruebe que ha sido aceptada y firmada por una autoridad de confianza, como el programa Mobile2Market, por ejemplo. Ese certificado debe estar almacenado en el dispositivo Windows Mobile, debe ser conocido y estar marcado como confiable.

Por defecto, los dispositivos Windows Mobile incorporan varios certificados:

Los certificados en Windows Mobile se alojan en almacenes de certificados, localizados en el registro.

Existen dos almacenes de certificados utilizados para comprobar el permiso de ejecución de una aplicación, una librería DLL o un archivo comprimido CAB:



Firmado de aplicaciones, librerías DLL y archivos comprimidos CAB


Los ejecutables y las librerías DLL se firman y se validan con los certificados alojados en los almacenes de certificados con privilegios y sin privilegios.

Existe una política de permisos para interacción entre ejecutables y DLLs en función de los certificados con lo que se han firmado:

El procedimiento para firmar un ejecutable o una librería DLL es más o menos el mismo para Windows Mobile Professional y Windows Mobile Standard.

El firmado de aplicaciones, librerías DLL y archivos comprimidos CAB destinados a dispositivos Windows Mobile se lleva a cabo con la herramienta signtool.exe, disponible en C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\. Esta aplicación necesita como parámetro de entrada el certificado .pfx con el que se quiere firmar el archivo.

En principio, Microsoft ofrece la posibilidad de utilizar los certificados SamplePrivDeveloper y SampleUnPrivDeveloper disponibles en C:\Program Files\Windows Mobile 6 SDK\Tools\Security\SDK Development Certificates para firmar aplicaciones. También permite generar certificados propios con ayuda de las herramientas makecert.exe y pvk2pfx.exe de Visual Studio y OpenSSL. En ambos casos, estos certificados pueden ser utilizados únicamente para pruebas durante el desarrollo de aplicaciones para Windows Mobile, en ningún caso pueden ser utilizados para la distribución y comercialización de software. Para esto último, los fabricantes y desarrolladores deben suscribirse al programa de certificación Mobile2Market de Microsoft con el fin de validar y certificar sus aplicaciones y luego poder distribuirlas en el mercado.

La razón de esta advertencia, es que los dispositivos nunca traen instalados por defecto los certificados del SDK ni los certificados que los desarrolladores pueden generar por iniciativa propia. Todos los OEMs y Operadores móviles actualmente incluyen los certificados sin privilegios de Mobile2Market en los dispositivos que comercializan. La mayoría de OEMs y Operadores móviles también incluyen los certificados con privilegios de Mobile2Market. De esta forma, a menos que una aplicación necesite ejecutarse con privilegios en un dispositivo que no incorpore los certificados con privilegios de Mobile2Market, la aplicación debe firmarse con certificados de Mobile2Market. En el caso contrario, se necesita contactar con el OEM o el Operador móvil para que firme la aplicación.




















(Parte de la información de esta página está basada en la base de conocimientos de Microsoft Technet sobre seguridad en Windows Mobile. Para más información, acudir a la fuente original.)

© 2005 - 2009 Alberto Moreno Tablado