Windows Mobile, Développement et Sécurité
Aspect Sécuritaire
Introduction : Risques et enjeux pour les opérateurs mobiles
A l'heure actuelle, le monde PC et tout particulièrement Windows est canabalisé par les virus. Les entreprises dépensent des fortunes colossales pour se prémunir d'éventuels problemes et les particuliers sont focalisés sur ce probleme lorsqu'ils utilisent Internet.
Les Smartphone ne sont toujours pas assez répandu pour que l'on puisse rapporter des problemes conséquent en matiere de virus. Pour autant ils en existent comme Skull.L sur la plateforme Symbian (cf: http://www.pcinpact.com/actu/news/SkullL_le_faux_antivirus_Symbian_qui_crane.htm). Dès lors, il s'agit pour les opérateurs mobiles de se prémunir de ce genre de probleme. Un utilisateur doit pouvoir entierement confiance en son terminal mobile.

Parts
de marché des éditeurs de solutions d'antivirus
dans le monde
|
|
En
2001
|
|
Symantec
|
32,4%
|
Network
Associates
|
26,4%
|
Trend
Micro
|
14,2%
|
Computer
Associates
|
4,9%
|
Sophos
|
2,5%
|
Sybari Software |
1,8%
|
Panda Software |
1,7%
|
F-Secure |
1,3%
|
Source : http://solutions.journaldunet.com/dossiers/indicateurs/securite/antivirus_monde.shtml
Windows mobile dispose d'un systeme de certification d'application qui vient se soustraire à l'utilisateur en permettant ou non l'installation et l'execution d'une application. Cette sécurité s'appuie sur sa reconnaissance de la source des fichiers destinés à etre installés ou executé par le biais de la certification de données.
Le chiffrement de données
Présentation
Source : http://bobbyseb.free.fr/theme_2.html
La cryptologie moderne est née en 1976 avec l?introduction par deux chercheurs de l?Université de Stanford, Whitfield Diffie et Martin Hellman, du concept de clé publique.
Le terme « cryptage » est un anglicisme, tiré de l'anglais « encryption ». En français, on doit employer le mot chiffrement. L'Académie française précise que le mot est à bannir et ne figure pas dans son dictionnaire même si on peut le trouver dans des usuels. Toutefois, « crypter » est souvent employé, surtout au passif, dans le cadre de la télévision payante (on « crypte » des chaînes).
Le principe émet que seule l?opération de déchiffrement doit être protégée par une clé gardée secrète. Le chiffrement peut parfaitement être exécuté à l?aide d?une clé connue publiquement, à condition, bien sûr, qu?il soit virtuellement impossible d?en déduire la valeur de la clé secrète. On parle alors de « cryptographie asymétrique ».
Principe
Source : http://fr.wikipedia.org/wiki/Cryptographie_asym%C3%A9trique#Principe
La cryptographie asymétrique, ou cryptographie à clé publique est fondée sur l'existence de fonctions à sens unique ? c'est-à-dire qu'il est simple d'appliquer cette fonction à un message, mais extrêmement difficile de retrouver ce message à partir du moment où on l'a transformé.
En réalité, on utilise en cryptographie asymétrique des fonctions à sens unique et à brèche secrète. Une telle fonction est difficile à inverser, à moins de posséder une information particulière, tenue secrète, nommée clé privée.
À partir d'une telle fonction, voici comment se déroulent les choses : Alice souhaite pouvoir recevoir des messages chiffrés de n'importe qui. Elle génère alors une valeur à partir d'une fonction à sens unique et à brèche secrète à l'aide d'un algorithme de chiffrement asymétrique (liste ici), par exemple RSA.
Elle la diffuse, mais garde secrète l'information permettant d'inverser cette fonction. On parle de clé publique pour celle qu'on diffuse (sans avoir à se préoccuper de sa sécurité) et de clé privée pour l'information secrète (qui doit rester la propriété exclusive d'Alice).
1e étape : Alice génère deux clés. La clé publique (verte) qu'elle envoie à Bob et la clé privée (rouge) qu'elle conserve précieusement sans la divulguer à quiconque.

2e et 3e étapes : Bob chiffre le message avec la clé publique d'Alice et envoie le texte chiffré. Alice déchiffre le message grâce à sa clé privée.

La certification d'application
Source : http://www.commentcamarche.net/crypto/certificat.php3
Introduction à la notion de certificats
Les algorithmes de chiffrement asymétrique sont basés sur le partage entre les différents utilisateurs d'une clé publique. Généralement le partage de cette clé se fait au travers d'un annuaire électronique (généralement au format LDAP) ou bien d'un site web.
Toutefois ce mode de partage a une grande lacune : rien ne garantit que la clé est bien celle de l'utilisateur a qui elle est associée. En effet un pirate peut corrompre la clé publique présente dans l'annuaire en la remplaçant par sa clé publique. Ainsi, le pirate sera en mesure de déchiffrer tous les messages ayant été chiffrés avec la clé présente dans l'annuaire.
Ainsi un certificat permet d'associer une clé publique à une entité (une personne, une machine, ...) afin d'en assurer la validité. Le certificat est en quelque sorte la carte d'identité de la clé publique, délivré par un organisme appelé autorité de certification (souvent notée CA pour Certification Authority).
L'autorité de certification est chargée de délivrer les certificats, de leur assigner une date de validité (équivalent à la date limite de péremption des produits alimentaires), ainsi que de révoquer éventuellement des certificats avant cette date en cas de compromission de la clé (ou du propriétaire).
Structure d'un certificat
Les certificats sont des petits fichiers divisés en deux parties :
- La partie contenant les informations
- La partie contenant la signature de l'autorité de certification
La structure des certificats est normalisée par le standard X.509 de l'UIT (plus exactement X.509v3), qui définit les informations contenues dans le certificat :
- La version de X.509 à laquelle le certificat correspond
- Le numéro de série du certificat
- L'algorithme de chiffrement utilisé pour signer le certificat
- Le nom (DN, pour Distinguished Name) de l'autorité de certification émettrice
- La date de début de validité du certificat
- La date de fin de validité du certificat
- L'objet de l'utilisation de la clé publique
- La clé publique du propriétaire du certificat
- La signature de l'émetteur du certificat (thumbprint)
L'ensemble de ces informations (informations + clé publique du demandeur) est signé par l'autorité de certification, cela signifie qu'une fonction de hachage crée une empreinte de ces informations, puis ce condensé est chiffré à l'aide de la clé privée de l'autorité de certification; la clé publique ayant été préalablement largement diffusée afin de permettre aux utilisateurs de vérifier la signature avec la clé publique de l'autorité de certification.
Lorsqu'un utilisateur désire communiquer avec une autre personne, il lui suffit de se procurer le certificat du destinataire. Ce certificat contient le nom du destinataire, ainsi que sa clé publique et est signé par l'autorité de certification. Il est donc possible de vérifier la validité du message en appliquant d'une part la fonction de hachage aux informations contenues dans le certificat, en déchiffrant d'autre part la signature de l'autorité de certification avec la clé publique de cette dernière et en comparant ces deux résultats.
On distingue différents types de certificats selon le niveau de signature :
- Les certificats auto-signés sont des certificats à usage interne. Signés par un serveur local, ce type de certificat permet de garantir la confidentialité des échanges au sein d'une organisation, par exemple pour le besoin d'un intranet. Il est ainsi possible d'effectuer une authentification des utilisateurs grâce à des certificats auto-signés.
- Les certificats signés par un organisme de certification sont nécessaires lorsqu'il s'agit d'assurer la sécurité des échanges avec des utilisateurs anonymes, par exemple dans le cas d'un site web sécurisé accessible au grand public. Le certificateur tiers permet d'assurer à l'utilisateur que le certificat appartient bien à l'organisation à laquelle il est déclaré appartenir.
Conclusion
On retiendra par exemple les étapes entre la volonté d'une société de certifier des correctifs pour ses logiciels et l'installation des correctifs chez le client. Elles sont les suivantes :
Tout d'abord la société doit contacter une autorité d'enregistrement. Cette dernière va se charger de générer la paire clef privée-clef publique et de collecter des informations probantes sur la société.
Elle va ensuite envoyer les informations de la société vérifiées ainsi que la clef publique à une autorité de certification. Celle-ci va générer un certificat contenant les informations de la société ainsi que sa clef publique. On pourra vérifier la validité de ce certificat, avec la clef publique de l'autorité de certification largement répandue, par le fait que les informations auront été hashées puis signées avec la clef privée de l'autorité de certification.
La société se voit ensuite remettre son certificat. Elle peut donc remettre ses correctifs à ses clients. Chaque fichier est hashé puis le résultat du hashage est signé avec la clef privée de la société : on appelle cela l'empreinte d'un fichier.
Le client peut vérifier la validité des correctifs en effectuant la même fonction de hashage sur les fichiers reçus d'une part et en déchiffrant l'empreinte d'autre part. S'ils sont similaires, le fichier est de source sûre.
La certification d'application sur Windows Mobile
Présentation
La sécurité des applications sur Windows Mobile consiste à protéger l'intégrité des terminaux des utilisateurs en empechant d'installé une application provenant d'une source inconnue.
Cette politique est basée sur la signature d'application. Un opérateur mobile choisit une politique de sécurité avant de répandre un terminal mobile sur le marché. Cependant, l'utilisateur peut généralement changer à souhait la politique de sécurité de son terminal.
Les terminaux basés sur Windows Mobile implementent une sécurité dite de périmetre, qui empeche d'installer une application provenant d'une source inconnue, et une sécurité d'execution qui empeche d'executer ce meme type d'application.
Par exemple, vous avez seulement besoin d'installer une sonnerie ou une gestionnaire d'écran alors qu'une application executable necessite d'être installée puis executée. Par conséquent, si vous créer un contenu qui ne necessite que d'etre installé, vous ne vous soucierez que de la politique de sécurité dite de périmetre, sinon il faudra aussi pensé à la politique d'execution.
Le systeme d'exploitation Windows Mobile dispose de trois magasins de certificats :
- ceux concernant les executions en mode non privilégié
- ceux concernant les executions en mode privilégié
- ceux concernant l'installation de contenu sur le terminal
Un magasion de certificats contient la portion publique des certificats numériques installés sur le terminal. La version publique d'un certificat peut être utilisée pour vérifier la signature numérique d'une application, mais il ne peut pas être utilisé pour signer une application.
Quel mode d'exécution utilisé
La plupart des applications ont seulement besoin d'un acces d'execution en mode non privilégié : les jeux ou les applications bureautiques par exemple. Cependant, si une application doit realiser une des contraintes suivantes, elle pourrait avoir besoin de s'executer en mode privilégié ce qui signifie qu'elle doit être signée avec un certificat avec un accès d'execution en mode privilégié :
- Modifier une entrée systeme dans la base de registre
- Accéder au gestionnaire de SMS (les fonctions SmsXXX)
- Démarrer ou intercepter des appels téléphoniques et accéder aux fonctions de l'API TAPI
- Accéder au gestionnaire de la SIM (les fonctions SimXXX)
- Accéder directement physiquement à la radio par le biais de son interface système (Radio Interface Layer. Notons que ce type d'accès n'est pas décris dans l'API)
- Utiliser des modes d'execution systemes de bas niveai (API : KernelIOControl)
- Ecrire un composant, comme une DLL (librairie dynamique .so sur Linux) qui doit s'attacher à un processus systeme ou processus privilégié.
Le modèle de sécurité d'application a été conçu pour être « flexible » du fait du nombre élévé de requetes en matiere de sécurité des opérateurs mobiles. Le concept d'application privilégiée ou non privilégiée correspond au niveau d'accès requis d'une application :
- Les applications privilégiées ou « Privivileged trust applications » ont entierement accès au système et aux APIs. Une application signée avec un certificat qui correspond à un certificat dans le magasin de certificat privilégié s'execute avec des droits d'accès privilégiés.
- Les applications non privilégiées ou « UnPrivivileged trust applications » ont un accès limité au système ainsi qu'aux APIs. Une application signée avec un certificat qui correspond à un certificat dans le magasin de certificat non privilégié s'execute avec des droits d'accès non privilégiés.
- Les applications de sources inconnues ou « Untrusted » n'ont pas le droit de se charger dans un environnement Smartphone qui ne le permet pas. L'opérateur mobile peut en effet changer ce type de polique. Nous le verrons dans la prochaine section.
Les politiques de sécurité envisageables pour un opérateur
Pour l'installation d'application (la sécurité de périmetre), la politique de l'opérateur est simple:
- Autoriser l'installation de package (application+fichiers liés) non signé
- Ne pas autoriser l'installation de package non signé
Concernant l'execution d'une application (la sécurité d'execution), l'opérateur mobile doir faire le bon choix pour autoriser une application ou un composant à s'executer en mode privilégié ou non-privilégié. Le tableau suivant montre le type de certificat avec lequel notre application doit être signé pour s'executer :
Depuis Smartphone 2003, il existe un mode additionnel demandant à l'utilisateur de confirmer l'installation ou non.
Concernant l'execution d'une application (la sécurité d'execution), l'opérateur mobile doir faire le bon choix pour autoriser une application ou un composant à s'executer en mode privilégié ou non-privilégié. Le tableau suivant montre le type de certificat avec lequel notre application doit être signé pour s'executer :
Policy | Execution mode | Execution mode |
---|---|---|
Unprivileged | Privileged | |
Unrestricted | None | None |
Standard | None | Operator privileged certificate required |
Restricted | Mobile2Market unprivileged certificate required | Operator privileged certificate required |
Les terminaux Windows Mobile supportent aussi un mode avec message de sollicitation. L'opérateur peut en effet déléguer à l'utilisateur le choix d'executer une application non-signée si elle ne demande pas de ressources dites « privilégiées ». Les politiques d'execution sont alors les suivantes :
Policy | Execution mode | Execution mode |
---|---|---|
Unprivileged | Privileged | |
Unrestricted | None | None |
Standard | Mobile2Market unprivileged certificate required (also Prompt mode) | Mobile2Market or Operator privileged certificate required |
Restricted | Mobile2Market unprivileged certificate required | Mobile2Market or Operator privileged certificate required |
Concernant l'opérateur Orange, on peut noter le choix de la politique de sécurité suivante :
Currently Announced Windows Mobile-based Smartphone Operators |
Policy |
Execution Mode |
||
Mobile Operator (Regional Availability) |
Device (Platform Version) |
Application Security Configuration |
Unprivileged |
Privileged |
AT&T Wireless (U.S.) KPN (Netherlands) |
Sierra Wireless Voq Professional Phone (Windows Mobile 2003 software for Smartphone) |
Standard (prompt) |
Mobile2Market
unprivileged root certificate |
Mobile2Market privileged root certificate |
Orange (Europe) |
SPV1 (Windows Mobile 2002 software for Smartphone) |
Restricted |
Mobile2Market unprivileged root certificate |
Orange privileged root certificate |
Orange (Europe) |
SPV2 (Windows Mobile 2003 software for Smartphone) |
Standard (prompt) |
Mobile2Market unprivileged root certificate |
Orange privileged root certificate |
On constate que pour Smartphone 2003, Orange a choisi de déléguer à l'utilisateur le choix d'installer et d'execution des applications ou composants non signés ne faisant pas appel à des ressources privilégiées.
Veuillez trouver sur le lien suivant la liste des clefs registres dont l'accès necessite un accès privilégié ainsi que la liste des APIs dites « privilégiées » : Cliquer ici
Conclusion
On peut donc constater que l'opérateur possède une grande part de responsabilité pour ce qui concerne la sécurité de son parc de terminaux mobiles Windows Mobile. Il est celui qui fixe la politique à suivre en matière d'installation et d'execution d'application selon leur provenance et leurs prérequis au point de vue du niveau d'accès.
Pour autant, la plupart des opérateurs, en particulier Orange, mettent à disposition des « développeurs » ou plutôt des utilisateurs désireux d'installer des applications non-signées ou signées avec un certificat racine non présent dans le terminal.