FR 2886748 A1 20061208 FR 0505608 A 20050602 DISPOSITIF DE STOCKAGE DE DONNEES SECURISE La présente invention concerne le domaine du stockage numérique de données et concerne plus particulièrement un dispositif de stockage de données portable, comprenant une mémoire de stockage des données, un contrôleur pour la gestion de la mémoire et des moyens de connexion avec un dispositif hôte pour l'accès à la mémoire. De tels dispositifs, par exemple les clés mémoires USB (pour Universal Serial Bus ), de part leur portabilité et les capacités de stockage qu'elles offrent, voient leur usage de plus en plus répandu. Par ailleurs, dans de nombreux contextes, il s'avère nécessaire d'accompagner le stockage de données de solutions sécurisées susceptibles de garantir aux utilisateurs la préservation de la confidentialité et de l'intégrité des données stockées. Aussi, lorsqu'on est justement amené à traiter des données à caractère confidentiel et à les stocker sur une clé mémoire USB par l'intermédiaire d'un dispositif hôte, typiquement un ordinateur, les solutions utilisées ayant pour objet de garantir la sécurité du stockage mettent classiquement en oeuvre des systèmes de chiffrement du contenu de la clé mémoire. Ces systèmes consistent en des logiciels de chiffrement de données, basé sur des algorithmes cryptographiques symétriques ou asymétriques, qui sont installés sur le dispositif hôte pour chiffrer les données préalablement à leur stockage sous forme chiffrée sur la clé mémoire. 2886748 2 Or, l'intérêt des clés mémoires étant de stocker et de transporter des données, dans le but de les transférer facilement d'un ordinateur à un autre, ces solutions ne procurent pas une grande souplesse d'utilisation aux utilisateurs. En effet, ces systèmes nécessitent alors d'installer un pilote logiciel adéquat sur le dispositif hôte auquel la clé mémoire va être connectée, capable de déchiffrer le contenu de la clé pour pouvoir le transférer en clair sur le dispositif hôte. Par ailleurs, ce mode de fonctionnement ne va pas sans créer des failles de sécurité. En effet, pour garantir une bonne fiabilité, l'utilisateur doit avoir confiance dans le dispositif hôte auquel la clé mémoire est connectée. En effet, si le dispositif hôte comporte un logiciel de type espion, lorsque la clé est connectée au dispositif, par exemple pour déchiffrer son contenu, ce dernier va être capable d'intercepter le mot de passe rentré sur le dispositif hôte pour déchiffrer les données. Auquel cas, si la clé est à nouveau connectée à ce dispositif hôte dans un but frauduleux, la confidentialité des données sur la clé n'est plus garantie puisque le mot de passe pour déchiffrer les données aura préalablement été capté. Aussi, un utilisateur malveillant en possession de la clé pourra avoir accès de cette manière au contenu de la clé. Actuellement, pour sécuriser le contenu d'une clé mémoire, il n'existe pas de solutions autres qu'installer un logiciel de chiffrement sur le dispositif hôte hébergeant la clé mémoire, qui va 2886748 3 s'occuper de chiffrer et déchiffrer les données de la clé, avec les inconvénients qu'un tel système occasionne. La présente invention a donc pour but de remédier à ces inconvénients, en proposant une solution permettant de se passer de la dépendance de la clé mémoire au dispositif hôte pour assurer la confidentialité et l'intégrité des données mémorisées sur la clé. Avec cet objectif en vue, l'invention a pour objet un dispositif de stockage de données portable comprenant une mémoire de stockage des données, un contrôleur de mémoire et des moyens de connexion avec un dispositif hôte pour l'accès à la mémoire, ledit dispositif de stockage étant caractérisé en ce qu'il comprend des moyens de sécurisation embarqués d'au moins une partie des données stockées, lesdits moyens de sécurisation permettant de sécuriser l'accès aux données d'une manière autonome vis-à-vis du dispositif hôte. Selon un mode de réalisation, les moyens de sécurisation des données comprennent des moyens d'entrée d'au moins une clé secrète coopérant avec le contrôleur de mémoire, ledit contrôleur comprenant des moyens de traitement pour chiffrer les données en utilisant ladite clé secrète lors d'une phase d'écriture de données à stocker dans la mémoire et pour déchiffrer lesdites données en utilisant ladite clé secrète lors d'une phase d'accès aux dites données stockées. 2886748 4 De préférence, les moyens de traitement comprennent des moyens de brouillage consistant à réorganiser le stockage en mémoire des données chiffrées selon une loi prédéfinie. De préférence, les moyens de traitement sont prévus pour coopérer avec une pluralité de clés secrètes, chaque clé secrète fournie par l'intermédiaire des moyens d'entrée autorisant un accès à un ensemble distinct de données stockées dans la mémoire. Selon un mode de réalisation, les moyens d'entrée comprennent au moins une roue codeuse, chacune des roues codeuses fournissant un code binaire sur au moins un bit permettant de générer la clé secrète. Selon un autre mode de réalisation, les moyens d'entrée comprennent un clavier pour entrer un code correspondant à la clé secrète mise en oeuvre pour le chiffrement et le déchiffrement des données. De préférence, les moyens de traitement mettent en oeuvre un algorithme de chiffrement de type symétrique, par exemple de type AES ou DES. D'autres caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture de la description suivante donnée à titre d'exemple illustratif et non limitatif et faite en référence aux figures annexées dans lesquelles: -la figure 1 illustre l'architecture générale du dispositif de stockage selon l'invention, et la figure 2 illustre un mode de réalisation de moyens d'entrée d'une clé secrète, intégré au dispositif de stockage selon l'invention. 2886748 5 La présente invention concerne donc un dispositif de stockage de données portable, tel qu'une clé mémoire USB comme il sera plus particulièrement fait état dans la suite de la description, sans pour autant présenter un quelconque caractère limitatif. L'invention propose un tel dispositif de stockage complètement autonome vis-à-vis du dispositif hôte auquel il est destiné à être connecté, en ce qui concerne la sécurisation de son contenu. Pour ce faire, des moyens de sécurisation des données vont être embarqués sur le dispositif de stockage selon l'invention. La figure 1 illustre schématiquement un dispositif de stockage de données 10 constitué par une clé mémoire USB. La clé mémoire 10 comprend classiquement une mémoire 20 de stockage des données connectée à un contrôleur 30 de mémoire par l'intermédiaire du bus mémoire 40, et des moyens de connexion avec un dispositif hôte pour l'accès à la mémoire, sous la forme d'une interface USB 40 connectée au contrôleur 30 par l'intermédiaire d'une ligne USB 50. La ligne USB permet d'une part l'alimentation du contrôleur, lorsque la clé mémoire est connectée au dispositif hôte, de même que le transfert de données entre le dispositif hôte et la clé mémoire via l'interface USB 40. La clé mémoire selon l'invention est en outre dotée de moyens autonomes de sécurisation de son contenu, comprenant des moyens 60 permettant d'entrer directement sur la clé mémoire elle-même au moins une clé secrète, prévus pour coopérer avec le contrôleur de mémoire 30. Plus précisément, la clé secrète ainsi 2886748 6 rentrée sur la clé mémoire par l'intermédiaire des moyens d'entrée 60, est envoyée à destination de moyens de traitement spécifiques 70 du contrôleur de mémoire. Des moyens de validation 80 de la clé secrète, reliés au contrôleur de mémoire, permettent d'indiquer au contrôleur la réception de la clé pour activer les moyens de traitement. Ces moyens de validation peuvent par exemple se présenter sous la forme d'un bouton de validation accessible à l'utilisateur à la surface de la clé mémoire. Les moyens de traitement 70 sont prévus selon l'invention pour appliquer un calcul de chiffrement et de déchiffrement des données en utilisant la clé secrète. Ils mettent par exemple en oeuvre un algorithme de chiffrement symétrique de type AES (pour Advanced Encryption Standard ) ou DES (pour Data Encryption Standard ), permettant de chiffrer les données reçues en utilisant la clé secrète lors d'une phase d'écriture de données à stocker dans la mémoire et de déchiffrer lesdites données en utilisant la clé secrète lors d'une phase d'accès aux données ainsi stockées dans la mémoire. Selon une variante, on pourrait également envisager que les moyens de traitement 70 mettent en oeuvre un algorithme de chiffrement de type asymétrique, fonctionnant sur la base d'un couple clé publique/clé privée, lesquelles clés seraient alors fournies aux moyens de traitement 70 de la même manière qu'expliqué précédemment par l'intermédiaire des moyens d'entrée 60 de la clé mémoire, pour respectivement chiffrer et 2886748 7 déchiffrer les données de la clé mémoire afin de fournir la sécurité. Seulement une partie de la mémoire de stockage 20 de la clé mémoire pourrait être sécurisée selon les principes décrits ci-dessus. De cette manière, on conserve la possibilité de stocker des données non confidentielles de façon classique dans un espace de la mémoire qui seraient donc non sécurisée par les moyens de traitement de l'invention. Pour renforcer encore davantage la sécurisation des données sur la clé mémoire, on peut envisager un mode de réalisation où les moyens de traitement 70 comprennent en plus des moyens de brouillage consistant à réorganiser le stockage en mémoire des données chiffrées selon une loi prédéfinie. De tels moyens, dénommés scrambling selon la terminologie anglo-saxonne, permettent avantageusement de stocker les données en mémoire de façon non contiguës, rendant ainsi très difficiles d'éventuelles attaques. La figure 2 illustre un exemple de réalisation des moyens 60 d'entrée de la clé secrète directement sur la clé mémoire 10. Selon cet exemple de réalisation, les moyens d'entrée 60 comprennent trois roues codeuse, respectivement R1, R2 et R3, chacune des roues codeuses fournissant un code binaire par exemple sur 4 bits permettant de générer la clé secrète. Le code binaire fourni par chaque roue codeuse est différent pour chaque chiffre, par exemple: 0 -> 0000 1 -> 0001 2 -> 0010 2886748 8 3 > 0011 4 -> 0100 -> 0101 6 -> 0110 7 -> 0111 8 -> 1000 9 -> 1001 Selon cet exemple de réalisation, le contrôleur de mémoire 30, une fois alimenté, se met alors en attente de validation d'une clé secrète via le bouton de validation 80. Il lit alors le code configuré par la position des trois roues codeuses. Ce code est de préférence stocké dans une mémoire tampon utilisée pour le stockage temporaire de données lors du transfert de ce code des moyens d'entrée 60 vers le contrôleur 30. Le code fourni par les roues codeuses est alors utilisé comme clé secrète pour l'algorithme de chiffrement/déchiffrement mis en oeuvre par les moyens de traitement 70 de la clé mémoire. Ce qui précède est donné à simple titre d'exemple. On peut envisager l'utilisation de plus ou moins de roues codeuses, chacune fournissant un code binaire sur plus ou moins de bits, selon le niveau de sécurité que l'on cherche à atteindre. Selon cet exemple, une roue codeuse codant 4 bits d'information, avec trois roues on n'obtient qu'une clé de longueur égale à 12 bits, ce qui représente une résistance cryptographique limitée. Selon un mode de réalisation, la clé secrète pourrait être entrée par blocs de trois chiffres, le bouton de validation étant alors activé entre chaque bloc, de manière à rentrer 2886748 9 une clé de longueur infinie. On pourra toutefois se contenter d'une clé d'une longueur suffisante pour assurer une sécurité correcte tout en restant mémorisable par l'utilisateur. Ainsi, dès la mise sous tension, le premier bloc rentré est considéré comme la première partie de la clé si celle-ci en comporte plusieurs. En cas d'erreur lors de la saisie de la clé secrète, il faut remettre la clé mémoire sous tension pour pouvoir ressaisir la clé secrète entière. On finit la saisie de la clé secrète en appuyant par exemple deux fois sur le bouton de validation. Le bouton de validation 80, en permettant de valider le code entré par l'utilisateur une fois la clé mémoire connectée au dispositif hôte, autorise par ailleurs l'utilisateur à tourner les roues codeuses une fois la clé secrète entièrement entrée et validée, de façon que la position des roues ainsi modifiée ne permette pas de révéler le code correspondant à la clé secrète pour l'accès aux données dans la mémoire. On empêche de cette manière un éventuel attaquant de s'emparer du code. Bien entendu, tout autre moyen permettant d'entrer la clé secrète directement sur le dispositif de stockage mémoire pourrait être envisagé sans pour autant sortir du cadre de la présente invention. Ainsi, à titre d'exemple, on pourrait envisager d'utiliser un clavier intégré à la clé mémoire en tant que moyen d'entrée de la clé secrète, permettant d'entrer un code correspondant à la clé secrète mise en uvre par l'algorithme pour le chiffrement et le déchiffrement des données, ou encore un jeu de curseurs. 2886748 10 Avantageusement, on peut prévoir que les moyens de traitement 70 coopèrent avec une pluralité de clés secrètes, chaque clé secrète fournie par l'intermédiaire des moyens d'entrée 60 autorisant alors un accès à un ensemble distinct de données stockées dans la mémoire. De cette maniere, plusieurs utilisateurs différents, disposant chacun d'une clé secrète qui lui est attribuée, peuvent utiliser le dispositif de stockage mémoire en accédant à des zones différentes de la mémoire, chacune accédée par l'intermédiaire de la clé secrète. Ainsi, les données confidentielles de chaque utilisateur sont sécurisées sur le dispositif de stockage vis-à-vis des autres utilisateurs. Le dispositif de stockage de données portable selon l'invention, en embarquant tous les moyens de sécurisation sur le dispositif de stockage lui-même, permet donc de sécuriser le contenu de la mémoire sans nécessiter la coopération du dispositif hôte, contrairement aux solutions de l'art antérieur où la sécurité des données dépend toujours de celui-ci. Le processus de sécurisation des données sur le dispositif de stockage de données est ainsi rendu totalement transparent pour le dispositif hôte. 2886748 11 REVENDICATIONS 1. Dispositif (10) de stockage de données portable comprenant une mémoire (20) de stockage des données, un contrôleur (30) de mémoire et des moyens (40, 50) de connexion avec un dispositif hôte pour l'accès à la mémoire, ledit dispositif de stockage étant caractérisé en ce qu'il comprend des moyens (60, 70) de sécurisation embarqués d'au moins une partie des données stockées, lesdits moyens de sécurisation permettant de sécuriser l'accès aux données d'une manière autonome vis-à-vis du dispositif hôte. 2. Dispositif de stockage selon la revendication 1, caractérisé en ce que les moyens de sécurisation des données comprennent des moyens (60) d'entrée d'au moins une clé secrète coopérant avec le contrôleur de mémoire (30), ledit contrôleur comprenant des moyens de traitement (70) pour chiffrer les données en utilisant ladite clé secrète lors d'une phase d'écriture de données à stocker dans la mémoire et pour déchiffrer lesdites données en utilisant ladite clé secrète lors d'une phase d'accès aux dites données stockées. 3. Dispositif de stockage selon la revendication 2, caractérisé en ce que les moyens de traitement (70) comprennent des moyens de brouillage consistant à réorganiser le stockage en mémoire des données chiffrées selon une loi prédéfinie. 4. Dispositif de stockage selon la revendication 2 ou 3, caractérisé en ce que les moyens de traitement (70) sont prévus pour coopérer avec une pluralité de clés secrètes, chaque clé secrète fournie par l'intermédiaire des moyens d'entrée autorisant un accès à un ensemble distinct de données stockées dans la mémoire. 5. Dispositif de stockage selon l'une quelconque des revendications 2 à 4, caractérisé en ce que les moyens d'entrée (60) comprennent au moins une roue codeuse (R1, R2, R3), chacune des roues codeuses fournissant un code binaire sur au moins un bit permettant de générer la clé secrète. 6. Dispositif de stockage selon l'une quelconque des revendications 2 à 4, caractérisé en ce que les moyens d'entrée (60) comprennent un clavier pour entrer un code correspondant à la clé secrète mise en oeuvre pour le chiffrement et le déchiffrement des données. 7. Dispositif de stockage selon l'une quelconque des revendications 2 à 6, caractérisé en ce que les moyens de traitement (70) mettent en oeuvre un algorithme de chiffrement de type symétrique. 8. Dispositif de stockage selon la revendication 7, caractérisé en ce que l'algorithme de chiffrement est de type AES ou DES. 2886748 13 9. Dispositif de stockage selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il s'agit d'une clé mémoire USB.