Modelo de seguridad para ejecución de aplicaciones 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.
- Controlan qué aplicaciones tienen o no autorización para ejecutarse en el sistema
- Controlan el alcance de las acciones que pueden realizar las aplicaciones en el sistema al ejecutarse
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.
- Permitir o bloquear la ejecución de aplicaciones y librerías DLL no firmadas. (Por defecto, permitir)
- Permitir o bloquear la instalación de archivos comprimidos CAB no firmados. (Por defecto, permitir)
- Especificar si se debe solicitar al usuario la autorización para ejecutar aplicaciones, librerías DLL y archivos comprimidos CAB no firmados. (Por defecto, preguntar al usuario)

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:
- Con privilegios
- Normal
- Bloqueado
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. |
| 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 sin firmar o firmada con un
certificado desconocido |
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í | 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. |
| Modelo de una capa o One-tier access |
Se permite la ejecución de aplicaciones firmadas. |
| Modelo de dos capas o Two-tier access |
Se permite la ejecución de aplicaciones firmadas.
|
| Cerrado a aplicaciones Mobile2Market |
Sólo se permite la ejecución de aplicaciones firmadas
con 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:
- Certificados de raiz de confianza de las principales autoridades de certificación (Verisign, Cybertrust, Entrust, ...)
- Certificados de confianza del programa Mobile2Market
- Certificados adicionales que puede haber añadido el OEM o el Operador de telefonía (HTC, Telefónica, Vodafone, Orange, ...)
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:
- Almacén de certificados de autoridades de certificación
raiz de confianza para ejecución privilegiada (Privileged Execution
Trust Authorities). Básicamente se denomina almacén de
certificados con privilegios.
Contiene los certificados de confianza. Las aplicaciones firmadas con certificados alojados en este almacén se ejecutarán con privilegios.
- Almacén de certificados de autoridades de certificación
raiz de confianza de ejecución normal (Unprivileged Execution Trust
Authorities). Básicamente se denomina almacén de
certificados sin privilegios.
Contiene los certificados normales. En dispositivos con modelo de una capa o One-tier access, las aplicaciones firmadas con certificados alojados en este almacén se ejecutarán con privilegios. En dispositivos con modelo de dos capas o Two-tier access, las aplicaciones firmadas con certificados alojados en este almacén se ejecutarán con nivel normal de permiso.
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:
- Ejecutables con privilegios no pueden acceder a DLLs que tienen permiso normal.
- Ejecutables con permiso normal pueden cargar DLLs con privilegios, pero la DLL se ejecutará con permiso normal.
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.)
