Brevet FR3011359A1 — publié le 20150403

PROCEDE DE SECURISATION D'UN TERMINAL DOMAINE TECHNIQUE DE L'INVENTION La présente invention se rapporte au domaine logiciel, et plus particulièrement à la sécurisation des terminaux, notamment des terminaux mobiles de type « Smartphone », notamment des terminaux fonctionnant sous le système d'exploitation Android. Plus précisément, l'invention concerne un procédé de sécurisation d'un terminal mobile. ARRIERE PLAN TECHNOLOGIQUE DE L'INVENTION Un processus, c'est-à-dire un programme en cours d'exécution sur un terminal, utilise des ressources qui lui sont allouées. Les ressources sont notamment des zones de mémoire vive et des descripteurs (en anglais « handle ») de fichiers ou de bases de données. Lorsque le processus est en cours, les ressources sont vulnérables, c'est-à-dire potentiellement accessibles par un attaquant. Une attaque est particulièrement difficile à déceler lorsque le terminal est verrouillé (un verrouillage est par exemple réalisé manuellement par un utilisateur ou encore automatiquement au bout d'une certaine durée d'inactivité du terminal). Afin de protéger les ressources des processus lorsque le terminal est verrouillé, il est connu d'arrêter les processus. Dans ce cas, chaque processus sauvegarde dans une mémoire flash du terminal les ressources qu'il utilise, et se termine. Les données dans les zones de mémoire vive utilisées par les processus sont effacées. Quand le terminal est déverrouillé, les processus sont redémarrés et les données sont restaurées en utilisant les données sauvegardées dans la mémoire flash. Ce procédé présente plusieurs inconvénients : - Les durées d'écriture et de lecture de la mémoire flash sont relativement longs ; - Il est difficile de rétablir les processus dans les mêmes états qu'à leur fermeture ; - Ce procédé nécessite une coopération des processus. DESCRIPTION GENERALE DE L'INVENTION L'objet de l'invention offre une solution au problème évoqué précédemment, en proposant un procédé de sécurisation des ressources allouées aux processus exécutés sur un terminal, lorsque ledit terminal est en état verrouillé. L'invention concerne donc essentiellement un procédé de sécurisation d'un terminal. Le procédé comporte l'étape suivante : suite à un verrouillage du terminal, pour chaque processus d'une liste de processus exécutés par le terminal : - rendre inéligible à l'exécution ledit processus ; - protéger des ressources allouées au processus. Le procédé est mis en oeuvre par un noyau d'un système d'exploitation installé sur le terminal. Le système d'exploitation est par exemple Android. Les processus de la liste ne sont pas arrêtés, mais leur exécution est interrompue. Pour ce faire, l'ordonnanceur du noyau a été modifié afin de gérer un nouvel état possible pour chaque processus (nommé « frozen » par la suite). Tant que le processus est dans ce nouvel état, l'ordonnanceur ne lui donne pas la main et le processus ne s'exécute pas. De plus, les ressources que les processus de la liste utilisent sont sécurisées. Ainsi, en cas d'attaque, l'attaquant n'obtiendra pas de données intelligibles. Le procédé de sécurisation 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 : - les ressources allouées à un processus comportent une zone de mémoire vive, et la protection comporte un chiffrement de ladite zone de mémoire vive. Ainsi, les zones de mémoire vive utilisées par les processus de la liste protégées par chiffrement. Un attaquant ayant accès à la mémoire vive du terminal ne pourra pas la lire : la mémoire vive est rendue inutilisable. - le procédé comporte, suite à l'étape de chiffrement : effacer de la mémoire vive une clef de chiffrement utilisée lors du chiffrement. Ainsi, on s'assure qu'un déchiffrement de la mémoire vive par un attaquant est impossible. - les ressources allouées à un processus comportent un descripteur de fichier ou de base de données, et la protection comporte une fermeture dudit descripteur. Ainsi, les bases de données et/ou fichiers utilisés par les processus de la liste, sont rendues inaccessibles. - le procédé comporte une étape préalable de mise à jour de la liste de processus, comportant : suite à la réception d'une notification d'un processus, ajouter ledit processus à la liste de processus. Les notifications de processus sont reçues par le noyau du système d'exploitation Android. Les notifications de processus sont émises par un processus de protection nommé « Protection Manager » en anglais. Ainsi, le processus de protection (Protection Manager) indique au noyau les processus sur lesquels le procédé de sécurisation selon l'invention doit être mis en oeuvre. - l'émission d'une notification d'un processus dépend d'un paramétrage initial dudit processus. En effet, tous les processus ne sont pas concernés par le procédé de sécurisation selon l'invention. Par concerner, on entend être dans la liste de processus évoquée précédemment. Seuls les processus pré-configurés pour sécurisation sont concernés. A son démarrage un processus n'est pas dans la liste de processus ; si le processus de protection (Protection Manager) détecte que ledit processus est configuré pour être concerné par le procédé de sécurisation selon l'invention, alors le processus de protection (Protection Manager) le notifie au noyau, qui l'ajoutera dans la liste de processus. - le procédé comporte : suite à un déverrouillage du terminal : rendre éligible à l'exécution ledit processus et supprimer la protection sur les ressources préalablement protégées. - les ressources allouées à un processus comportent une zone de mémoire vive, et la suppression de la protection comporte un déchiffrement de ladite zone de mémoire vive. - les ressources allouées à un processus comportent un descripteur de fichier ou de base de données, et la suppression de la protection comporte une ouverture dudit descripteur. 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 DE LA FIGURE La figure 1 n'est présentée qu'à titre indicatif et nullement limitatif de l'invention. La figure 1 montre des étapes d'un procédé de sécurisation d'un terminal 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 montre des étapes d'un procédé METH de sécurisation d'un terminal selon un mode de réalisation non limitatif de l'invention. Dans le mode de réalisation non limitatif décrit, le terminal est de type Smartphone, et fonctionne sous le système d'exploitation Android, qui comprend un noyau. Le noyau comporte un ordonnanceur (en anglais « scheduler »), choisissant l'ordre d'exécution des processus du terminal. L'ordonnanceur est adapté pour gérer des états des processus, notamment : - un état dit « idle » dans lequel un processus est éligible à l'exécution. - un état dit « frozen » dans lequel un processus est gelé. Tant qu'un processus est dans l'état gelé, l'ordonnanceur ne lui donne pas main, le processus ne s'exécute donc pas. Selon l'invention, un processus PR exécuté sur le terminal est préconfiguré pour être concerné ou non par le procédé de sécurisation METH selon l'invention. Si le processus PR est concerné par le procédé de sécurisation METH, alors suite à un verrouillage LK du terminal, des ressources MEM, DESC qu'il utilise sont protégées. Un paramètre de configuration PR_PM est donc associé à chaque processus PR. Les paramètres de configuration PR_PM des processus PR sont analysables par un processus de protection nommé en anglais « Protection Manager ». Plus précisément, au démarrage d'un processus PR (lorsque le terminal est déverrouillé), le processus de protection analyse le paramètre de configuration PR_PM associé audit processus PR. Si le paramètre de configuration PR_PM indique que le processus PR est concerné par le procédé de sécurisation METH selon l'invention, alors le processus de protection envoie une notification au noyau. On dira que le processus de protection indique au noyau qu'un mécanisme de protection doit être activé sur le processus PR en question. A réception NO_REC d'une notification sur un processus PR, le noyau ajoute le processus à une liste LI_PR. La liste LI_PR est ainsi mise à jour à chaque réception NO_REC de _ _ notification. Lorsque le terminal passe de l'état déverrouillé à l'état verrouillé, la liste LI_PR comporte tous les processus PR démarrés sur lequel le mécanisme de protection doit être activé. Suite à verrouillage LK du terminal, l'ordonnanceur place les processus (PR) de la liste (LI_PR) dans l'état « frozen ». Puis, le noyau active une protection sur les ressources MEM, DESC des processus PR de la liste LI_PR. Plus précisément, des zones de mémoire MEM vive allouées aux processus PR de la liste LI_PR sont chiffrées MEM_ENC. De plus, la clef de chiffrement KM utilisée est supprimée KM_ERZ de la mémoire vive à la fin du chiffrement MEM_ENC. En outre, des descripteurs DESC de fichiers ou de bases de données utilisés par les processus PR de la liste LI_PR sont fermés, c'est-à-dire effacés. Ainsi, plus aucune donnée sensible n'est accessible ou exploitable. En cas d'attaque, aucune donnée intelligible ne sera utilisable.30 Suite à un déverrouillage UNLK du terminal, l'ordonnanceur place les processus (PR) de la liste (LI_PR) dans l'état « idle » : ces processus sont alors à nouveau éligibles à l'exécution. Puis, la protection sur les ressources des processus PR de la liste LI_PR est supprimée par le noyau. Le noyau déchiffre MEM_DESENC les zones de mémoire vive MEM préalablement chiffrées et rouvrent DESC_OP les descripteurs DESC. REVENDICATIONS1. Procédé (METH) de sécurisation d'un terminal, caractérisé en ce qu'il comporte : - Suite à un verrouillage (LK) du terminal, pour chaque processus (PR) d'une liste (LI _PR) de processus exécutés par le terminal : - rendre inéligible à l'exécution ledit processus (PR) ; - protéger (MEM_ENC ; DESC_CLZ) ressources (MEM ; DESC) allouées audit processus (PR). 2. Procédé (METH) de sécurisation selon la revendication précédente, caractérisé en ce que les ressources (MEM ; DESC) allouées à un processus (PR) comportent une zone de mémoire vive (MEM), et la protection (MEM_ENC ; DESC_CLZ) comporte un chiffrement (MEM_ENC) de ladite zone de mémoire vive (MEM). 3. Procédé (METH) de sécurisation d'un terminal selon la revendication précédente, caractérisé en ce qu'il comporte, suite à l'étape de chiffrement (MEM_ENC) : effacer (KM_ERZ) de la mémoire vive (MEM) une clef de chiffrement (KM) utilisée lors du chiffrement (MEM_ENC). 4. Procédé (METH) de sécurisation d'un terminal selon l'une des revendications précédentes, caractérisé en ce que les ressources (MEM ; DESC) allouées à un processus (PR) comportent un descripteur (DESC) de fichier ou de base de données, et la protection (MEM_ENC ; DESC_CLZ) comporte une fermeture (DESC_CLZ) dudit descripteur (DESC). 5. Procédé (METH) de sécurisation d'un terminal selon l'une des revendications précédentes, caractérisé en ce qu'il comporte une étape préalable de mise à jour de la liste (LI PR) de processus, comportant : suite à une réception (NO REC) d'une notification d'un processus (PR), ajouter (PR_AD) ledit processus (PR) à la liste (LI PR) de processus. 6. Procédé (METH) de sécurisation d'un terminal selon la revendication précédente, caractérisé en ce que l'émission d'une notification d'un processus (PR) dépend d'un paramétrage (PR_PM) initial dudit processus (PR). 7. Procédé (METH) de sécurisation d'un terminal selon l'une des revendicationsprécédentes, caractérisé en ce qu'il comporte : - Suite à un déverrouillage (UNLK) du terminal : - rendre éligible à l'exécution ledit processus (PR) ; - supprimer la protection (MEM_DESENC ; DESC_OP) sur les ressources (MEM ; DESC) préalablement protégées. 8. Procédé (METH) de sécurisation d'un terminal selon la revendication précédente, caractérisé en ce que les ressources (MEM ; DESC) allouées à un processus (PR) comportent une zone de mémoire vive (MEM), et la suppression de la protection (MEM_DESENC; DESC_OP) comporte un déchiffrement (MEM_DESENC) de ladite zone de mémoire vive (MEM). 9. Procédé (METH) de sécurisation d'un terminal selon l'une des revendications 7 ou 8, caractérisé en ce que les ressources (MEM ; DESC) allouées à un processus (PR) comportent un descripteur (DESC) de fichier ou de base de données, et la suppression de la protection (MEM_DESENC ; DESC_OP) comporte une ouverture dudit descripteur (DESC_OP).