Brevet FR3011361A1 — publié le 20150403

TERMINAL SECURISE ET PROCEDE DE PROTECTION D'ACCES A UN TEL TERMINAL DOMAINE TECHNIQUE DE L'INVENTION La présente invention se rapporte au domaine logiciel, et plus particulièrement à la sécurisation des terminaux mobiles de type « Smartphone ». Plus précisément, l'invention concerne un terminal sécurisé et un procédé de protection d'accès à un tel terminal. ARRIERE PLAN TECHNOLOGIQUE DE L'INVENTION Actuellement, les applications installées sur les terminaux mobiles de type « Smartphones » tournant sous le système d'exploitation Android sont facilement modifiables. En effet, un mécanisme standard de protection d'un terminal Android consiste à monter la partition comportant le code exécutable des applications, c'est-à- dire la partition « système », en lecture seule (RO pour Read Only en anglais). Il suffit alors de remonter la partition système en lecture et écriture (R/W pour Read and Write en anglais) afin d'apporter des modifications aux applications. Dans ce cas, il n'est pas nécessaire de recompiler le système d'exploitation ou même de redémarrer le terminal. De plus, rien n'empêche un utilisateur d'installer de nouvelles applications, par exemple des applications téléchargées depuis internet ou depuis le Google Play, ou encore des applications installées par lignes de commandes. Or, pour des raisons de sécurité, il importe d'empêcher les modifications ou les ajouts d'applications, notamment pour des terminaux professionnels pouvant comporter des informations confidentielles. DESCRIPTION GENERALE DE L'INVENTION L'objet de l'invention offre une solution au problème évoqué précédemment, en proposant un terminal sur lequel la modification ou l'ajout d'application est impossible. L'invention concerne donc essentiellement un terminal comportant un espace de stockage à mémoire flash divisé en partitions, notamment une partition système comportant des applications. La partition système est montée via un système de fichiers qui exclut l'écriture. Le terminal fonctionne sous le système d'exploitation Android. Par « exclut l'écriture », on entend « ne supporte pas l'écriture », ou encore « le code gérant le système de fichiers ne comprend pas de fonction d'écriture ». Le montage en lecture et écriture d'une partition via un système de fichiers qui exclut l'écriture est impossible. Un exemple de système de fichiers excluant l'écriture est « squashfs ». Naturellement, la partition système a été préalablement formatée avec le système de fichiers en question. Par ailleurs, par « application », on entend un fichier apk. Traditionnellement, les systèmes de fichiers utilisés pour monter la partition système sont yaffs2, ext3 ou ext4, qui sont des systèmes de fichiers supportant l'écriture. Ainsi, si la partition système a été montée en lecture seule, elle peut être remontée en lecture et écriture. Grâce à l'invention, il est impossible de remonter la partition système en lecture et écriture, car la fonction d'écriture n'est pas supportée par le système de fichiers utilisé : elle n'est physiquement pas câblée. Ainsi, la modification des applications est impossible, celles-ci étant installées sur la partition système non-modifiable. Le terminal selon l'invention peut présenter une ou plusieurs caractéristiques complémentaires parmi les suivantes, considérées individuellement ou selon toutes les combinaisons techniquement possibles : - le terminal comporte des moyens de vérification d'une signature de la partition système. La signature de la partition système permet de vérifier son intégrité avant de l'utiliser. - des interfaces de programmation des applications sont désactivées. Par désactivées, on entend que les interfaces de programmation sont conservées, mais n'ont pas d'effet. Ainsi, l'utilisateur ne peut ni ajouter ni supprimer d'applications, quel que soit le moyen utilisé. La désactivation des interfaces de programmation des applications est effectuée lors de la construction du logiciel système. - des fichiers descriptifs des applications sont enregistrés sur la partition système. Ces fichiers sont typiquement packages.list et packages.xml. Les fichiers descriptifs décrivent les applications installées ainsi que leurs propriétés. Classiquement, les fichiers descriptifs sont situés sur une partition data montée en lecture et écriture. Enregistrer les fichiers descriptifs sur la partition système permet d'empêcher leur modification. L'enregistrement est effectué lors de la construction du logiciel système. - le système de fichiers utilisé pour monter la partition système supporte les attributs étendus. Ainsi, les droits des utilisateurs en exécution sont gérables. Cela permet de garantir la compatibilité du terminal avec d'autres mécanismes de protection. - Des fichiers exécutables des applications sont enregistrés sur la partition système. Plus précisément, un cache comportant des fichiers exécutables des applications est situé sur la partition système. Une application est transportée dans une archive de type ZIP à partir de laquelle des fichiers exécutables (typiquement un fichier class.dex) de l'application sont extraits et copiés dans un répertoire de travail du système d'exploitation. Selon l'invention, le cache de la machine virtuelle Dalvik, qui contient les fichiers class.dex des applications, est construit lors de la construction du logiciel système et ce cache est situé sur la partition système. La partition système étant en lecture seule, il est impossible de modifier le cache. Ceci permet d'empêcher la modification du code exécutable des applications. L'invention concerne également un procédé de protection d'accès d'un terminal comportant un espace de stockage à mémoire flash divisé en partitions, notamment une partition système comportant des applications. Le procédé de protection d'accès comporte une étape de montage de la partition système, dans laquelle la partition système est montée via un système de fichiers qui exclut l'écriture. En outre, l'étape de montage de la partition système est mise en oeuvre lors d'une séquence de démarrage du terminal. Le procédé de protection d'accès selon l'invention peut présenter une ou plusieurs caractéristiques complémentaires parmi les suivantes, considérées individuellement ou selon toutes les combinaisons techniquement possibles : - le procédé comporte, préalablement à l'étape de montage de la partition système, une étape de vérification d'une signature de la partition système, le résultat de la vérification déterminant l'exécution ou non de l'étape de montage de la partition système. - les étapes de vérification d'une signature et de montage de la partition système sont mises en oeuvre lors d'une séquence de démarrage du terminal. - le procédé comporte une étape de désactivation des interfaces de programmation des applications. - l'étape de désactivation des interfaces de programmation est mise en oeuvre lors d'une construction d'un logiciel système du terminal. - le procédé comporte une étape d'enregistrement des fichiers descriptifs des applications sur la partition système. - l'étape d'enregistrement des fichiers descriptifs est mise en oeuvre lors d'une construction d'un logiciel système du terminal. - le procédé comporte une étape d'enregistrement sur la partition système de fichiers exécutables des applications. Plus précisément, il s'agit d'une étape d'enregistrement du cache de la machine virtuelle Dalvik. - l'étape d'enregistrement du cache est mise en oeuvre lors d'une construction d'un logiciel système du terminal. L'invention et ses différentes applications seront mieux comprises à la lecture de la description qui suit et à l'examen des figures qui l'accompagnent. BREVE DESCRIPTION DES FIGURES Les figures ne sont présentées qu'à titre indicatif et nullement limitatif de l'invention. Les figures montrent : - A la figure 1, une représentation schématique d'un terminal selon un mode de réalisation non limitatif de l'invention ; - A la figure 2, une représentation schématique des étapes d'un procédé de protection d'accès du terminal de la figure 1, selon un mode de réalisation non limitatif de l'invention. DESCRIPTION DETAILLEE D'AU MOINS UN MODE DE REALISATION DE L'INVENTION Sauf précision contraire, un même élément apparaissant sur des figures différentes présente une référence unique. La figure 1 représente un terminal mobile MT sécurisé, de type Smartphone, fonctionnant sous le système d'exploitation Android. Un logiciel système SL comportant le système d'exploitation et des applications APP est installé sur le terminal MT. De plus, le terminal MT comporte un espace de stockage à mémoire flash FM divisé en partitions Px. Par ailleurs, la figure 2 représente des étapes d'un procédé MET de protection d'accès du terminal MT. La sécurisation du terminal MT est garantie par une combinaison de mécanismes décrits ci-après. Certaines partitions Px de l'espace de stockage à mémoire flash FM sont utilisées lors d'une séquence de démarrage Pow du terminal MT. Les partitions Px utilisées lors de la séquence de démarrage Pow sont : - une partition d'amorçage (appelée « chipset bootloader ») ; - une partition de démarrage du système d'exploitation (appelée « OS bootloader ») ; - une partition de configuration comportant le noyau du système d'exploitation et la configuration administrateur de base du système d'exploitation (appelée « boot ») ; - une partition système SP comportant les applications APP (appelée « system »). Par application, on entend un fichier apk. Ces partitions Px, notamment la partition système SP, sont signées. Le mécanisme de signature fonctionne par un contrôle de proche en proche : quand un étage s'exécute, il vérifie la signature de l'étage suivant. L'intégrité de chaque partition Px, notamment la partition système SP, est assurée par la vérification de sa signature par l'étage précédent. Ces vérifications de signature sont effectuées lors du démarrage Pow du terminal TM. La partition système SP est donc signée et cette signature est vérifiée lors du démarrage Pow du terminal MT avant le montage de ladite partition système SP, lors d'une étape de vérification SIG_ch de la signature de partition système SP. De plus, la partition système SP est formatée avec un système de fichiers FS qui ne supporte pas l'écriture. Lors de la séquence de démarrage Pow, après l'étape de vérification SIG_ch de la signature de la partition système SP, la partition système SP est montée via le système de fichiers FS en lecture seule, lors d'une étape de montage SP_mo de la partition système SP. Un tel système de fichiers supporte avantageusement les attributs étendus. Un exemple d'un tel système de fichiers est « squashfs ». Le système de fichiers FS ne permettant pas l'écriture, le remontage de la partition système SP en lecture et écriture n'est pas possible. La protection en lecture seule de la partition système SP permet donc de la protéger après le démarrage Pow. En outre, des interfaces de programmation PI (appelées API pour Application Programming Interface) des applications APP sont désactivées de sorte à ne produire aucun effet. Cette désactivation a lieu lors d'une étape de désactivation PI_des des interfaces de programmation PI, pendant la construction du logiciel système SL du terminal TM. Pour cela, le gestionnaire de paquets d'Android (appelé Package Manager) est modifié afin de ne plus permettre l'installation ou la suppression d'applications. Cette modification concerne toutes les méthodes d'installation : par le Google Play, par ligne de commande (notamment avec « adb install » ou « pm install »), par l'explorateur de fichiers en cliquant sur un fichier APK, etc. Ainsi, un utilisateur du terminal MT ne peut ni ajouter ni supprimer des applications, quel que soit le moyen utilisé. De plus, des fichiers descriptifs DF des applications APP sont enregistrés sur la partition système SP, ce qui est avantageux puisque que la partition système SP n'est pas modifiable. Les fichiers descriptifs DF décrivent quelles applications APP sont disponibles ainsi que leurs caractéristiques. Les fichiers descriptifs DF sont construits lors de la construction du logiciel système SL du terminal MT. Il s'agit par exemple des fichiers « packages.list » et « packages.xml ». Au premier démarrage du terminal MT, le système d'exploitation passe en revue le contenu des fichiers descriptifs DF pour détecter les applications APP devant être installées. Ces applications APP sont les applications standards fournies par le fabriquant du terminal MT, par exemple l'application « Téléphone » ou l'application « Contacts ». Lors de l'installation d'une application APP, les fichiers descriptifs DF sont mis à jour. Les fichiers descriptifs DF permettent au système d'exploitation de savoir quelles sont les applications APP installées. Les fichiers descriptifs DF fournissent aussi des informations sur les propriétés de chaque application APP, par exemple les permissions, les répertoires de données dédiés, etc. Ainsi, lors des démarrages suivants, le système d'exploitation n'a pas à scanner les applications APP installées, ces données lui sont directement accessibles via les fichiers descriptifs DF. Enregistrer les fichiers descriptifs DF sur la partition système SP assure qu'ils ne puissent pas être modifiés. La liste des applications APP ainsi que leurs propriétés est ainsi figée. L'étape d'enregistrement DF_sav des fichiers descriptifs DF est réalisée lors de la construction du logiciel système SL du terminal TM. Par ailleurs, le fichier apk d'une application APP n'est pas directement utilisable par le système d'exploitation. Un fichier apk est une archive Zip contenant en particulier un fichier class.dex qui représente le code exécutable de l'application. Ce fichier doit être extrait du ficher apk pour être utilisé par le système d'exploitation. Une sécurisation supplémentaire consiste à enregistrer les fichiers class.dex dans la partition système SP, puisque la partition système SP n'est pas modifiable. Ainsi, le code exécutable d'une application APP n'est pas modifiable. REVENDICATIONS1. Terminal (MT) comportant un espace de stockage à mémoire flash (FM) divisé en partitions (Px), notamment une partition système (SP) comportant des applications (APP), caractérisée en ce que la partition système (SP) est montée via un système de fichiers (FS) qui exclut l'écriture. 2. Terminal (MT) selon la revendication précédente, caractérisé en ce qu'il comporte des moyens de vérification (INI) d'une signature de la partition système (SP). 3. Terminal (MT) selon l'une des revendications précédentes, caractérisé en ce que des interfaces de programmation (PI) des applications (APP) sont désactivées. 4. Terminal (MT) selon l'une des revendications précédentes, caractérisé en ce que des fichiers descriptifs (DF) des applications (APP) sont enregistrés sur la partition système (SP). 5. Terminal (MT) selon l'une des revendications précédentes, caractérisé en ce que le système de fichiers (FS) utilisé pour monter la partition système (SP) supporte les attributs étendus. 6. Terminal (MT) selon l'une des revendications précédentes, caractérisé en ce que des fichiers exécutables (EC) des applications (APP) sont enregistrés sur la partition système (SP). 7. Procédé (MET) de protection d'accès d'un terminal (MT) comportant un espace de stockage à mémoire flash (FM) divisé en partitions (Px), notamment une partition système (SP) comportant des applications (APP), comportant l'étape suivante : montage (SP_mo) de la partition système (SP), dans laquelle la partition système (SP) est montée via un système de fichiers (FS) qui exclut l'écriture. 8. Procédé (MET) de protection d'accès selon la revendication 7, caractérisé en ce qu'il comporte l'étape suivante, préalable à l'étape de montage (SP_mo) de la partition système (SP) : - vérification (SIG_ch) d'une signature de la partition système (SP), le résultat de la vérification déterminant l'exécution ou non de l'étape demontage (SP_mo) de la partition système (SP). 9. Procédé (MET) de protection d'accès selon l'une des revendications caractérisé en ce qu'il comporte l'étape suivante : désactivation (PI_des) des interfaces de programmation (PI) des applications (APP). 10. Procédé (MET) de protection d'accès selon l'une des revendications 7 à 9, caractérisé en ce qu'il comporte l'étape suivante : enregistrement (DF_sav) des fichiers descriptifs (DF) des applications (APP) sur la partition système (SP). 11. Procédé (MET) de protection d'accès selon l'une des revendications 7 à 10, caractérisé en ce qu'il comporte l'étape suivante : enregistrement (EC_sav) sur la partition système (SP) de fichiers exécutables (EC) des applications (APP).