Brevet FR2925799A1 — publié le 20090626

PROCEDE DE SAISIE D'UN IDENTIFIANT, DISPOSITIF DE SAISIE ET PROGRAMME D'ORDINATEUR ASSOCIES, ET DISPOSITIF DE TRAITEMENT DE DONNEES COMPRENANT UN DISPOSITIF DE SAISIE L'invention concerne un procédé, et un dispositif associé, de saisie d'un identifiant comprenant au moins un caractère, le procédé comprenant une étape de saisie d'un caractère, répétée jusqu'à ce que tous les caractères de l'identifiant aient été saisis, l'étape de saisie d'un caractère comprenant les sous-étapes suivantes, consistant à : • sélectionner un caractère, par déplacement dans un ensemble de caractères à partir d'un caractère initial, • valider le caractère sélectionné. Description de la technique antérieure Un procédé de ce type connu est par exemple le procédé implémenté dans le dispositif de génération de clés cryptographiques développé par la société BULL SAS et commercialisé sous le nom de clé Trusway RCI. Une telle clé RCI permet à un utilisateur autorisé de générer en interne et de stocker en interne un nombre important de clés cryptographiques, par exemple pour sécuriser une partition de disque dur, réaliser des signatures électroniques, authentifier un utilisateur, etc. Un premier élément de sécurité de la clé RCI est sa une grande puissance de calcul qui lui permet d'effectuer toutes les opérations de génération de clés cryptographiques en interne et non plus par le biais d'un logiciel externe. Un deuxième élément de sécurité de la clé RCI est la nécessité pour un utilisateur de s'identifier avant d'être autorisé (ou non) à utiliser la clé RCI.30 Pour la saisie de l'identifiant, la clé RCI comprend un écran d'affichage et une molette. L'écran d'affichage permet d'afficher un caractère sélectionné parmi un ensemble de caractères comprenant : • des caractères susceptibles de constituer l'identifiant (dans l'exemple de la clé RCI, des chiffres décimaux de 0 à 9 et des lettres de A à F), • la lettre "P" utilisée pour signaler le début de la saisie de l'identifiant, • le caractère "-" (signe moins) utilisé pour signaler la fin de la saisie. La molette permet quant à elle de sélectionner un caractère et de valider le caractère sélectionné : en tournant la molette dans un sens ou dans l'autre, il est possible de se déplacer dans l'ensemble des caractères sélectionnables pour sélectionner un caractère ; un appui sur la molette permet ensuite la validation du caractère sélectionné. La molette est fonctionnellement équivalente à un clavier comprenant deux touches de déplacement et une touche de validation. Lors de la saisie d'un caractère de l'identifiant, la clé RCI affiche tout d'abord un caractère initial correspondant à un rang du caractère à saisir. A partir de ce caractère, en utilisant la molette, l'utilisateur se déplace dans la liste des caractères proposés par la clé RCI jusqu'à affichage du caractère à saisir. L'utilisateur valide ensuite la saisie (appui sur la touche de validation). La clé est sécurisée par le fait que l'identifiant est saisi directement sur la clé, et non pas par l'intermédiaire d'un clavier distant par exemple. Ce mode de saisie présente toutefois une faiblesse vis à vis d'une attaque à canal caché. En effet, les interrupteurs électromécaniques situés derrière la molette étant tous différents (deux circuits électriques ne sont jamais identiques), ils laissent une signature électromagnétique différente lorsqu'ils sont activés. Ainsi, en mesurant par exemple le rayonnement électromagnétique au voisinage de la clé RCI lors de la saisie d'un identifiant, il est possible de déterminer la succession des mouvements ou pressions exercés sur la molette. Connaissant le procédé de saisie de l'identifiant (saisie des caractères un à un à partir du caractère de rang 1, etc.), il devient possible de reconstituer l'identifiant. Description de l'invention L'invention propose un nouveau procédé, et un dispositif associé ne présentant pas cette faiblesse. Un procédé de saisie selon l'invention comprend notamment une étape de saisie d'un caractère répétée jusqu'à ce que tous les caractères de l'identifiant aient été saisis. L'étape de saisie d'un caractère comprend les sous-étapes suivantes, consistant à : • sélectionner un caractère, par déplacement dans un ensemble de caractères à partir d'un caractère initial, • valider le caractère sélectionné. Le procédé selon l'invention est caractérisé en ce que l'étape de saisie d'un caractère comprend également la sous-étape suivante, réalisée avant la sélection d'un caractère et consistant à : • fournir un caractère initial aléatoire. Ainsi, lors de l'étape de sélection, le caractère initial, c'est-à-dire le point de départ du déplacement, étant aléatoire, il n'est plus possible, à partir d'une analyse du rayonnement électromagnétique Ainsi, même si une analyse du rayonnement électromagnétique émis lors d'une étape de saisie d'un caractère permet de déterminer la succession des déplacements réalisés, il n'est plus possible de déterminer le caractère sélectionné et validé, dans la mesure où le caractère initial n'est pas connu. Selon un mode de mise en oeuvre du procédé, le caractère initial aléatoire fourni indique également un rang du caractère à saisir. Dans ce cas, les caractères de l'identifiant sont saisis dans un ordre aléatoire, ce qui renforce encore la sécurité du procédé de saisie. Selon un autre mode de mise en oeuvre, l'étape de saisie comprend également une sous-étape de fourniture d'un rang d'un caractère à saisir, réalisée avant la sous-étape de fourniture d'un caractère initial. L'invention concerne également un dispositif pour la mise en oeuvre d'un procédé selon l'invention. Le dispositif comprend des moyens de saisie d'un caractère comprenant : • un moyen de sélection d'un caractère, par déplacement dans un ensemble de caractères à partir d'un caractère initial, et • un moyen de validation du caractère sélectionné. Le dispositif selon l'invention est caractérisé en ce que les moyens de saisie d'un caractère comprennent également un moyen de génération d'un caractère initial aléatoire. L'invention concerne encore un produit programme d'ordinateur téléchargeable depuis un réseau de communication et / ou stocké sur un support lisible par ordinateur et / ou exécutable par un microprocesseur, caractérisé en ce qu'il comprend des instructions de code de programme pour la mise en oeuvre d'au moins une étape du procédé de saisie selon l'invention. L'invention concerne enfin un dispositif de traitement de données, par exemple un dispositif de génération de clés pour des applications cryptographiques, un dispositif de stockage de données ou un terminal de communication, dont une utilisation est réservée à un utilisateur identifié, caractérisé en ce qu'il comprend un dispositif de saisie d'un identifiant tel que décrit ci-dessous. Le dispositif de traitement de données comprend avantageusement un microprocesseur approprié pour exécuter un programme d'ordinateur selon l'invention. Description de modes de mise œuvre de l'invention L'invention sera mieux comprise et d'autres caractéristiques et avantages apparaîtront à la lecture de la description qui va suivre, d'un exemple de mise en oeuvre d'un procédé de saisie d'un identifiant selon l'invention, et d'un dispositif associé. Comme dit précédemment, un dispositif connu de saisie d'un identifiant comprend des moyens de saisie d'un caractère comprenant : • un moyen de sélection d'un caractère, par déplacement dans un ensemble de caractères à partir d'un caractère initial, et • un moyen de validation du caractère sélectionné. Un dispositif de saisie selon l'invention se distingue d'un dispositif de saisie antérieur en ce qu'il comprend également un moyen de génération d'un caractère initial aléatoire. Dans un exemple, le moyen de génération est approprié pour choisir aléatoirement un caractère dans l'ensemble des caractères susceptibles d'être utilisés pour composer un identifiant. Dans un autre exemple, le moyen de génération est approprié pour générer des nombres binaires aléatoires de 1 ou 2 octets, et convertir les 4 derniers bits d'un nombre binaire généré en un chiffre hexadécimal (c'est-à-dire un unique caractère parmi les chiffres décimaux 0 à 9 et les lettres A à F). Le dispositif de saisie peut également comprendre une mémoire pour mémoriser un caractère sélectionné et validé par l'intermédiaire du moyen de sélection et du moyen de validation. Selon l'application envisagée du dispositif de sélection de l'invention, et selon la taille du dispositif global dans lequel le dispositif de saisie est utilisé, le moyen de sélection et le moyen de validation peuvent prendre diverses formes. Dans un premier exemple, le moyen de sélection et le moyen de validation sont constitués d'un clavier comprenant deux ou quatre touches de déplacement, permettant un déplacement dans deux ou quatre directions dans l'ensemble des caractères, et une touche de validation d'un caractère sélectionné. Un tel clavier pourra par exemple être utilisé dans un dispositif de stockage de données ou un terminal de communication dont l'accès est sécurisé par un identifiant. Dans un autre exemple, le moyen de sélection et le moyen de validation sont constitués d'un bouton comprenant deux ou quatre zones d'enfoncement, permettant un déplacement dans deux ou quatre directions dans l'ensemble des caractères, et une touche de validation d'un caractère sélectionné. Un tel bouton est par exemple déjà utilisé dans un terminal de communication tel qu'un téléphone portable. Ainsi, un tel terminal peut être avantageusement sécurisé par l'invention, à moindre coût. Dans un autre exemple encore, le moyen de sélection et le moyen de validation sont constitués d'une molette susceptible d'être tournée dans deux directions, permettant un déplacement dans deux directions dans l'ensemble des caractères, et susceptible d'être enfoncée dans une direction pour valider un caractère sélectionné. Ainsi, l'invention peut être utilisée pour améliorer à moindre coût une clé RCI existante. Dans un autre exemple encore, le moyen de validation est un détecteur d'inactivité du moyen de sélection pendant un temps prédéfini. Ainsi, après avoir sélectionné un caractère, l'utilisateur attend. Au bout d'un temps prédéfini (20 ou 30 secondes par exemple), le détecteur d'inactivité valide le caractère sélectionné. Le dispositif selon l'invention peut également comprendre un moyen d'affichage pour afficher le caractère sélectionné ou le caractère initial aléatoire. L'affichage se fait en fonction d'une instruction reçue du moyen de génération du caractère initial aléatoire ou en fonction d'une instruction reçue du moyen de sélection. Le moyen d'affichage peut prendre également diverses formes selon l'application envisagée et / ou selon la taille du dispositif global dans lequel le dispositif de saisie est incorporé. Dans un exemple, le moyen d'affichage est adapté pour afficher un unique caractère qui est soit le caractère initial soit le caractère sélectionné. Dans un autre exemple, le moyen d'affichage est adapté pour afficher l'ensemble des caractères ou une partie de l'ensemble des caractères et mettre en évidence, par rapport aux autres caractères de l'ensemble des caractères, soit le caractère initial soit le caractère sélectionné. La mise en évidence peut se faire par exemple par surlignement ou soulignement du caractère sélectionné ou du caractère initial. Un procédé connu de saisie d'un identifiant (comprenant au moins un caractère) comprend notamment une étape de saisie d'un caractère, répétée jusqu'à ce que tous les caractères de l'identifiant aient été entièrement saisis. L'étape de saisie d'un caractère comprend les sous- étapes suivantes, consistant à : • sélectionner un caractère par déplacement dans l'ensemble de caractères à partir d'un caractère initial, • valider le caractère sélectionné. Un procédé selon l'invention se distingue d'un procédé connu essentiellement par le fait que l'étape de saisie d'un caractère comprend également la sous-étape suivante, réalisée avant la sélection d'un caractère et consistant à : • fournir un caractère initial aléatoire. A partir de ce caractère initial aléatoire, l'utilisateur peut se déplacer dans la liste des caractères possibles pour sélectionner un caractère. Dans un mode de mise en oeuvre de l'invention, le procédé complet comprend tout d'abord une étape d'initialisation, au cours de laquelle : • un caractère de début de saisie est affiché (dans l'exemple de la clé RCI, le caractère "P"), pour indiquer à l'utilisateur que le dispositif de saisie est prêt • l'utilisateur valide le caractère de début par pression sur le moyen de validation ; par cette action, l'utilisateur indique qu'il est prêt à entrer son identifiant. Ensuite, plusieurs étapes de saisie d'un caractère sont réalisées successivement, chacune permettant à l'utilisateur de saisir un caractère de son identifiant. Enfin, le procédé comprend une étape de finalisation, au cours de laquelle : • un caractère de fin est sélectionné par l'utilisateur à l'aide du moyen de sélection (dans l'exemple de la clé RCI, le caractère "-"), • l'utilisateur valide le caractère de fin par pression sur le moyen de validation ; par cette action, l'utilisateur indique que tous les caractères de l'identifiant ont été saisis. Dans l'exemple d'une clé RCI, le caractère de début, le caractère de fin et les caractères susceptibles d'être utilisés pour former un identifiant sont des caractères alphanumériques tels que des chiffres, des lettres ou de symboles mathématiques courants. Mais, plus généralement tout type de caractère peut être utilisé . symboles mathématiques plus complexes, idéogrammes, pictogrammes, etc. Une étape de saisie d'un caractère comprend les sous-étapes suivantes . • fournir un rang d'un caractère à saisir ; par cette étape, il est indiqué à l'utilisateur que le caractère dont le rang est précisé est attendu • valider le rang du caractère à saisir ; par cette étape, l'utilisateur indique qu'il va saisir le caractère attendu • fournir un caractère initial ; par cette étape, un caractère initial est fourni pour la sélection du caractère souhaité par l'utilisateur • sélectionner un caractère, par déplacement dans l'ensemble de caractères à partir d'un caractère initial ; par cette étape, l'utilisateur sélectionne le caractère qu'il souhaite • valider le caractère sélectionné ; par cette étape, l'utilisateur valide le caractère sélectionné. Le rang du caractère à saisir est un nombre compris entre 1 et un nombre total de caractères de l'identifiant. Le caractère initial est quant à lui choisi aléatoirement parmi l'ensemble des caractères susceptibles d'être utilisés pour former l'identifiant. Par rapport au procédé de saisie connu et utilisé dans la clé RCI, on utilise ici, pour chaque étape de saisie d'un caractère, deux sous-étapes additionnelles . la validation du rang du caractère à saisir et la fourniture d'un caractère initial aléatoire. Dans l'exemple ci-dessus, les caractères de l'identifiant sont saisis un à un, dans un ordre prédéfini, par exemple du premier au dernier ou l'inverse. On peut toutefois saisir les caractères dans un ordre prédéfini différent, par exemple le premier, puis le dernier, puis le deuxième, puis l'avant-dernier, etc. Quel que soit l'ordre prédéfini choisi, dans ce mode de réalisation, le rang du caractère à saisir est indiqué à l'utilisateur avant la fourniture du caractère initial aléatoire. Dans un autre mode de réalisation, le caractère initial aléatoire fourni indique également le rang du caractère à saisir. Dans ce cas, les étapes de fourniture d'un rang d'un caractère à saisir et de validation du dit rang à saisir ne sont pas réalisées. De préférence, le caractère initial est choisi aléatoirement parmi l'ensemble des caractères non encore saisis pour éviter de saisir deux ou plusieurs fois un même caractère. Selon ce mode de réalisation, le procédé de saisie est plus rapide à exécuter car chaque étape de saisie d'un caractère comprend deux sous-étapes de moins que dans le premier mode de réalisation décrit. Le procédé est également plus sûr car les caractères sont saisis dans un ordre aléatoire, variable d'une exécution à l'autre. Cependant, avec ce mode de réalisation, la saisie d'un identifiant est plus complexe pour l'utilisateur car les caractères sont saisis dans un ordre variable d'une exécution à l'autre. Egalement, ce mode de réalisation est un peu plus complexe à mettre en oeuvre, car des moyens doivent être prévus pour, tout au long de l'exécution des étapes de saisie d'un caractère, savoir quel caractère a déjà été saisi et quel caractère n'a pas encore été saisi. Dans un autre mode de réalisation encore, à chaque étape de saisie d'un caractère, le rang du caractère à saisir et le caractère initial sont choisis aléatoirement. Le procédé selon ce mode de réalisation est encore plus sûr que les précédents dans la mesure où deux paramètres, le rang du caractère à saisir et le caractère initial sont aléatoires. Mais la mise en oeuvre est plus complexe, et la saisie d'un identifiant est plus complexe pour l'utilisateur. Ces deux derniers modes de réalisation peuvent être difficiles à mettre en oeuvre dans le cas où la longueur (c'est-à-dire le nombre total de caractères) de l'identifiant est susceptible d'être variable d'un identifiant à l'autre. Mais cette difficulté peut être contournée en définissant une longueur maximale de l'identifiant.20 REVENDICATIONS 1. Dispositif de saisie d'un identifiant comprenant au moins un caractère, le dispositif étant adapté pour la mise en oeuvre d'un procédé selon l'une des revendications précédentes, le dispositif comprenant des 5 moyens de saisie d'un caractère comprenant : • un moyen de sélection d'un caractère, par déplacement dans un ensemble de caractères à partir d'un caractère initial, et • un moyen de validation du caractère sélectionné, 10 le dispositif étant caractérisé en ce que les moyens de saisie d'un caractère comprennent également : • un moyen de génération d'un caractère initial aléatoire. 15 2. Dispositif de saisie selon la revendication 1, comprenant également un moyen d'affichage pour afficher le caractère sélectionné ou le caractère initial aléatoire. 20 3. Dispositif de saisie selon la revendication 2, comprenant également une mémoire pour mémoriser un caractère sélectionné et validé par l'intermédiaire du moyen de sélection et du moyen de validation. 25 4. Dispositif de saisie selon l'une des revendications 1 à 3, dans lequel le moyen de sélection et le moyen de validation sont constitués de : • un clavier comprenant deux ou quatre touches de déplacement, permettant un déplacement dans deux ou 30 quatre directions dans l'ensemble des caractères, et une touche de validation d'un caractère sélectionné, ou • un bouton comprenant deux ou quatre zones d'enfoncement, permettant un déplacement dans deux ou quatre directions dans l'ensemble des caractères, et une touche de validation d'un caractère sélectionné, ou • une molette susceptible d'être tournée dans deux directions, permettant un déplacement dans deux directions dans l'ensemble des caractères, et susceptible d'être enfoncée dans une direction pour valider un caractère sélectionné. 5. Dispositif de saisie selon l'une des revendications 1 à 4, dans lequel le moyen d'affichage est adapté pour, en fonction d'une instruction reçue du moyen de génération du caractère initial aléatoire ou en fonction d'une instruction reçue du moyen de sélection : • afficher un unique caractère qui est soit le caractère initial soit le caractère sélectionné, ou • afficher l'ensemble des caractères ou une partie de l'ensemble des caractères et mettre en évidence, par rapport aux autres caractères de l'ensemble des caractères, soit le caractère initial soit le caractère sélectionné. 6. Dispositif de traitement de données, par exemple un dispositif de génération de clés pour des applications cryptographiques, un dispositif de stockage de données ou un terminal de communication, dont une utilisation est réservée à un utilisateur identifié, caractérisé en ce qu'il comprend un dispositif de saisie d'un identifiant selon l'une des revendications 1 à 5. 7. Procédé sécurisé de saisie d'un identifiant comprenant au moins un caractère, le procédé comprenant une étape de saisie d'un caractère répétée jusqu'à ce que tous les caractères de l'identifiant aient été saisis, l'étape de saisie d'un caractère comprenant les sous- étapes suivantes, consistant à : 25 30• sélectionner un caractère avec un moyen de sélection, par déplacement dans un ensemble de caractères à partir d'un caractère initial, • valider le caractère sélectionné avec un moyen de 5 validation, le procédé étant caractérisé en ce que l'étape de saisie d'un caractère comprend également la sous-étape suivante, réalisée avant la sélection d'un caractère et consistant à : 10 • fournir un caractère initial aléatoire. 8. Procédé selon la revendication 7, dans lequel le caractère initial aléatoire fourni indique un rang du caractère à saisir. 15 9. Procédé selon la revendication 7, dans lequel l'étape de saisie comprend également la sous-étape suivante, réalisée avant la sous-étape de fourniture d'un caractère initial et consistant à : 20 • fournir un rang d'un caractère à saisir. 10. Procédé selon l'une des revendications 8 ou 9, dans lequel le caractère initial est un caractère choisi aléatoirement dans l'ensemble des caractères. 11. Procédé selon l'une des revendications 8 à 10, dans lequel le rang du caractère à saisir est un nombre compris entre 1 et un nombre total de caractères de l'identifiant. 12. Procédé selon la revendication 11, dans lequel le rang du caractère à saisir est choisi aléatoirement à chaque exécution de l'étape de saisie, parmi les rangs des caractères non encore saisis. 35 13. Produit programme d'ordinateur téléchargeable depuis un réseau de communication et / ou stocké sur un support lisible par ordinateur et / ou exécutable par un microprocesseur, caractérisé en ce qu'il comprend des instructions de code de programme pour la mise en oeuvre d'au moins une étape du procédé de saisie selon l'une des revendications 7 à 12.