FR 2989197 A1 20131011 FR 1253173 A 20120405 PROCEDE DE SECURISATION D'ACCES A UN DISPOSITIF INFORMATIQUE DOMAINE TECHNIQUE DE L'INVENTION La présente invention concerne les procédés de sécurisation d'accès à un dispositif informatique de manière à pouvoir l'intégrer au « cloud computing ». On entend par « cloud computing » un concept visant à déporter sur des serveurs distants des stockages et des traitements informatiques traditionnellement localisés sur des serveurs locaux ou sur un dispositif informatique. Plus précisément selon le NIST (National Institute of Standards and Technology), le cloud computing est l'accès via le réseau, à la demande et en libre-service à des ressources informatiques virtualisées et mutualisées. Ce terme est de « cloud computing » peut être défini par : informatique virtuelle, informatique dans le nuage, informatique en nuage, informatique dématérialisée, ou encore infonuagique. ÉTAT DE LA TECHNIQUE Dans les domaines de la sécurisation d'accès à un dispositif informatique, il est connu dans l'état de l'art de mettre en oeuvre des processus de contrôle de l'utilisateur visant à l'authentifier sur la base d'un couple identifiant utilisateur et mot de passe à partir d'une interface généré par le système d'exploitation exécuté par ledit dispositif. -2- Un inconvénient majeur de ce type de procédé est qu'en mettant en oeuvre un processus de contrôle de l'utilisateur au niveau du système d'exploitation, l'accès au dispositif informatique est rendu vulnérable par des attaques visant par exemple à usurper l'identité de cet utilisateur. La modification physique d'un ordinateur est également un problème bloquant dans un contexte d'utilisateurs nomades. La présente invention vise alors à résoudre les problèmes résultant des inconvénients de l'état de l'art, de manière à pouvoir rendre l'informatique compatible avec les ambitions du « cloud computing » en permettant un contrôle d'intégrité du matériel scellé, du système d'exploitation, et une authentification dé-corrélée et du matériel et de l'utilisateur de manière beaucoup plus satisfaisante avant le démarrage du système d'exploitation principal. DIVULGATION DE L'INVENTION L'invention propose d'améliorer la mise en oeuvre de mécanismes pour renforcer la sécurité liée à l'accès de dispositifs informatiques et réduire alors la probabilité de «réussite» des attaques, par exemple sous la forme d'un logiciel malveillant, ou encore par l'usurpation d'identité ou le backdooring physique. Le tout en permettant une authentification disjointe du matériel et des utilisateurs, compatibles avec la création d'un réseau sécurisé physiquement distribué (« cloud computing »). Dans ce dessein, un aspect de l'invention se rapporte à un procédé de sécurisation d'accès à un dispositif informatique comportant une étape d'établissement d'une -3- connexion sécurisée et d'authentification dudit dispositif informatique et de l'utilisateur de ce dispositif informatique auprès d'un serveur distant dans lequel lesdites étapes d'établissement d'une connexion sécurisée et d'authentification sont effectuées lors de l'exécution d'instructions comprises dans un jeu de données apte à mettre en oeuvre le pré-démarrage du dispositif informatique avant l'exécution du chargeur d'amorçage du système d'exploitation dudit dispositif informatique. Selon des modes de réalisation particuliers : - l'étape d'établissement d'une connexion sécurisée entre ledit dispositif informatique et le serveur distant est réalisée lors de l'exécution des dites instructions visant à chiffrer les données échangées ; - l'étape d'authentification comporte une sous-étape d'échange entre le dispositif informatique et le serveur distant d'éléments d'identification visant à authentifier mutuellement ledit dispositif informatique et le serveur distant. - l'étape d'authentification comporte les sous étapes suivantes : ^ envoi par le dispositif informatique au serveur distant de données d'identification d'un utilisateur dudit dispositif informatique ; ^ exécution du chargeur d'amorçage dudit système d'exploitation lorsque les données d'identification de l'utilisateur sont valides. -4- - le dispositif informatique est éteint par l'exécution d'instructions comprises dans le jeu de données : ^ si l'élément d'identification transmis au serveur distant n'est pas valide, ou ^ si les données d'identification d'un utilisateur dudit dispositif informatique ne sont pas valides. - le procédé comprend une étape de détermination de données d'identification du jeu de données sur la base desquelles le serveur distant déclenche une mise à jour dudit jeu de données apte à mettre en oeuvre le pré-démarrage du dispositif informatique avant l'exécution du chargeur d'amorçage du système d'exploitation dudit dispositif informatique. - le jeu de données apte à mettre en oeuvre le pré-démarrage du dispositif informatique avant l'exécution du chargeur d'amorçage du système d'exploitation dudit dispositif informatique, se rapporte à un code choisi parmi les codes suivants : ^ EFI ; ^ BIOS ; ^ UEFI ; ^ firmware d'un périphérique. MODES DE REALISATION DE L'INVENTION. -5- Dans un mode de réalisation de l'invention le procédé de sécurisation d'accès est mis en oeuvre par un serveur distant et un dispositif informatique. De manière générale, ce dispositif informatique correspond, de manière non limitative, à tous dispositifs comprenant : - des moyens de traitement : au moins un microprocesseur, et des moyens de mémoire (mémoire volatile et/ou non volatile et/ou de masse) ; - des moyens de saisie, tel qu'un clavier et/ou une souris et/ou écran tactile, ou encore à des moyens de commande vocale ; des moyens d'affichage ; - des bus informatique : port USE_ ; - capteur biométrique : empreinte digitale, iris, reconnaissance faciale...; - des moyens de communication ; - des cartes à puces d'identification. Les moyens de communication de ce dispositif se rapportent par exemple aux technologies et/ou normes suivantes : - WI-FI (abréviation de wirelessfidelity) et/ou Wimax, et GPRS (General Packet Radio Service), GSM, UMTS, HSDPA ou IMS (IP MultimediaSubsystem), ou - Ethernet, Ethernet Gigabit. -6- Ce dispositif informatique est dit physiquement scellé c'est-à-dire qu'il n'est pas possible de l'ouvrir sans l'endommager physiquement. Il est par exemple possible qu'il soit rempli hermétiquement d'un gaz tel que de l'argon ou d'un autre gaz inerte non toxique, et de coupler le bouton de d'amorçage du démarrage de ce dispositif à un détecteur chimique vérifiant que la composition du gaz à l'intérieur de l'ordinateur est inchangée. D'autres solutions à base de colles spéciales existent également, où des mesures de conductivité du châssis telles que le fait de dévisser une vis de l'ordinateur le rend inutilisable. Ce dispositif informatique comporte également un moyen de stockage tel qu'un disque dur contenant une partition comportant un système d'exploitation et un chargeur d'amorçage dudit système d'exploitation chiffrés selon un algorithme de chiffrement symétrique de type AES (acronyme de Advanced Encryption Standard qui signifie en français standard de chiffrement avancé). Les moyens de traitement de ce dispositif informatique sont aptes à mettre en oeuvre un code informatique se rapportant à un algorithme correspondant à un programme d'ordinateur, archivé dans les moyens de mémoire du dispositif informatique, comportant des instructions aptes à effectuer les traitements nécessaires pour réaliser les étapes du procédé selon un mode de réalisation de l'invention. Ce code se rapporte par exemple à un jeu de données apte à mettre en oeuvre le pré-démarrage du dispositif informatique. On entend par pré-démarrage, les séquences -7- de démarrage se situant avant l'exécution du chargeur d'amorçage du système d'exploitation (« bootloader »). De manière non limitative, ce jeu de données correspond par exemple au BIOS (acronyme de Basic Input Output System qui signifie en français système élémentaire d'entrée/sortie), ou à EFI (acronyme de Extensible Firmware Interface qui signifie en français micrologicielle extensible unifiée), ou à UEFI (acronyme de Unified Extensible Firmware Interface qui signifie en français Interface micrologicielle extensible unifiée) ou encore à tous firmwares de périphériques dudit dispositif informatique (par exemple ISA, PCI ou PCI Express). On notera que l'on entend dans le présent mode de réalisation par le terme firmware, tout micrologiciel, ou logiciel interne ou logiciel embarqué. Il se rapporte à un ensemble d'instructions et de structures de données qui sont intégrées dans du matériel informatique que ce soit un dispositif informatique ou encore un périphérique de ce dispositif. Dans le cas du BIOS il est contenu dans les moyens de mémoire du dispositif, par exemple une mémoire morte (ROM) de la carte mère de ce dispositif. A titre d'exemple le BIOS permet de réaliser des opérations élémentaires lors de sa mise sous tension du dispositif, comme la reconnaissance du matériel (« BIOS POST »), puis l'exécution du chargeur d'amorçage qui exécute à son tour le système d'exploitation du dispositif. Dans le présent mode de réalisation, lorsque 30 l'utilisateur allume le dispositif informatique, ce -8- dispositif doit d'abord être authentifié auprès d'un serveur distant avant toute autre opération. L'étape d'authentification mise en oeuvre dans le procédé de sécurisation d'accès à ce dispositif informatique est effectuée en « pré-démarrage», c'est-à-dire depuis le BIOS ou l'EFI ou l'UEFI ou encore le firmware d'un périphérique, et avant de passer le contrôle au chargeur d'amorçage du système d'exploitation (en anglais « bootloader »). En effet dans l'état de l'art toute identification de ce type est effectuée depuis le système d'exploitation, c'est à dire bien plus tard. Le procédé de sécurisation d'accès à un dispositif informatique comporte une étape d'établissement d'une connexion sécurisée et une d'authentification du dispositif informatique et de l'utilisateur de ce dispositif informatique auprès d'un serveur distant. Au préalable, le BIOS ou l'EFI ou l'UEFI ou encore le firmware d'un périphérique effectue un checksum ou « somme de contrôle » de l'intégrité physique de tous les firmwares présents : BIOS ou l'EFI ou l'UEFI ou encore le firmware d'un périphérique (cf TrustedComputing le mécanisme est le même). L'étape d'établissement d'une connexion sécurisée entre ledit dispositif informatique et le serveur distant est réalisée lors de l'exécution des dites instructions visant à chiffrer les données échangées. Par exemple, le BIOS ou l'EFI ou l'UEFI ou encore le firmware d'un périphérique comporte un module capable -9- d'effectuer une connexion sécurisée via par exemple Kerberos. Kerberos est un protocole d'authentification réseau qui repose sur un mécanisme de clés secrètes (chiffrement symétrique) et l'utilisation de tickets. Tout autre protocole et algorithme à clef publique/clef privée est également utilisable. L'intégrité du module est assurée par un couple HSM (acronyme de Hardware Security Module signifiant en français Module Matériel de Sécurité et un générateur aléatoire sous forme de périphérique physique (ou leur équivalent sous forme d'un cyptoprocesseur TPM acronyme de Trusted Platform Module et se rapportant à un composant cryptographique matériel). Dans le procédé, l'authentification mutuelle du dispositif informatique avec le serveur distant et celle de l'utilisateur sont réalisées à en utilisant un algorithme asymétrique fort, tel que des paires de clef de type RSA (acronyme de Rivest Shamir Adleman) ou DSA par exemple (depuis TPM/HSM) comme certificat. L'étape d'authentification est mise en oeuvre dès que la connexion entre le dispositif informatique et le serveur distant est établie. Cette étape d'authentification comporte une première sous-étape correspondant à un échange à la fois par le dispositif informatique et serveur distant d'éléments d'identification, telle qu'une clef, visant à authentifier mutuellement ledit dispositif informatique et le serveur distant. Si l'élément d'identification transmis au serveur distant n'est pas valide, le dispositif informatique est éteint -10- par l'exécution d'instructions comprises dans le jeu de données. En effet le serveur distant, s'il ne reconnaît pas la validité de la clef présentée en utilisant sa clef publique, interrompt alors la connexion. Dans ce cas, le BIOS/EFI ou son extension effectue un «shutdown». En pratique, cela suffit à rendre le dispositif informatique complètement inutilisable (le système d'exploitation principal n'est jamais démarré, les données de l'utilisateur jamais déchiffrées). Si l'élément d'identification ici la clef, est valide car l'identifiant du dispositif étant reconnue par le serveur comme valide grâce à sa clef publique, la connexion n'est pas interrompue. Par la suite, le procédé comprend une étape de détermination de données d'identification du jeu de données, par exemple la version du firmware du BIOS, sur la base desquelles le serveur distant déclenche une mise à jour dudit jeu de données, apte à mettre en oeuvre le pré-démarrage du dispositif informatique, c'est-à-dire la mise à jour du BIOS ou l'EFI ou l'UEFI ou encore le firmware d'un périphérique. En d'autres termes, le procédé permet de vérifier si le BIOS ou l'EFI ou l'UEFI ou encore le firmware d'un périphérique doit être flashé ou est bien à jour. Le dispositif informatique réalise alors une somme de contrôle (en anglais « checksum) du BIOS ou l'EFI ou l'UEFI et de tous les firmwares de tous les périphériques et en vérifie l'intégrité (TPM supporte au moins SHAl, on peut faire pareil avec un HSM qui supporte de meilleurs algorithmes tels que SHA256). La version du firmware du BIOS ou l'EFI ou l'UEFI ou encore le firmware d'un périphérique est présente en dur (hardcodée) dans le firmware. Le dispositif informatique envoie la version de son firmware au serveur. Le serveur la compare avec la dernière version disponible. S'il est à jour : rien n'est alors réalisé. Sinon, le serveur distant envoie un mini bootloader (chargeur d'amorçage) capable de flasher le firmware en question ainsi qu'une nouvelle version du firmware via la connexion sécurisée établie. Le dispositif informatique télécharge ce mini bootloader, l'execute, ce qui a pour effet de flasher le firmware. Puis il resigne et reseal le HSM/TPM avec sa nouvelle somme de hachage et effectue un redémarrage à froid (« cold reboot »). Ensuite, le procédé comporte une étape de réalisation d'une somme de contrôle de la partition du moyen de stockage comportant un système d'exploitation et le chargeur d'amorçage dudit système d'exploitation de sorte à obtenir une valeur de hachage sur la base de laquelle le serveur distant déclenche une mise à jour du système d'exploitation. En effet, à partir de cette étape le procédé offre l'avantage de pouvoir vérifier l'intégrité de la partition du moyen de stockage, par exemple un disque dur, et que ce dernier ne nécessite pas de mise à jour. -12- Le dispositif informatique réalise une somme de contrôle (en anglais « checksum) (TPM supporte SHAl, on peut faire pareil avec un HSM + générateur d'entropie) de la partition du disque dur comportant le système d'exploitation et le chargeur d'amorçage dudit système d'exploitation (« bootloader ») chiffré via AES. Les données temporaires du système d'exploitation (/tmp ou /var sous unix/Linux, swap, fichiers temporaires etc ne sont pas placés dans cette partition mais considérés comme faisant partie du « data » de l'utilisateur, donc placés sur le support destiné à cet effet). Il envoie la valeur de hachage au serveur distant via la connexion chiffrée. Le serveur distant compare cette valeur de hachage avec la version à jour du système d'exploitation qu'il maintient. Si la valeur de hachage est différente, alors le serveur distant répond au dispositif informatique par un message contenant une commande de mise à jour (équivalent à « not good ! Download new operating system » en français « Pas bon ! Télécharger nouveau système d'exploitation ») et envoie au dispositif informatique une nouvelle copie du système d'exploitation à jour toujours chiffré via AES. L'intégrité du système d'exploitation et du chargeur d'amorçage est alors assurée. Si la version du système d'exploitation est à jour, le serveur envoie simplement un message de continuation (équivalent à « système d'exploitation à jour, continué »). Dans un mode de réalisation de l'invention, le système d'exploitation n'est pas présent dans les moyens de mémoire du dispositif informatique et est alors téléchargé du serveur distant à chaque démarrage du -13- dispositif informatique. Ceci est particulièrement adapté au cas d'un accès réseau Gigabit et d'un téléchargement du système d'exploitation depuis le réseau local (par exemple SAN de l'anglais Storage Area Network : réseau de stockage, spécialisé permettant de mutualiser des ressources de stockage). Cette étape d'authentification comporte une autre sous-étape correspondant à la réception par le dispositif informatique du serveur distant d'une clef cryptographique symétrique (typiquement AES) susceptible de permettre le déchiffrement d'une partition d'un moyen de stockage dudit dispositif comportant un système d'exploitation et un chargeur d'amorçage dudit système d'exploitation. En effet, le serveur envoie la clef AES au dispositif informatique. Le dispositif informatique peut alors techniquement déchiffrer le système d'exploitation à la volée, mais n'en fait rien tant que l'utilisateur n'est pas authentifié. Cette étape d'authentification comporte également une sous-étape correspondant à l'envoi par le dispositif informatique au serveur distant de données d'identification d'un utilisateur dudit dispositif informatique. A titre d'exemple, l'utilisateur entre ses coordonnées biométriques via le capteur dédié intégré au dispositif informatique (eg : empreinte digitale).Le BIOS ou l'EFI ou l'UEFI ou encore le firmware d'un périphérique établit une connexion via Kerberos par exemple à l'intérieur de la connexion sécurisée vers le serveur distant. -14- Le BIOS ou l'EFI ou l'UEFI ou encore le firmware d'un périphérique déchiffre la partition « data » éventuellement contenue sur clef USB de l'utilisateur (une seconde partition ou un second disque dur intégré à l'ordinateur est également envisageable). Cette étape d'authentification comporte une autre sous-étape correspondant au déchiffrement du contenu de ladite partition à partir de la clef cryptographique (clef privée associée à l'utilisateur, générée à partir de ses données biométriques) et à l'exécution du chargeur d'amorçage dudit système d'exploitation. Ainsi, le BIOS ou l'EFI ou l'UEFI ou encore le firmware d'un périphérique vérifie l'intégrité du système d'exploitation et du chargeur d'amorçage et transfert l'exécution au chargeur d'amorçage, qui lui-même démarre le système d'exploitation. Grâce au chiffrement du système d'exploitation et du chargeur d'amorçage dudit système d'exploitation cela permet de prévenir les attaques consistant à ouvrir le poste client (quitte à le détruire) et à analyser le contenu du système d'exploitation pour y trouver des vulnérabilités. Dans le cadre de l'envoi par le dispositif informatique au serveur distant de données d'identification de l'utilisateur en utilisant le dispositif informatique, ledit dispositif informatique est éteint par l'exécution d'instructions comprises dans le jeu de données si les données d'identification de l'utilisateur dudit dispositif informatique ne sont pas valides. -15- En effet, s'il apparaît lors de l'étape de comparaison des données biométriques de l'utilisateur à la liste des utilisateurs autorisés, que ces données ne sont pas valides alors l'utilisateur n'est pas autorisé et le serveur distant renvoie un message « utilisateur non accepté » au dispositif informatique, qui effectue alors un « shutdown ». On notera qu'il y a un « pass the haste » évident pour authentifier l'utilisateur, mais on est sur une connexion préalablement réalisée et validée. 20 REVENDICATIONS1. Procédé de sécurisation d'accès à un dispositif informatique comportant une étape d'établissement d'une connexion sécurisée et d'authentification dudit dispositif informatique et de l'utilisateur de ce dispositif informatique auprès d'un serveur distant caractérisé en ce que lesdites étapes d'établissement d'une connexion sécurisée et d'authentification sont effectuées lors de l'exécution d'instructions comprises dans un jeu de données apte à mettre en oeuvre le pré-démarrage du dispositif informatique avant l'exécution du chargeur d'amorçage du système d'exploitation dudit dispositif informatique. 2. Procédé selon la revendication précédente, caractérisé en ce que l'étape d'établissement d'une connexion sécurisée entre ledit dispositif informatique et le serveur distant est réalisée lors de l'exécution des dites instructions visant à chiffrer les données échangées. 3. Procédé selon la revendication précédente, caractérisé en ce que l'étape d'authentification comporte une sous- étape d'échange entre le dispositif informatique et le serveur distant d'éléments d'identification visant à authentifier mutuellement ledit dispositif informatique et le serveur distant. 4. Procédé selon la revendication précédente, caractérisé en ce que l'étape d'authentification comporte les sous étapes suivantes :-17- - envoi par le dispositif informatique au serveur distant de données d'identification d'un utilisateur dudit dispositif informatique ; - exécution du chargeur d'amorçage dudit système d'exploitation lorsque les données d'identification de l'utilisateur sont valides. 5. Procédé selon l'une des revendications 3 et 4, caractérisé en ce que le dispositif informatique est éteint par l'exécution d'instructions comprises dans le jeu de données : - si l'élément d'identification transmis au serveur distant n'est pas valide, ou - si les données d'identification d'un utilisateur dudit dispositif informatique ne sont pas valides. 6. Procédé selon l'une des revendications 3, 4 ou 5, caractérisé en ce qu'il comprend une étape de détermination de données d'identification du jeu de données sur la base desquelles le serveur distant déclenche une mise à jour dudit jeu de données apte à mettre en oeuvre le pré-démarrage du dispositif informatique avant l'exécution du chargeur d'amorçage du système d'exploitation dudit dispositif informatique. 7. Procédé selon l'une des revendications précédente, caractérisé en ce que le jeu de données apte à mettre en oeuvre le pré-démarrage du dispositif informatique avant l'exécution du chargeur d'amorçage du système d'exploitation dudit dispositif informatique, se rapporte à un code choisi parmi les codes suivants : - EFI ;-18- - BIOS ; - UEFI ; firmware d'un périphérique. 10 15 20 25 30