Brevet FR2917868A1 — publié le 20081226

SYSTEME ET PROCEDE DE SECURISATION UTILISANT UN DISPOSITIF DE SECURITE La présente invention concerne un système et un procédé de sécurisation utilisant un dispositif de sécurité. Elle concerne également un produit programme d'ordinateur pour mettre en œuvre le procédé. Pour augmenter la sécurité des systèmes d'information, l'authentification des utilisateurs par le couple identifiant / mot de passe, est de plus en plus souvent remplacé par l'utilisation d'un dispositif de sécurité comportant des moyens de cryptographie tel qu'une carte à puce où une clé USB contenant des certificats cryptographiques. Une application utilisant un tel dispositif déclenche systématiquement une étape préalable d'authentification permettant de vérifier que l'utilisateur actuel est l'utilisateur légitime du dispositif de sécurité. Cette étape d'authentification est classiquement réalisée en demandant au moins un secret à l'utilisateur actuel, secret connu seulement de l'utilisateur légitime et du dispositif de sécurité. Ce secret est un mot de passe ou un code d'identification connu dans la littérature sous le nom de Personal Identification Number ou PIN Code . Ainsi, si plusieurs applications utilisent le dispositif de sécurité, l'utilisateur est amené à s'authentifier spécifiquement pour chaque application, multipliant ainsi les saisies du secret et donc le risque d'interception de celui-ci par un tiers. Dans le cadre des applications dont l'accès est contrôlé par un couple identifiant / mot de passe, il existe des procédés et systèmes de mutualisation des mots de passe appelés génériquement Single Sign-On ou SSO (Identification unique). Classiquement, il existe deux types de fonctionnement de SSO. Le premier type consiste en une fonctionnalité centralisée qui intercepte au niveau du ou des serveurs les requêtes d'authentification et les transforme pour éviter à l'utilisateur de s'authentifier plusieurs fois. Le second type consiste en une fonctionnalité qui s'exécute sur le poste de l'utilisateur et qui remplit les champs d'identifiant / mot de passe à la place de l'utilisateur. Ainsi, chaque apparition à l'écran d'une fenêtre de demande d'identifiant / mot de passe est détectée et les champs sont remplis avant que l'utilisateur ait pu apercevoir la fenêtre. A titre d'exemple, le produit CA eTrust Siteminder de la société Computer Associate est du premier type alors que le produit CA eTrust SSO de la même société est du second type. On comprend donc que, pour l'utilisateur, l'utilisation d'un dispositif de sécurité apparaît comme un recul, sur le plan de l'ergonomie, par rapport aux solutions SSO. Il serait donc particulièrement avantageux de développer un système et un procédé d'authentification qui combine l'avantage d'une identification unique amenée par le SSO avec l'augmentation de la sécurité apportée par le dispositif de sécurité. Ainsi, selon un aspect de l'invention, un système de sécurisation d'une application de traitement de données comporte : des premie=rs moyens d'interface avec un dispositif de sécurité ; - des deuxièmes moyens d'interface avec l'utilisateur ; des troisièmes moyens d'interface avec l'application adaptés pour intercepter toute requête d'utilisation dudit dispositif de sécurité en provenance de ladite application à destination dudit dispositif de sécurité ; - des moyens d'authentification connectés aux premiers et deuxièmes moyens d'interface, adaptés pour authentifier l'utilisateur comme utilisateur légitime du dispositif de sécurité par demande d'au moins un secret ; - des moyens de stockage du résultat de l'authentification ; - des moyens de validation connectés aux moyens de stockage et aux premiers et troisièmes moyens d'interface, adaptés pour autoriser toute requête en provenance de l'application, à destination dudit dispositif de sécurité si et seulement si, l'utilisateur est authentifié. Selon d'autres caractéristiques et modes de réalisation particulière : les moyens de validation sont adaptés pour déclencher les moyens d'authentification si l'utilisateur n'est pas authentifié ; le système comporte en outre des moyens de vérification de l'appartenance de ladite application à une liste d'applications autorisées préalablement stockée dans les moyens de stockage ; si l'application n'appartient pas à la liste d'applications autorisées, les deuxièmes moyens d'interface sont adaptés pour demander l'accord de l'utilisateur pour que les moyens de validation autorisent l'application à communiquer avec ledit dispositif de sécurité ; les moyens d'authentification sont adaptés pour demander une authentification à l'utilisateur selon une périodicité prédéterminée ; le système comporte en outre, des moyens de surveillance d'accès au dispositif de sécurité, adaptés pour détecter et bloquer toute tentative d'accès au dispositif de sécurité par une application n'utilisant pas les premiers et/ou les troisièmes moyens d'interface. Selon un autre aspect de l'invention, un procédé de sécurisation d'une application utilisant un dispositif de sécurité pour identifier un utilisateur, le dispositif de sécurité authentifiant l'utilisateur au moyen d'au moins un secret, comporte les étapes de : interception d'une requête d'utilisation adressée par ladite application audit dispositif de sécurité, vérification que l'utilisateur a été authentifié par le dispositif de sécurité, si l'utilisateur n'est pas authentifié, rejet de la requête, si l'utilisateur a été authentifié, transmission de la requête audit dispositif de sécurité. Selon des modes de réalisation particuliers de ce procédé : suite à l'interception de la requête de l'application, une étape de vérification de l'appartenance de ladite application à une liste d'applications autorisées, est effectuée, de sorte que seules les applications autorisées ont accès au dispositif de sécurité, si l'application n'appartient pas à la liste d'applications autorisées, il comporte une étape d'autorisation de ladite application par ledit utilisateur. Selon un autre aspect de l'invention, un produit programme d'ordinateur comprend des instructions de code de programme pour l'exécution des étapes du procédé précédent lorsque ledit programme est exécuté sur un ordinateur. L'invention sera mieux comprise à la lecture de la description qui suit, faite uniquement à titre d'exemple et en référence aux figures en annexe dans lesquelles : la figure 1 est une vue schématique d'un système d'authentification selon un mode de réalisation de l'invention la figure 2 est un ordinogramme d'un procédé d'authentification selon un mode de réalisation de l'invention - la figure 3 est un ordinogramme détaillé d'un procédé d'accès d'une application à un dispositif de sécurité selon un mode de réalisation de l'invention ; la figure 4 est une vue schématique d'une architecture logicielle selon un mode de réalisation de l'invention la figure 5 est une vue schématique du module serveur de l'architecture de la figure 4 ; la figure 6 est une vue schématique du module client de l'architecture de la figure 4 ; et la figure 7 est une vue schématique du module gestion > de l'architecture de la figure 4. En référence à la figure 1, un système 1 de sécurisation comporte des premiers moyens d'interface 2 avec un dispositif 3 de sécurité tel que, par exemple, une carte à puce ou une clé USB adaptée pour traiter des fonctions cryptographiques. Le système 1 de sécurisation comporte également des deuxièmes moyens 4 d'interface avec un utilisateur 5. Selon le découpage architectural choisi, ces deux interfaces sont des composants purement logiciels tels que des bibliothèques de fonction et la connexion matérielle au dispositif de sécurité ainsi que l'interface homme / machine sont alors traitées par la station de travail sous-jacente. Ils peuvent également intégrer tout ou partie du matériel d'interface. Par exemple, pour des raisons de sécurité, le système de sécurisation est intégrable dans un périphérique d'ordinateur comportant un lecteur de carte à puce. Ce système 1 de sécurisation comporte des troisièmes moyens 6 d'interface avec une ou plusieurs applications. Ces troisièmes moyens 6 d'interface se présentent, par exemple, sous forme d'une interface de 15 programmation. Le système 1 de sécurisation comporte également des moyens 8 d'authentification. Les moyens 8 d'authentification sont connectés aux premiers et seconds moyens 2, 4 d'interface de façon à pouvoir authentifier 20 l'utilisateur 5. Ces moyens 8 d'authentification stockent le résultat de l'authentification dans des moyens 10 de stockage. Ces moyens 10 de stockage sont réalisés, par exemple, sous forme d'un champ adressable de mémoire vive 25 ou d'un fichier permanent sur disque dur. Le système 1 de sécurisation comporte des moyens 12 de validation connectés aux moyens 10 de stockage et aux troisièmes moyens 6 d'interface. Les moyens 12 de validation comportent en particulier des moyens 14 de 30 vérification que l'application fait partie d'une liste d'applications autorisées. De plus, le système 1 de sécurisation comporte des moyens 16 de surveillance de la connexion du dispositif 3 de sécurité pour surveiller qu'aucune 35 application ne puisse accéder au dispositif 3 de sécurité sans utiliser le système 1 de sécurisation. Le fonctionnement du système 1 de sécurisation est le suivant, figure 2. Dans une étape préliminaire 20 d'authentification, par exemple lors de l'introduction du dispositif de sécurité, les moyens 8 d'authentification font présenter à l'utilisateur une fenêtre de demande de secret à saisir par l'utilisateur. A réception de ce secret, ils le font valider par le dispositif de sécurité, ce qui assure l'authentification de l'utilisateur. Ce résultat est stocké, à l'étape 22, dans les moyens 10 de stockage. Dans une étape 24, une application effectue une requête auprès du dispositif de sécurité. Cette requête est, par exemple, une requête d'authentification. A l'étape 26, les moyens 14 comparent l'application avec la liste d'applications autorisées stockées dans les moyens 10 de stockage. Si l'application fait partie de cette liste, les moyens 12 de validation vérifient à l'étape 28 que l'utilisateur a été authentifié en consultant les moyens 10 de stockage. Si l'utilisateur est authentifié, les moyens 12 de validation autorisent, étape 30, l'application à accéder au dispositif de sécurité 3. Il est à noter que si la requête est une requête d'authentification, les moyens 12 de validation transmettent directement l'information à l'application de façon à ce qu'il ne soit pas demandé à l'utilisateur d'entrer son secret une nouvelle fois. Si l'utilisateur ne s'est pas authentifié correctement; les moyens 12 de validation transmettent, étape 32, une réponse d'échec à l'application. En référence à la figure 3, le mode de fonctionnement lorsque l'application ne fait pas partie de la liste des applications autorisées va être détaillé. Après l'étape 24 de demande d'accès au dispositif de sécurité, le système vérifie, étape 40, que l'application lui est connue. Si elle est connue, il vérifie, étape 42, qu'elle est autorisée et si la réponse est positive, il donne accès au dispositif de sécurité, à l'étape 44. Par contre, si la réponse est négative, l'application est rejetée à l'étape 46. Si l'application est inconnue, le système vérifie, à l'étape 48, sa politique par défaut. Typiquement cette politique par défaut est de deux types, soit elle consiste à refuser systématiquement l'accès à une application inconnue, et alors l'application est rejetée à l'étape 46 ; soit elle consiste à demander, étape 50, à l'utilisateur si l'utilisateur accepte, ou rejette, l'application, étape 51. Il choisit de le faire définitivement ou seulement pour la session en cours, étapes 52, 54. Si la décision est définitive, celle-ci est stockée, étapes 56, 58, dans les moyens de stockage. Puis, si l'application a été acceptée, le système donne accès au dispositif de sécurité, étape 44, et sinon il rejette l'application, étape 46. Une architecture logicielle particulière permettant aux applications d'utiliser le système de sécurisation de façon transparente va maintenant être décrite en référence à la figure 4. Cette architecture utilise des interfaces de programmaticn standardisées telles que la norme PKCS#11 et permet avantageusement d'évoluer vers un serveur cryptographique centralisé. Dans cette architecture, les applications 60, 62 35 s'interfacent au module client 64 par la norme d'interface PKCS#11. Le module client 64 communique avec un module serveur 66 chargé de la liaison avec le dispositif de sécurité 68. Un module gestion 70 permet de configurer le module serveur 66. Ce dernier stocke ses paramètres de configuration ainsi que, par exemple, les résultats de l'authentification, dans un fichier 72. Le module serveur 66 est le composant 10 central du système. Son architecture interne est décrite en référence à la figure 5. Il comporte une couche de transport 80 capable de dialoguer selon des normes de transport de données telles que SSL, HTTP, pour intégrer le composant dans un 15 large choix d'architectures et de produits. Il supporte également plusieurs modèles 82 de programmation tels que PKCS#11, le Microsoft Cryptographie Service Provider (HS CSP) , NGSCB ou autres. 20 Il comporte également des modules 84 d'audit et de sécurisation. Ce composant est responsable de demander à l'utilisa:eur le secret et de le protéger. Il ne communique jamais ce secret à d'autres composants ou applications. Il est également le seul composant à 25 dialoguer avec le dispositif de sécurité. Le module serveur 66 est également en charge de la configuration et est le seul autorisé à modifier les paramètres de configuration. Ainsi, il signe le fichier de configuration pour garantir son intégrité. 30 Le module client 64, figure 6, se présente sous la forme d'une bibliothèque dynamique qui assure l'interface avec l'application. Elle implémente une interface standardisée, telle que PKCS#11. Les applications 60, 62 utilisent le même protocole 35 standardisé pour communiquer avec le module client 64. Il est à noter que le module client 64 peut implémenter plusieurs protocoles d'interface standardisés permettant ainsi à des applications diverses d'accéder au système de sécurisation. Les applications 60, 62 font exécuter des opérations cryptographiques à travers l'interface normalisée proposée par le module client 64. Le module client 64 relaie alors les opérations demandées au module serveur 66 qui réalise les opérations avec l'aide du dispositif de sécurité. Il est remarquable de noter que l'interface normalisée proposée par le module client 64 n'a pas besoin d'utiliser la même norme que le module serveur 66 avec le dispositif de sécurité. Le module client 64 comporte donc une couche de transport 90 pour communiquer avec le module serveur 66 et différentes interfaces 92 pour communiquer avec les applications, ainsi que des fonctions 94 de sécurité et d'audit. Le module gestion 70 comporte, figure 7, également une couche transport 100 et des interfaces 102 pour gérer l'interface utilisateur permettant de configurer et surveiller le système. Il reçoit la configuration du module serveur 66 et lui retourne les modifications de configuration effectuées par l'utilisateur, ou l'administrateur. Il est à noter que cette architecture modulaire permet avantageusement de répartir ces différents modules sur des calculateurs différents en utilisant des protocoles de transport sécurisés tels que SSL entre les différents modules. Pour des raisons de sécurité, seul le module serveur a besoin d'être situé au plus près du dispositif de sécurité. On a ainsi décrit un système et un procédé 35 d'authentification qui réalise une fonction de type SSO pour des applications utilisant des dispositifs de sécurité. Ainsi, cela améliore l'ergonomie de l'utilisateur en minimisant le nombre de fois où celui-ci doit entrer son secret. Cela augmente également la sécurité en centralisant la gestion de secret dans un module de confiance et en interdisant sa divulgation à des applications qui pourraient être malveillantes. On comprend que de nombreuses variantes sont 10 possibles. Par exemple, l'authentification de l'utilisateur peut s'effectuer lorsqu'une première application demande l'accès au dispositif de sécurité, ou bien lors de l'enfichage du dispositif de sécurité dans la station de 15 travail De même, pour renforcer la sécurité, le système et le procédé d'authentification peuvent demander à l'utilisateur d'entrer son secret à des moments prédéterminés, par exemple, toutes les heures. Ces 20 moments sont gérés et modifiés par l'administrateur du système. A l'inverse, la vérification que l'application fait partie d'une liste d'applications autorisées peut être supprimée si l'environnement ou les conditions de 25 sécurité sont réduites. Dans une autre variante, le système comporte, figure 1, des moyens de surveillance 16 du dispositif de sécurité. Ces moyens 16 de surveillance empêchent toute application d'accéder au dispositif de sécurité sans 30 passer par le système d'authentification. Le stockage de l'authentification est également réalisable de différentes façons. Dans un premier mode, le secret est stocké et chaque fois qu'une authentification est demandée par une 35 application, le secret est présenté au dispositif de sécurité. Dans un second mode, le résultat de l'authentification est stocké et présenté aux applications demandant une authentification. Le procédé d'authentification est réalisable sous forme de logiciel, c'est-à-dire d'un produit programme d'ordinateur réalisant le procédé lorsqu'il est exécuté sur un ordinateur. Il peut être également réalisé sous forme de matériel, par exemple en codant un réseau de portes logiques de type FPGA, ou sous une forme mixte d'un boitier programmé tel que, par exemple, un terminal de paiement, cette dernière forme d'implémentation ayant l'avantage de fournir un environnement totalement contrôlable et donc de renforcer la sécurité de l'ensemble. REVENDICATIONS 1. Système (1) de sécurisation d'une application de traitement de données, ledit système comportant . des premiers moyens (2) d'interface avec un dispositif (3) de sécurité ; des deuxièmes moyens (4) d'interface avec un utilisateur ; des troisièmes moyens (6) d'interface avec l'application adaptés pour intercepter toute requête d'utilisation dudit dispositif de sécurité en provenance de ladite application à destination dudit dispositif de sécurité ; des moyens (8) d'authentification connectés aux premiers et deuxièmes moyens d'interface, adaptés pour authentifier l'utilisateur comme utilisateur légitime du dispositif de sécurité par demande d'au moins un secret ; des moyens (10) de stockage du résultat de l'authentification ; des moyens (12) de validation connectés aux moyens de stockage et aux premiers et troisièmes moyens d'interface, adaptés pour autoriser toute requête en provenance de l'application, à destination dudit dispositif de sécurité si et seulement si, l'utilisateur est authentifié. 2. Système de sécurisation selon la revendication :L, caractérisé en ce que les moyens de validation sont adaptés pour déclencher les moyens d'authentification si l'utilisateur n'est pas authentifié. 3. Système de sécurisation selon l'une des revendications 1 ou 2, caractérisé en ce qu'il comporte en outre des moyens de vérification de l'appartenance de ladite application à une liste d'applications autorisées préalablement stockée dans les moyens de stockage. 4. Système de sécurisation selon la revendication 3, caractérisé en ce que, si l'application n'appartient pas à la liste d'applications autorisées, les deuxièmes moyens d'interface sont adaptés pour demander l'accord de l'utilisateur pour que les moyens de validation autorisent l'application à communiquer avec ledit dispositif de sécurité. 5. Système de sécurisation selon l'une quelconque des revendications précédentes, caractérisé en ce que les moyens d'authentification sont adaptés pour demander une authentification à l'utilisateur selon une périodicité prédéterminée. 6. Système de sécurisation selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comporte en outre, des moyens de surveillance d'accès au dispositif de sécurité, adaptés pour détecter et bloquer toute tentative d'accès au dispositif de sécurité par une application sans utiliser les premiers et/ou les troisièmes moyens d'interface. 7. Procédé de sécurisation d'une application utilisant un dispositif de sécurité pour identifier un utilisateur, ledit dispositif de sécurité authentifiant l'utilisateur au moyen d'au moins un secret, caractérisé en ce qu'il comporte les étapes de : - interception (24) d'une requête d'utilisation adressée par ladite application audit dispositif de sécurité, - vérification (28) que l'utilisateur a été authentifié par le dispositif de sécurité, si l'utilisateur n'est pas authentifié, rejet de larequête, si l'utilisateur a été authentifié, transmission (30) de la requête audit dispositif de sécurité. 8. Procédé de sécurisation selon la revendication 7, caractérisé en ce que, suite à l'interception de la requête de l'application, une étape de vérification de l'appartenance de ladite application à une liste d'applications autorisées est effectuée, de sorte que seules les applications autorisées ont accès au dispositif de sécurité. 9. Procédé de sécurisation selon la revendication 8, caractérisé en ce que, si l'application n'appartient pas à la liste d'applications autorisées, il comporte une étape d'autorisation de ladite application par ledit utilisateur. 10. Produit programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé selon les revendications 1 à 9 lorsque ledit programme est exécuté sur un ordinateur.20