TERMINAL SECURISE ET PROCEDE DE PROTECTION D'ACCES A UN TEL TERMINAL SECURE TERMINAL AND METHOD FOR PROTECTING ACCESS TO SUCH A TERMINAL
DOMAINE TECHNIQUE DE L'INVENTION TECHNICAL FIELD OF THE 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 The present invention relates to the software field, and more particularly to the securing of mobile terminals of "Smartphone" type. More specifically, the invention relates to a secure terminal and a method of protecting access to such a terminal. BACKGROUND OF THE 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. Currently, the applications installed on mobile devices of the "Smartphones" type running the Android operating system are easily modifiable. Indeed, a standard mechanism for protecting an Android terminal is to mount the partition containing the executable code of the applications, that is to say the "system" partition, read-only (RO for Read Only in English). Then simply reassemble the system partition read and write (R / W for Read and Write in English) to make changes to the applications. In this case, it is not necessary to recompile the operating system or even restart the terminal. Moreover, nothing prevents a user from installing new applications, for example applications downloaded from the internet or from the Google Play, or applications installed by lines of command.
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. However, for security reasons, it is important to prevent modifications or additions of applications, especially for business terminals that may contain confidential information.
DESCRIPTION GENERALE DE L'INVENTION GENERAL DESCRIPTION OF THE 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. The object of the invention offers a solution to the problem mentioned above, by proposing a terminal on which the modification or the addition of application is impossible. The invention therefore essentially relates to a terminal comprising a flash memory storage space divided into partitions, in particular a system partition comprising applications. The system partition is mounted via a file system that excludes writing.
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. The terminal runs on the Android operating system. By "excludes writing" is meant "does not support writing", or "the code managing the file system does not include writing function". Reading and writing a partition via a file system that excludes writing is impossible. An example of a file system excluding writing is "squashfs". Naturally, the system partition has been previously formatted with the file system in question. Moreover, by "application" is meant an apk file. Traditionally, the file systems used to mount the system partition are yaffs2, ext3, or ext4, which are file systems that support writing. Thus, if the system partition has been mounted read-only, it can be read and write again. Thanks to the invention, it is impossible to remount the system partition read and write, because the writing function is not supported by the file system used: it is physically not wired. Thus, the modification of the applications is impossible, these being installed on the non-modifiable system partition.
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 : The terminal according to the invention may have one or more additional characteristics among the following, considered individually or in any technically possible combination:
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. the terminal comprises means for verifying a signature of the system partition. The signature of the system partition verifies its integrity before using it.
- 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. - Application programming interfaces are disabled. By deactivated, it is meant that the programming interfaces are preserved, but have no effect. Thus, the user can neither add nor delete applications, regardless of the means used. The deactivation of the application programming interfaces is performed during the construction of the system software.
- des fichiers descriptifs des applications sont enregistrés sur la partition système. - descriptive files of the applications are saved on the system partition.
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. These files are typically packages. list and packages.xml. The descriptive files describe the installed applications and their properties. Typically, the descriptive files are located on a read and write data partition. Saving the descriptive files on the system partition prevents them from being modified. The registration is done during the construction of the system software.
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. the file system used to mount the system partition supports extended attributes. Thus, the rights of users in execution are manageable. This ensures the compatibility of the terminal with other protection mechanisms.
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. Executable files of the applications are saved on the system partition. Specifically, a cache with executable files of the applications is located on the system partition. An application is transported in a ZIP-type archive from which executable files (typically a class.dex file) of the application are extracted and copied to a working directory of the operating system. According to the invention, the cache of the Dalvik virtual machine, which contains the class.dex files of the applications, is built during the construction of the system software and this cache is located on the system partition. Because the system partition is read-only, you can not change the cache. This prevents modification of the executable code of the 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. The invention also relates to an access protection method of a terminal comprising a partitioned flash memory storage space, in particular a system partition comprising applications. The access protection method includes a step of mounting the system partition, in which the system partition is mounted via a file system that excludes writing.
En outre, l'étape de montage de la partition système est mise en œuvre lors d'une séquence de démarrage du terminal. In addition, the step of mounting the system partition is implemented during a startup sequence of the 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 : The access protection method according to the invention may have one or more additional characteristics among the following, considered individually or in any technically possible combination:
- 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. the method comprises, prior to the step of mounting the system partition, a step of verifying a signature of the system partition, the result of the verification determining the execution or not of the step of mounting the partition system.
les étapes de vérification d'une signature et de montage de la partition système sont mises en œuvre lors d'une séquence de démarrage du terminal. the steps of verifying a signature and mounting the system partition are implemented during a startup sequence of the terminal.
le procédé comporte une étape de désactivation des interfaces de programmation des applications. the method includes a step of deactivating the application programming interfaces.
l'étape de désactivation des interfaces de programmation est mise en œuvre lors d'une construction d'un logiciel système du terminal. the deactivation step of the programming interfaces is implemented during a construction of a system software of the terminal.
- le procédé comporte une étape d'enregistrement des fichiers descriptifs des applications sur la partition système. the method comprises a step of recording the descriptive files of the applications on the system partition.
l'étape d'enregistrement des fichiers descriptifs est mise en œuvre lors d'une construction d'un logiciel système du terminal. the step of recording the descriptive files is implemented during a construction of a system software of the 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. the method comprises a step of recording on the system partition of executable files of the applications. Specifically, this is a step to register the cache of the Dalvik VM.
l'étape d'enregistrement du cache est mise en œuvre 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. the step of recording the cache is implemented during a construction of a terminal system software. The invention and its various applications will be better understood by reading the following description and examining the figures that accompany it.
BREVE DESCRIPTION DES FIGURES BRIEF DESCRIPTION OF THE FIGURES
Les figures ne sont présentées qu'à titre indicatif et nullement limitatif de l'invention. Les figures montrent : The figures are presented only as an indication and in no way limit the invention. The figures show:
A la figure 1, une représentation schématique d'un terminal selon un mode de réalisation non limitatif de l'invention ; In Figure 1, a schematic representation of a terminal according to a non-limiting embodiment of the 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. In Figure 2, a schematic representation of the steps of an access protection method of the terminal of Figure 1, according to a non-limiting embodiment of the invention.
DESCRIPTION DETAILLEE D'AU MOINS UN MODE DE REALISATION DE L'INVENTION DETAILED DESCRIPTION OF AT LEAST ONE EMBODIMENT OF THE INVENTION
Sauf précision contraire, un même élément apparaissant sur des figures différentes présente une référence unique. Unless otherwise specified, the same element appearing in different figures has a unique reference.
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. FIG. 1 represents a secure mobile terminal MT, of Smartphone type, operating under the Android operating system. SL system software with the operating system and APP applications is installed on the MT terminal. In addition, the MT terminal has a flash memory storage space FM divided into partitions Px. Furthermore, FIG. 2 represents steps of a MET access protection method of the MT terminal.
La sécurisation du terminal MT est garantie par une combinaison de mécanismes décrits ci-après. The security of the MT terminal is guaranteed by a combination of mechanisms described below.
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 : Some Px partitions of the FM flash storage space are used during a Pow boot sequence of the MT terminal. The Px partitions used during the Pow boot sequence are:
- une partition d'amorçage (appelée « chipset bootloader ») ;
une partition de démarrage du système d'exploitation (appelée « OS bootloader ») ; - a boot partition (called "chipset bootloader"); an operating system boot partition (called "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 ») ; a configuration partition that contains the operating system kernel and the basic operating system administrator configuration (called "boot");
une partition système SP comportant les applications APP (appelée « System »). Par application, on entend un fichier apk. an SP system partition including APP applications (called "System"). By application, we mean an apk file.
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. These Px partitions, including the SP system partition, are signed. The signature mechanism works by step by step control: when a stage executes, it checks the signature of the next stage. The integrity of each Px partition, including the SP system partition, is ensured by the verification of its signature by the previous stage. These signature checks are performed during the Pow start of the TM terminal. The system partition SP is therefore signed and this signature is checked during the Pow boot of the MT terminal before the mounting of said system partition SP, during a verification step SIG_ch of the system partition signature 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. In addition, the SP system partition is formatted with an FS file system that does not support writing. During the boot sequence Pow, after the verification step SIG_ch of the signature of the system partition SP, the system partition SP is mounted via the file system FS read-only, during a mounting step SP_mo of the SP system partition. Such a file system advantageously supports extended attributes. An example of such a file system is "squashfs". The FS file system does not allow writing, reassembly of the SP system partition read and write is not possible. The read-only protection of the SP system partition thus makes it possible to protect it after starting 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 Pl_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é. In addition, PI programming interfaces (called APIs for Application Programming Interface) of APP applications are disabled so as to produce no effect. This deactivation takes place during a deactivation step Pl_des of PI programming interfaces, during the construction of the SL system software of the TM terminal. For this, the package manager of Android (called Package Manager) is changed to no longer allow the installation or removal of applications. This change applies to all installation methods: Google Play, command line (such as "adb install" or "pm install"), file explorer by clicking on an APK file, and so on. Thus, a user of the MT terminal can not add or delete applications, regardless of the means used.
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.
In addition, descriptive files DF APP applications are saved on the system partition SP, which is advantageous since the system partition SP is not modifiable. The descriptive files DF describe which APP applications are available and their characteristics. The descriptive files DF are constructed during the construction of the SL system software of the MT terminal. These are, for example, "package" files. list "and" packages. xml ". At the first start of the MT terminal, the operating system reviews the contents of the DF descriptive files to detect the APP applications to be installed. These APP applications are the standard applications provided by the manufacturer of the MT terminal, for example the "Phone" application or the "Contacts" application. When installing an APP application, DF descriptive files are updated. The DF descriptive files allow the operating system to know which APP applications are installed. The DF descriptive files also provide information on the properties of each APP application, such as permissions, dedicated data directories, and so on. Thus, during subsequent startups, the operating system does not have to scan the installed APP applications, these data are directly accessible to it via the descriptive files DF. Saving the DF descriptive files on the SP system partition ensures that they can not be modified. The list of APP applications and their properties is thus fixed. The DF_sav recording step of the descriptive files DF is performed during the construction of the SL system software of the terminal TM. Furthermore, the apk file of an APP application is not directly usable by the operating system. An apk file is a Zip archive containing in particular a class.dex file which represents the executable code of the application. This file must be extracted from the apk file for use by the operating system. Additional security is to save the class.dex files in the SP system partition, since the SP system partition is not editable. Thus, the executable code of an APP application can not be modified.