Brevet FR2874438A1 — publié le 20060224

La présente invention concerne un procédé informatique permettant de séçuriser facilement et de manière transparente un système d'exploitation et les logiciels qu'il héberge. Les problématiques résolues par l'invention sont les suivantes:, Empêcher toute exécution non désirée de programmes informatiques sur un système. Empêcher toute installation non désirée de programmes sur un système. É Permettre la personnalisation d'un système (pour un particulier, une entreprise). É Bloquer systématiquement tout code malicieux, virus, applet. É Permettre à des systèmes d'exploitation s'exécutant à l'intérieur de serveur spécialisé (appliance server) d'être totalement protégé et unique. É Empêcher la modification d'environnement (système d'exploitation et programmes) s'exécutant à l'intérieur de serveur spécialisé (appliance server). 15 Il est à noter que: É Ces fonctionnalités sont transparentes pour le système d'exploitation et que du fait de son mode natif, aucune surcharge de traitement n'est ajoutée. É Aucune solution de ce type n'existe aujourd'hui. Les anti-virus ne répondant que partiellement aux problématiques précédemment citées. L'idée maîtresse de l'invention est la suivante: L'idée est de changer les extensions dans le noyau du système d'exploitation l'extension des fichiers exécutables. De ce fait, ne pourront être exécutés que les fichiers - programmes, librairies dynamiques, programmes interprétés (java, basic, Per!, etc.) dont l'extension a été, au préalablement, changée pour correspondre à ce qui a été codé dans le noyau du système d'exploitation. J'obtiens ainsi une sécurisation de l'environnement au niveau le plus bas (le noyau du système d'exploitation). Les programmes inconnus ne pourront plus s'exécuter. Je crée dès l'installation un système personnalisé qui peut être utilisé de la même manière avec ou sans l'implémentation de mon invention. Le système reste transparent pour l'utilisateur, portable, sans impact sur ses performances et capable de communiquer et d'échanger des informations et des programmes avec les autres systèmes sans problème. Description: Encrypter toutes (ou partiellement) les extensions des fichiers exécutables (exe, com, bat, java, etc....) et faire reconnaître ses nouvelles extensions par le système d'exploitation. Comment: Utiliser un module spécifique d'installation (resp. désinstallation) pendant l'installation du système d'exploitation ou d'un logiciel. Ce module d'installation (resp. désinstallation) va modifier (patcher) le code du système d'exploitation et/ou le code du logiciel afin de faire reconnaître les différentes extensions pour les fichiers exécutables. Le nom de l'extension sera fourni en cryptant le nom actuel de l'extension à l'aide d'une clé privée. Le logiciel de cryptage pourra être n'importe lequel des algorithmes de cryptage symétrique connus (DES ou autre). La même clé sera utilisée pour le cryptage de toutes les extensions. A titre d'exemple: *.com peut devenir *.xyz *.exe peut devenir *.abc *.java peut devenir *.sdz etc. Fonctionnement: A l'installation l'utilisateur aura le choix entre un système sécurisé/personnalisé ou non. S'il choisit sécurisé, il devra fournir une clé privée au programme d'installation. Ensuite, à chaque installation de nouveaux programmes le système demandera la fourniture de la clé. L'utilisateur peut choisir une sécurisation partielle (il choisira les programmes qu'il veut sécurisé) ou totale (tous les programmes seront sécurisés). Ensuite tout est transparent pour l'utilisateur: Les programmes ne s'exécuteront sur un système que si leur extension correspond à celle, connue du système d'exploitation. L'utilisateur devra fournir sa clé privée pour toutes nouvelles installations ou nouvelle exécution (ce qui est somme tout assez peu fréquent). Développement et mise en place: Un module d'installation (resp. désinstallation) devra être développé. Module qui peut être incorporé dans le système d'exploitation (espace système) ou exister en tant que programme externe au système d'exploitation (espace utilisateur). Développement d'APIs (application program interface) pour modifier le code du système d'exploitation. Les options disponibles avec le module d'installation seront: 1. Pas de cryptage (système d'exploitation standard). 2. Cryptage total. (système d'exploitation sécurisé) 3. Cryptage partiel (système d'exploitation sécurisé avec choix des programmes à sécuriser). La mise en place de cette invention a été réalisée sous forme de prototype pour le système d'exploitation DOS de Microsoft. Pour les besoins du prototype, le module command.com a été modifié : les extensions des exécutables COM, EXE, BAT ont été changées en respectivement JM1, JM2, JM3. Suite de quoi seuls les fichiers dont les extensions étaient JM1, JM2, JM3 pouvaient être exécutés. Pour une application industrielle, les noms des extensions pourront être cachés. Le module d'installation développé pour la sécurisation et le contrôle du système d'exploitation pourra être intégré au système d'exploitation ou fournit de manière autonome. Cela permettra de sécuriser les systèmes d'exploitation futurs mais aussi les systèmes d'exploitation existants. La figure Fig.1 représente de manière synthétique l'architecture d'un système d'exploitation Il est composé de deux parties principales, l'espace système où s' exécutent les programmes du système et l'espace utilisateur où s'exécutent les programmes ou applications de l'utilisateur. faire reconnaître ses nouvelles extensions par le système d'exploitation. La figure Fig.2 représente l'installation du système d'exploitation, avec l'intégration du module d'installation. Ce module d'installation (resp. désinstallation) va modifier (patcher) le code du système d'exploitation afin de faire reconnaître les différentes extensions pour les fichiers exécutables. La figure Fig.3 représente l'installation d'un logiciel particulier à l'aide du module d'installation. Ce module d'installation (resp. désinstallation) va modifier (patcher) le code du logiciel afin de faire reconnaître les différentes extensions pour les fichiers exécutables. Les figures Fig.4 et Fig.5 représentent l'installation d'un programme particulier 15 dans un système sécurisé. -5- 2874438 REVENDICATIONS 1) Procédé informatique permettant le contrôle et l'interdiction de l'exécution non désirée de programmes informatiques sur un système caractérisé en ce que l'extension valide nécessaire à l'exécution du fichier sur un ordinateur est calculée à l'aide d'une clé privée d'un utilisateur qui n'est connue que par le système d'exploitation de l'utilisateur et ne peut pas être retrouvée sans avoir accès à l'ordinateur rendant ainsi impossible l'exécution du programme de recherche pour avoir accès au nom des fichiers. 2) Procédé informatique selon la revendication 1 permettant le contrôle et l'interdiction de toute installation non désirée de programmes informatiques sur un système caractérisé en ce que l'installation d'un logiciel désirée est effectuée au travers d'un module d'installation spécifique et soumise à un contrôle strict qui modifie les extensions des programmes associés afin qu'ils soient opérationnels sur le système. 3) Procédé informatique selon la revendication 1 ou 2 permettant la personnalisation d'un système pour un particulier ou une entreprise caractérisé en ce que la clé privée nécessaire à la personnalisation du système peut être une clé unique rattachée à un utilisateur unique ou une clé unique rattachée à tous les employés d'une entreprise, les extensions reconnues seront ainsi uniques à un ordinateur ou uniques à tous les ordinateurs de l'entreprise. 4) Procédé informatique selon la revendication 2 caractérisé en ce que les programmes bloqué systématiquement ont la particularité de s'autoinstaller puis s'auto-exécuter. 5) Procédé informatique selon les revendications 1 à 4 permettant à des systèmes d'exploitation s'exécutant à l'intérieur de serveur spécialisé (appliance server) d'être totalement protégé et unique caractérisé en ce que tous les programmes hébergés par les serveurs spécialisés s'exécutent dans un environnement clos; une génération d'une clé privée permet de sécuriser totalement le serveur spécialisé et éviter toute intrusion volontaire ou involontaire. 2874438 -6- 6) Procédé informatique permettant le contrôle et l'interdiction de la modification d'environnement (système d'exploitation et programmes) s'exécutant à l'intérieur de serveur spécialisé selon la revendication 5 (appliance server). 7) Procédé informatique selon les revendications 1 à 6 peut être appliqué aux systèmes d'exploitation caractérisé par un typage/nommage explicite et non ambigu des exécutables, dépendant de l'extension donnée au nom du fichier à exécuter.