FR 3073998 A1 20190524 FR 1761094 A 20171123 PROCEDE NUMERIQUE DE CONTROLE D'ACCES A UN OBJET, UNE RESSOURCE OU SERVICE PAR UN UTILISATEUR DESCRIPTION Domaine technique [1] La présente invention se rapporte à un procédé numérique de contrôle d'accès à un objet, une ressource ou un service par un utilisateur, l'accès étant contrôlé par un dispositif de contrôle d'accès dit serrure intelligente et l'utilisateur ayant un dispositif numérique dit clé virtuelle. Etat de la technique [2] L'Internet initial connecte des noeuds du réseau entre eux, ordinateurs et serveurs. L'Internet des objets (loT) étend ces connexions à l'électronique embarquée pour des objets grand public comme industriels, dans la maison, les transports, la voiture, la santé, la ville, les infrastructures, etc. [03] Les problématiques de sécurité informatique présentes dans l'Internet initial touchent également l'Internet des objets, de façon sans doute encore plus tangible puisque l'Internet des objets se confond de plus en plus avec le monde physique. [4] Un domaine particulier de la sécurité, le contrôle d'accès, vise à n'autoriser que les utilisateurs légitimes - personnes, voire procédés - dans le contexte d'autorisation qui leur est propre. Pour cela, les systèmes et objets embarquent ou communiquent avec un système d'autorisation via un réseau de communication privé, et de plus en plus souvent public (Internet). [5] Lors d'une requête d'un utilisateur, le système d'autorisation vérifie tout d'abord grâce à un procédé d'identification qu'il s'agit d'un utilisateur autorisé et, si c'est le cas, quels sont ses droits. Le contrôle d'accès de la plupart des applications web fonctionne ainsi. D'autres systèmes en revanche, en particulier lorsqu'ils ne sont pas constamment connectés, peuvent ne pas connaître leurs utilisateurs et doivent alors vérifier que les utilisateurs anonymes se présentant possèdent bien les droits qu'ils prétendent. On peut citer comme exemples de ces derniers systèmes des 2 objets « partagés » - c'est-à-dire n'ayant pas un ensemble donné ni figé d'utilisateurs - tels que des véhicules (autonomes ou non), des serrures ou des cadenas électroniques équipant des portes ou d'autres objets, des parcmètres, des systèmes de contrôle dans la billettique, des terminaux de 5 paiement électronique, etc. [6] Le contrôle d'accès à des objets partagés ou non constamment connectés tels que ceux listés ci-dessus pose un certain nombre de difficultés, notamment en matière de sécurité, que ne résolvent pas les méthodes classiques - telles que l'authentification renforcée des utilisateurs 10 - employées dans le cas d'applications web sensibles. L'un de ces aspects difficiles concerne la non-falsification des droits que l'utilisateur prétend avoir et que l'objet peut ne pas connaître au préalable. Un autre de ces aspects difficiles est de contrer les tentatives de vol ou d'usurpation de l'objet sans pour autant compliquer la tâche de l'utilisateur légitime. Le droit de 15 l'utilisateur est en effet généralement dématérialisé sur un support tel qu'un smartphone d'où il peut être extrait via une attaque ciblée ou un logiciel espion (en anglais « malware ») ; ce droit peut également être écouté et copié lorsque le support de l'utilisateur et l'objet communiquent via un moyen de communication non protégé, ce qui est par défaut le cas dans les 20 exemples mentionnés. [7] Pour ces raisons, il serait bénéfique de disposer d'un procédé permettant un contrôle d'accès sécurisé, simple et non-bloquant, à des objets partagés pas nécessairement constamment connectés. Avoir un contrôle d'accès sécurisé ne nécessitant pas de connectivité Internet ou 25 mobile permanente permettrait en outre de réduire les coûts de conception, de fabrication ou de fonctionnement des objets. Description de l'invention [8] Pour résoudre un ou plusieurs des inconvénients cités précédemment, un procédé numérique de contrôle d'accès à un objet ou service par un 30 utilisateur, ledit accès audit objet ou service étant contrôlé par un dispositif de contrôle d'accès dit serrure intelligente comprenant un moyen de 3 communication numérique, un calculateur, un verrou logique permettant de déverrouiller l'accès à l'objet ou service et une mémoire de stockage contenant un identifiant de la serrure intelligente, une bi-clé publique/privée de chiffrement assymétrique et l'utilisateur ayant un dispositif numérique dit 5 clé virtuelle comprenant un moyen de communication adapté pour communiquer avec le moyen de communication de la serrure intelligente, un calculateur et une mémoire de stockage contenant un identifiant de la clé virtuelle, l'identifiant et la clé publique de la serrure intelligente à laquelle est associée la clé virtuelle et une première information résultat de la signature 10 par la cle privée des identifiants de la clé virtuelle et de la serrure intelligente et d'un paramètre arbitraire, le verrou de la serrure intelligente comprenant au moins 2 niveaux d'accès à l'objet ou service associés à 2 niveaux d'interaction entre la clé virtuelle et l'utilisateur, un premier niveau associé à une interaction implicite par simple mise en communication des moyens de 15 communication de la clé virtuelle et de la serrure intelligente et un deuxième niveau associé à une interaction avec validation explicite de l'utilisateur, comprend : - envoi par la serrure intelligente à la clé virtuelle d'un message comprenant : 20 - l'identifiant de la serrure intelligente ; - un challenge créé par la serrure intelligente ; - la signature par la clé privée de la serrure intelligente d'une information liée à l'identifiant de la serrure intelligente et au challenge ; et 25 - le niveau d'interaction requis parmi les au moins deux niveaux d'interaction ; - vérification par la clé virtuelle que la serrure intelligente lui est connue par comparaison de l'identifiant de serrure intelligente reçu à celui stocké par la clé virtuelle ; 4 - validation par la clé virtuelle de la signature par utilisation de la clé publique de la serrure intelligente stockée ; et, si la validation est positive - sélection et mise en oeuvre du niveau d'interaction reçu par la clé 5 virtuelle ; et après validation de l'interaction par la clé virtuelle - envoi d'un message par la clé virtuelle à la serrure intelligente comprenant : - l'identifiant de la clé virtuelle ; et - une première clé d'ouverture fonction du challenge reçu et de 10 l'information contenue dans la clé virtuelle ; et alors - si la serrure intelligente valide la clé d'ouverture, elle donne accès à l'objet ou service avec le niveau d'accès associé au niveau d'interaction utilisé. [9] Ainsi, avantageusement, le procédé permet de formuler et de vérifier 15 de façon sécurisée des demandes d'accès pour une serrure intelligente et pour un contexte, et ce sans que la serrure intelligente ne contienne nécessairement préalablement d'informations concernant la clé virtuelle ou son porteur, ni ne soit connectée à un réseau de communication. [10] Des caractéristiques ou des modes de réalisation particuliers, 20 utilisables seuls ou en combinaison, sont : - la clé virtuelle contient une deuxième information construite comme la première information mais avec un paramètre arbitraire distinct, chacune de ces informations étant associée à un type d'interaction ; - un troisième niveau d'accès au produit ou service est défini et 25 associé à un niveau d'interaction avec identification du porteur, et en ce que la clé intelligente comprend en outre une troisième information chiffrée obtenue par le chiffrement d'une troisième information construite de la même façon que la première information mais avec un paramètre arbitraire distinct, le chiffrement étant effectué par une 30 clé de chiffrement dérivée d'un code secret associé à l'utilisateur, le procédé comprenant en outre que, lors de l'interaction avec 5 l'utilisateur, la clé virtuelle calcule une clé de déchiffrement de façon similaire à la clé de chiffrement et le message envoyé par la clé virtuelle après l'étape de validation de l'interaction comprend en outre une seconde clé d'ouverture obtenue en déchiffrant la troisième 5 information chiffrée par la clé de déchiffrement et la serrure intelligente valide également la seconde clé d'ouverture avant d'autoriser l'accès au produit ou service ; - la clé virtuelle comprend en outre une information de contexte résultat de la signature de l'identifiant de la clé virtuelle et d'un 10 paramètre synthétisant les droits d'accès associés à la clé virtuelle avec la clé privée de la serrure intelligente cette information de contexte étant transmise par la clé virtuelle à la serrure intelligente de telle sorte que la serrure intelligente valide l'information de contexte avant d'autoriser l'accès au produit ou service ; 15 - le paramètre est généré par une fonction de hachage ayant en entrée un fichier XML de description de contexte d'usage ; et/ou - la serrure intelligente comprend une liste de révocation contenant les identifiants des clés virtuelles pour lesquelles aucune autorisation d'accès n'est possible. 20 [11] Un autre aspect de l'invention se rapporte à un programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, qui comprend des instructions de code de programme pour la mise en oeuvre du procédé tel que défini ci-dessus lors d'une exécution du 25 programme par une unité de calcul dudit appareil. [12] Un troisième aspect de l'invention se rapporte à un dispositif numérique de contrôle d'accès dit serrure intelligente à un objet ou service par un utilisateur, comprenant un moyen de communication numérique, un calculateur, un verrou logique permettant de déverrouiller l'accès à l'objet ou 3 0 service et une mémoire de stockage contenant un identifiant de la serrure intelligente, une bi-clé publique/privée de chiffrement assymétrique, et étant 6 adapté pour communiquer avec un dispositif numérique dit clé virtuelle comprenant un moyen de communication adapté pour communiquer avec le moyen de communication de la serrure intelligente, un calculateur et une mémoire de stockage contenant un identifiant de la clé virtuelle, l'identifiant 5 et la clé publique de la serrure intelligente à laquelle est associée la clé virtuelle et une première information résultat de la signature par la cle privée des identifiants de la clé virtuelle et de la serrure intelligente et d'un paramètre arbitraire, le verrou de la serrure intelligente comprenant au moins 2 niveaux d'accès à l'objet ou service associés à 2 niveaux 10 d'interaction entre la clé virtuelle et l'utilisateur, un premier niveau associé à une interaction implicite par simple mise en communication des moyens de communication de la clé virtuelle et de la serrure intelligente et un deuxième niveau associé à une interaction avec validation explicite de l'utilisateur, ledit dispositif de contrôle d'accès étant adapté pour : 15 - envoyer à la clé virtuelle un message comprenant : - l'identifiant de la serrure intelligente ; - un challenge créé par la serrure intelligente ; - la signature par la clé privée de la serrure intelligente d'une information liée à l'identifiant de la serrure intelligente et au 20 challenge; et - le niveau d'interaction requis parmi les au moins deux niveaux d'interaction ; - recevoir un message de la clé virtuelle comprenant : - l'identifiant de la clé virtuelle; et 25 - une première clé d'ouverture fonction du challenge reçu et de l'information contenue dans la clé virtuelle ; et alors - et si la clé d'ouverture est validée, donner accès à l'objet ou service avec le niveau d'accès associé au niveau d'interaction utilisé. [13] Un quatrième aspect de l'invention se rapporte à un dispositif 30 numérique d'accès dit clé virtuelle adaptée pour communiquer un dispositif de contrôle d'accès dit serrure intelligente comprenant un moyen de 7 communication numérique, un calculateur, un verrou logique permettant de déverrouiller l'accès à l'objet ou service et une mémoire de stockage contenant un identifiant de la serrure intelligente, une bi-clé publique/privée de chiffrement assymétrique, ladite clé virtuelle comprenant un moyen de 5 communication adapté pour communiquer avec le moyen de communication de la serrure intelligente, un calculateur et une mémoire de stockage contenant un identifiant de la clé virtuelle, l'identifiant et la clé publique de la serrure intelligente à laquelle est associée la clé virtuelle et une première information résultat de la signature par la cle privée des identifiants de la clé 10 virtuelle et de la serrure intelligente et d'un paramètre arbitrair), le verrou de la serrure intelligente comprenant au moins 2 niveaux d'accès à l'objet ou service associés à 2 niveaux d'interaction entre la clé virtuelle et l'utilisateur, un premier niveau associé à une interaction implicite par simple mise en communication des moyens de communication de la clé virtuelle et de la 15 serrure intelligente et un deuxième niveau associé à une interaction avec validation explicite de l'utilisateur, ladite clé virtuelle étant adaptée pour : - Recevoir de la serrure intelligente un message comprenant : - l'identifiant de la serrure intelligente; - un challenge créé par la serrure intelligente ; 20 - la signature par la clé privée de la serrure intelligente d'une information liée à l'identifiant de la serrure et au challenge; et - le niveau d'interaction requis parmi les au moins deux niveaux d'interaction ; - vérifier que la serrure intelligente lui est connue par comparaison de 25 l'identifiant de serrure intelligente reçu à celui stocké par la clé virtuelle ; - valider la signature par utilisation de la clé publique de la serrure intelligente stockée; et, si la validation est positive - sélectionner et mettre en oeuvre du niveau d'interaction reçu par la clé 30 virtuelle ; et après validation de l'interaction - envoyer un message à la serrure intelligente comprenant : 8 - l'identifiant de la clé virtuelle; et - une première clé d'ouverture fonction du challenge reçu et de l'information contenue dans la clé virtuelle. Brève description des figures 5 [14] 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 représente les constituants d'une clé virtuelle et d'une serrure intelligente selon un mode de réalisation de l'invention ; et 10 - La figure 2 représente le flux d'échange d'information et de traitement lors d'un mode de réalisation de l'invention. Modes de réalisation [15] On définit des clés virtuelles et des serrures intelligentes. [16] Une serrure intelligente intégrée à un objet permet à l'objet de prendre 15 des décisions « d'ouverture », c'est-à-dire d'autorisation d'accès ou d'utilisation de l'objet. Un objet peut contenir une ou plusieurs serrures intelligentes. [17] On notera que, dans cette description, le terme « objet » peut représenter un objet physique, par exemple une voiture, un objet virtuel, par 20 exemple un morceau de musique ou un service, par exemple un service de conciergerie. [18] Une clé virtuelle est un système capable d'échanger avec des serrures intelligentes des informations dans le but pour l'utilisateur (personne, système, procédé) possédant la clé virtuelle d'obtenir le droit d'accéder ou 25 d'utiliser l'objet auquel est associée la serrure intelligente. [19] En référence à la Figure 1, la serrure intelligente 1 comprend un moyen de communication numérique 3, un calculateur 5, un verrou logique 7 permettant de déverrouiller l'accès à l'objet ou service et une mémoire de stockage 9. 9 [20] La mémoire de stockage 9 contient un identifiant de la serrure intelligente locko, une bi-clé publique/privée de chiffrement assymétrique klock,pub, klock,priv. [21] L'utilisateur a donc un dispositif numérique dit clé virtuelle 11 5 comprenant un moyen de communication 13 adapté pour communiquer avec le moyen de communication 3 de la serrure intelligente 1, un calculateur 15 et une mémoire de stockage 17 [22] La mémoire de stockage 17 contient un identifiant de la clé virtuelle keyo, l'identifiant locko et la clé publique klock,pub de la serrure intelligente à 10 laquelle est associée la clé virtuelle et une première information Kvi résultat de la signature par la clé privée de la serrure intelligente klock,priv des identifiants de la clé virtuelle keyo et de la serrure intelligente locko et d'un paramètre arbitraire misci. [23] Les moyens de communication 3, 13 communiquent en particulier en 15 utilisant d'une technologie de communication radio à courte ou moyenne portée telles que les technologies RFID, Bluetooth ou WiFi. [24] Par ailleurs, on définit par le terme 'contexte' tout type d'information visant à restreindre ou conditionner le droit d'accès d'une clé virtuelle, tel que la date, l'heure, la durée de validité, le lieu, le nombre de demandes 20 d'accès, ou des limites sur des paramètres de la demande (le montant d'une transaction par exemple). [25] Le verrou 7 de la serrure intelligente 1 comprend 2 ou 3 niveaux d'accès à l'objet ou service associés à 2 ou 3 niveaux d'interaction entre la clé virtuelle et l'utilisateur, un premier niveau associé à une interaction 25 implicite par simple mise en communication des moyens de communication de la clé virtuelle et de la serrure intelligente, un deuxième niveau associé à une interaction avec validation explicite de l'utilisateur et un troisième niveau optionnel associé à une identification de l'utilisateur, [26] Ces types d'interactions précisent donc comment le porteur d'une clé 30 virtuelle peut la mettre en oeuvre afin d'obtenir l'autorisation d'accéder ou d'utiliser un objet. Le premier type d'interaction, dit « sans contact » 10 correspond à une demande d'accès implicite, c'est-à-dire sans intervention du porteur de la clé virtuelle ; le dialogue entre la clé virtuelle et la serrure intelligente peut cependant être conditionné par la distance entre ces systèmes (utilisation d'un moyen de communication radio à moyenne ou 5 courte portée) ou par d'autres éléments ne supposant pas d'action particulière du porteur de la clé virtuelle. Un Le deuxième type d'interaction dit « avec validation du porteur » requiert comme son nom l'indique une confirmation du porteur de la clé virtuelle, par exemple un clic, un `swipe' l'appui sur un bouton, ou encore la réponse à un test de Turing. Le troisième 10 type d'interaction dit « avec identification du porteur » requiert la fourniture par l'utilisateur d'un élément d'identification tel que la saisie d'un PIN ou l'utilisation d'un capteur biométrique. Ces types d'interactions permettent de choisir et de contrôler le niveau de sécurité exigé lors d'une demande d'accès ou d'utilisation. Selon les demandes, un même objet peut requérir 15 la mise en oeuvre d'un ou plusieurs types d'interactions plus ou moins sécurisés. [27] Les données des mémoires de stockage des clés et des serrures sont gérées par un système d'émission dont les fonctions sont de créer et de révoquer des serrures intelligentes et des clés virtuelles. Lors de la 20 fabrication des objets, lors de leur distribution, voire ultérieurement, on utilise le système d'émission pour créer des serrures intelligentes et les embarquer dans les objets. L'embarquement d'une serrure intelligente dans un objet est réalisé par des moyens classiques de gestion, et plus particulièrement d'injection, de données cryptographiques. Le système d'émission crée à la 25 demande des clés virtuelles, chaque clé étant créée spécifiquement pour une serrure intelligente désignée dans la demande de création. On peut aussi optionnellement préciser dans la demande le contexte d'utilisation de la clé virtuelle (au sens où le mot 'contexte' a été défini précédemment) mais également son porteur afin de restreindre les conditions de mise en oeuvre 30 de la clé virtuelle. 11 [28] Lors de sa création par le système d'émission, la serrure intelligente (du moins la bi-clé) pourra elle-même être chiffrée afin de permettre une distribution ou une installation dans l'objet via un réseau public non sécurisé. Cela requiert d'avoir préalablement équipé les objets ou les points de 5 distribution et d'installation des serrures intelligentes d'une clé ou d'un certificat permettant le déchiffrement. Cette clé ou certificat peut être unique par objet ou commun à une flotte d'objets, selon le compromis souhaité entre la sécurisation et la simplicité du process de création et de distribution des serrures intelligentes. 10 [29] On note R (pour Rights') le contexte d'usage souhaité pour une clé virtuelle et fR une fonction de résumé choisie pour résumer R de façon quasiment univoque. Par exemple, si le contexte d'usage R est décrit par un fichier xml dont le format dépend de l'application envisagée et des données de contexte spécifiques, on peut choisir pour fR une fonction de hachage, 15 telle que SHA2, appliquée sur le fichier xml. L'homme de l'art saura ainsi définir une telle fonction de résumé quelle que soit l'application envisagée, cette fonction de résumé ayant la propriété de fournir un résultat de format invariant et décrivant le contexte de façon quasiment univoque, quand bien même le format ou les paramètres décrivant le contexte viendraient à 20 évoluer. [30] On peut ainsi demander au système d'émission la création d'une clé virtuelle destinée à une serrure intelligente Locko, à un contexte résumé par fR(R), et à un utilisateur donné. Sous réserve que ces paramètres soient correctement définis et connus par le système d'émission et que l'utilisateur 25 possède les permissions adéquates pour obtenir la délivrance de cette clé virtuelle, le système d'émission crée une clé virtuelle contenant les informations précitées, à savoir - Un identifiant de clé virtuelle keyo - L'identifiant de la serrure intelligente locko à laquelle est liée cette 30 clé. 12 - Klock,pub la clé publique de la serrure intelligente à laquelle est associée la clé virtuelle. - la première information Kvi résultat de la signature par la clé privée kiock,priv des paramètres locko, keyo et misci, où misci est un 5 paramètre choisi arbitrairement. L'ordre des paramètres n'est pas essentiel. Kvi est utilisée pour des interactions de type « sans contact » ou « avec validation du porteur ». - Une information HR résultat de la signature par la clé privée kiock,priv des paramètres keyo et fR(R). L'information HR permet de prouver 10 à la serrure intelligente l'authenticité des droits (contexte) attachés à la clé virtuelle. [31] Dans une variante de réalisation, on peut différencier les deux types d'interaction en associant, par exemple, Kvi à l'interaction implicite et une seconde information Kv2 à l'interaction avec validation du porteur. Dans ce 15 cas, Kv2 est calculée de façon similaire à Kvi mais en utilisant un paramètre misc2 différent de misci. [32] Pour l'interaction avec authentification de l'utilisateur, une information Kv'3 est obtenue en chiffrant une information Kv3 par une clé de chiffrement Kpin, cette information et cette clé étant définies comme suit : l'information 20 Kv3 est calculée de façon similaire à Kvi en signant par la clé privée kiock,priv les paramètres locko, keyo et misc3, où misc3 est un paramètre différent de misci, et de misc2, dans la variante utilisant ce paramètre, choisi arbitrairement. La clé de chiffrement Kpin est dérivée d'un code secret lié à l'utilisateur pour lequel la clé virtuelle est créée, par exemple un code secret 25 que l'utilisateur connaît, ou un code secret fourni par un capteur biométrique en cas d'identification réussie dudit utilisateur par ce capteur. La dérivation de la clé Kpin est faite en appliquant une fonction de hachage a minima au code secret, voire à locko et keyo pour restreindre encore plus les possibilités d'utilisation frauduleuse et d'attaque. Dans un mode de 30 réalisation où l'utilisateur ne possède pas un tel code secret, Kv'3 est ignorée. 13 [33] Lors de sa création par le système d'émission, la clé virtuelle (du moins les informations autres que locko et keyo) pourra elle-même être chiffrée afin de permettre une distribution au porteur en utilisant un réseau public ou des moyens non sécurisés. Cela requiert d'avoir préalablement équipé les 5 porteurs d'une clé ou d'un certificat permettant le déchiffrement. Cette clé ou certificat sera de préférence unique par porteur mais pourra être présente sur plusieurs équipements d'un même utilisateur tels que des smartphones. [34] Dans une variante d'implémentation, on utilise une méthode d'authentification forte telle que celles décrites dans EP 2 347 541 afin qu'un 10 porteur et le système d'émission partagent une clé ou un certificat de chiffrement, de façon simple, sécurisée et secrète vis-à-vis de tiers. [35] L'autorisation d'accès ou d'utilisation de l'objet résulte d'un dialogue entre une serrure intelligente associée à l'objet et une clé virtuelle, ce dialogue étant défini par le protocole décrit ci-après, Figure 2. 15 [36] Dans une première étape 21, la serrure intelligente fournit un paquet d'information contenant : - L'identifiant locko ; - Un challenge chat créé par la serrure intelligente pour ce dialogue d'autorisation ; 20 - Une preuve calculée comme la signature par la clé privée Kock,priv d'une information liée aux paramètres challenge chat et locko. Par exemple, cette information peut être le résultat d'une fonction de hachage de ces deux paramètres. Dans une variante d'implémentation où il est possible de proposer un mécanisme 25 d'appairage sécurisé entre le système contenant la clé virtuelle et celui contenant la serrure intelligente, on ajoute aux paramètres utilisés pour calculer la preuve un identifiant de la session courante du moyen de communication utilisé ; il existe différentes façons pour réaliser un tel appairage conduisant à l'échange de secrets 30 permettant d'établir une session sécurisée, telles que des 14 confirmations explicites de l'utilisateur, ou une confirmation implicite si l'appairage par défaut n'a pas été révoqué ; - Le type d'interaction souhaité pour l'autorisation [37] À la réception de ces informations, le système contenant la ou les clés 5 virtuelles de l'utilisateur effectue, étape 23, les vérifications suivantes : - Le système contient au moins une clé virtuelle pour l'identifiant de serrure intelligente reçu et pour les éléments de contexte courant (par exemple l'heure courante). Dans une variante d'implémentation où le système contenant la clé virtuelle est à l'origine de la demande 10 d'autorisation pour cette serrure intelligente, cette première vérification est redondante et peut être omise ; - La signature est valide, c'est-à-dire que le système ayant créé la preuve a bien accès à la partie privée de la clé de la serrure intelligente dont le système contenant la clé virtuelle possède la 15 partie publique. [38] Le système contenant la clé virtuelle utilisée pour la demande d'autorisation met alors en oeuvre, étape 25, auprès de l'utilisateur la demande d'interaction correspondant au type demandé par la serrure intelligente ou le système d'autorisation de l'objet. Le système contenant la 20 clé virtuelle fournit, étape 27, alors un paquet d'information contenant : - L'identifiant Keyo ; - L'information HR ainsi que les éléments du contexte qui ne seraient pas implicites dans le contexte courant (par exemple, une durée d'autorisation n'est pas implicite) ; 25 - Une première clé d'ouverture calculée comme une fonction de hachage appliquée au challenge et à la donnée Kvi si le type d'interaction demandé était « sans contact » , ou à la donnée Kv2 si le type d'interaction demandé était « avec validation du porteur » ; - Si le type d'interaction demandé était «avec identification du 30 porteur», une seconde clé d'ouverture obtenue en déchiffrant la donnée Kv'3 par une clé de chiffrement Kpin »cale calculée de façon 15 similaire à Kpin en utilisant le code secret fourni par l'utilisateur (respectivement, par un capteur biométrique) pour cette demande d'autorisation. [39] À la réception de ces informations, le système contenant la serrure 5 intelligente effectue, étape 29, les vérifications suivantes : - HR correspond bien aux éléments du contexte, implicites et fournis. Pour cela, les paramètres de contexte R sont fournis à la serrure intelligente 1 soit par la clé virtuelle 11, et dans ce cas le message de la clé virtuelle 11 contient l'ensemble du contexte, soit par le 10 système d'émission dans une étape préliminaire d'initialisation. La serrure intelligente 1 calcule alors fR(R)cal selon un mode identique à fR(R) puis signe fR(R) /cal et keyo avec sa clé privée pour obtenir HRcal. La serrure intelligente vérifie alors que HRcal est égal à HR reçu ; 15 - La première clé d'ouverture est valide. Cette validation est effectuée d'une façon similaire à la validation de HR. Ainsi, la serrure intelligente 1 a reçu du système d'émission les paramètres misci, misc2 et misc3. Elle est donc capable de calculer un Kvi,cal où i est égal à 1 ou 2 et donc la première clé d'ouverture pour comparer le 20 résultat du calcul avec la première clé d'ouverture reçue; - Si le type d'interaction demandé était « avec identification du porteur », la serrure intelligente vérifie également que la seconde clé d'ouverture est valide par le même procédé de validation mis en oeuvre pour la première clé d'ouverture ; 25 - Ces informations sont bien fournies pour le challenge associé à cette demande d'autorisation. [40] On notera que le système contenant la clé virtuelle ne peut pas fournir une deuxième clé d'ouverture valide sans que l'utilisateur (respectivement, le capteur biométrique) ne fournisse un code secret de l'utilisateur correct, 30 et ce sans que ce système ni le système contenant la serrure intelligente n'aient besoin de connaître ce code secret. 16 [41] Du point de vue de la sécurité de ce mécanisme, il faut garantir que le système contenant la clé virtuelle ne conserve et n'expose pas ce code secret après usage. [42] Dans la variante où on met en oeuvre une clé d'ouverture - et donc une 5 donnée Kv2 - distincte pour le type d'interaction « avec validation du porteur », on garantira que cette clé d'ouverture n'est pas fournie sans une interaction réelle de l'utilisateur afin d'assurer la sécurité de ce mécanisme. [43] Du point de vue de la sécurité de ce mécanisme, il faut garantir que les données Kvi, Kv2 et Kv'3 ne sont pas exposées lorsque la clé virtuelle 10 effectue des calculs utilisant leur version en texte clair (déchiffré) ni si elles ne sont pas stockées de façon chiffrée dans un mode de réalisation. [44] Enfin, du point de vue de la sécurité de ce mécanisme, il sera fait attention à ce que la clé privée ne soit pas exposée lorsque la serrure intelligente effectue des calculs utilisant sa version en texte clair (déchiffré) 15 ou si elle n'est pas stockée de façon chiffrée. [45] Les moyens pour obtenir ces différentes garanties de façon plus ou moins fiable et persistante - tels que : audit d'application mobile, mécanismes de vérification du contexte de sécurité d'une application mobile, moyens de stockage ou d'exécution protégés - sont des techniques 20 classiques de la sécurité informatique et contribuent à la sécurité globale des modes de réalisation. [46] La serrure intelligente utilise sa clé privée pour effectuer ces vérifications. Si toutes ces vérifications sont effectuées avec succès, la serrure intelligente peut confirmer, étape 31, à l'objet ou au système la 25 contenant l'autorisation d'accès ou d'utilisation au profit du porteur de la clé virtuelle. Sinon, la demande d'autorisation échoue. [47] Dans une variante d'implémentation, si la demande d'autorisation échoue, le système d'autorisation contenant la serrure intelligente met en oeuvre des contre-mesures destinées à se protéger d'attaques visant à le 30 contourner, telles que : 17 - Si la première clé d'ouverture est valide mais la seconde clé d'ouverture a été requise mais n'est pas valide, incrémenter un compteur d'erreurs associé à l'identifiant Keyo et, au-delà d'un seuil, appliquer des restrictions sur les demandes d'autorisation reçues 5 pour cet identifiant, telles qu'un nombre maximal de demandes, des délais - éventuellement croissants - entre deux demandes, voire une révocation de la clé virtuelle ; - Si la ou les clés d'ouverture requise(s) sont valides mais que HR ne correspond pas aux éléments de contexte, mettre l'identifiant Keyo 10 dans une liste de révocation temporaire ou définitive ; - Si toutes les informations sont valides mais calculées pour un challenge différent de celui créé par la serrure intelligente pour la demande d'autorisation actuelle (par exemple un challenge fourni précédemment), mettre l'identifiant Keyo dans une liste de 15 révocation temporaire ou définitive ; - Le système peut aussi limiter le nombre de demandes d'autorisation traitées par unité de temps pour se prémunir contre des attaques en force brute sur sa clé privée, en particulier si les spécifications de l'environnement de la serrure intelligente (performances du 20 processeur, taille de la mémoire RAM ou flash, etc.) imposent de limiter la taille de la clé privée très en deçà des recommandations de l'état de l'art en matière de sécurité ; et/ou - Le système contenant la serrure intelligente peut aussi de sa propre initiative demander un type d'interaction plus restrictif que celui 25 demandé par le système d'autorisation, notamment en cas de nombreuses demandes d'autorisation concernant une serrure intelligente. [48] Dans une variante d'implémentation, le système d'autorisation local contient une liste de révocation permettant de refuser temporairement ou 30 définitivement les demandes associées à des clés virtuelles. Cette liste de 18 révocation peut être alimentée localement par une serrure intelligente mais aussi par le système d'autorisation central. [49] Dans une variante d'implémentation, le système contenant la ou les clés virtuelles met en oeuvre des contre-mesures destinées à protéger 5 l'utilisation frauduleuse des clés virtuelles avec un type d'interaction « sans contact ». Il peut s'agir de limiter le nombre de requêtes par unité de temps, de forcer un type d'interaction plus restrictif que celui demandé, de conserver une liste locale de challenges utilisés et d'implémenter des restrictions en cas de constat d'un rejeu d'un challenge. 10 [50] Dans une variante d'implémentation, en particulier si le système contenant la serrure intelligente a des perfomances limitées, les données Kv2, Kv3 et HR sont calculées à l'aide de fonctions de hachage appliquées à leurs paramètres respectifs et à une information secrète Klock associée à la serrure intelligente, plutôt que par une signature par la clé 15 asymétrique Klock,priv. Ainsi, la vérification de ces données par la serrure intelligente se fait grâce à une simple fonction de hachage en lieu et place du déchiffrement par une clé publique. [51] Selon les implémentations, les moyens de communication peuvent également être constitués d'une liaison filaire comme, par exemple, une 20 liaison USB (en anglais « Universal Serial Bus », bus série universel). [52] Ce procédé est applicable à un contrôle d'accès d'un objet tel que, par exemple, une voiture dans laquelle un premier niveau d'accès est défini pour l'ouverture des portes et un second niveau d'accès est défini pour le démarrage du moteur. 25 [53] Il est également utilisable pour le contrôle d'accès REVENDICATIONS1. Procédé numérique de contrôle d'accès à un objet ou service par un utilisateur, ledit accès audit objet ou service étant contrôlé par un dispositif de contrôle d'accès dit serrure intelligente (1) comprenant un moyen de communication numérique (3), un calculateur (5), un verrou logique (7) permettant de déverrouiller l'accès à l'objet ou service et une mémoire de stockage (9) contenant un identifiant de la serrure intelligente (locko), une bi-clé publique/privée de chiffrement assymétrique (kiock,pub, kiock,priv) et l'utilisateur ayant un dispositif numérique dit clé virtuelle (11) comprenant un moyen de communication (13) adapté pour communiquer avec le moyen de communication de la serrure intelligente, un calculateur (15) et une mémoire de stockage (17) contenant un identifiant de la clé virtuelle (keyo), l'identifiant (locko) et la clé publique (klock,pub) de la serrure intelligente à laquelle est associée la clé virtuelle et une première information (Kvi) résultat de la signature par la clé privée (klock,priv) des identifiants de la clé virtuelle et de la serrure intelligente (keyo, locko) et d'un paramètre arbitraire (misci), le verrou de la serrure intelligente comprenant au moins 2 niveaux d'accès à l'objet ou service associés à 2 niveaux d'interaction entre la clé virtuelle et l'utilisateur, un premier niveau associé à une interaction implicite par simple mise en communication des moyens de communication de la clé virtuelle et de la serrure intelligente et un deuxième niveau associé à une interaction avec validation explicite de l'utilisateur, ledit procédé comprenant : - envoi par la serrure intelligente à la clé virtuelle d'un message comprenant : - l'identifiant de la serrure intelligente (locko) ; - un challenge (chat) créé par la serrure intelligente ; 20 - la signature par la clé privée de la serrure intelligente (kiock,priv) d'une information liée à l'identifiant de la serrure intelligente (locko) et au challenge (chat) ; et - le niveau d'interaction requis parmi les au moins deux niveaux 5 d'interaction ; - vérification par la clé virtuelle que la serrure intelligente lui est connue par comparaison de l'identifiant de serrure intelligente reçu à celui stocké par la clé virtuelle ; - validation par la clé virtuelle de la signature par utilisation de la clé 10 publique de la serrure intelligente stockée (klock,pub) ; et, si la validation est positive - sélection et mise en oeuvre du niveau d'interaction reçu par la clé virtuelle ; et après validation de l'interaction par la clé virtuelle - envoi d'un message par la clé virtuelle à la serrure intelligente 15 comprenant : - l'identifiant de la clé virtuelle (keyo) ; et - une première clé d'ouverture fonction du challenge reçu (chat) et de l'information (Kvi) contenue dans la clé virtuelle ; et alors - si la serrure intelligente valide la clé d'ouverture, elle donne accès à 20 l'objet ou service avec le niveau d'accès associé au niveau d'interaction utilisé. 2. Procédé selon la revendication 1, caractérisé en ce que la clé virtuelle contient une deuxième information (Kv2) construite comme la première 25 information (Kvi) mais avec un paramètre arbitraire (misc2) distinct, chacune de ces informations étant associée à un type d'interaction. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce qu'un troisième niveau d'accès au produit ou service est défini et associé à un niveau d'interaction avec identification du porteur, et en ce que la clé intelligente comprend en outre une troisième information chiffrée (Kv'3) obtenue par 21 le chiffrement d'une troisième information (K,3) construite de la même façon que la première information (Kvi) mais avec un paramètre arbitraire (misc3) distinct, le chiffrement étant effectué par une clé de chiffrement (Kpin) dérivée d'un code secret associé à l'utilisateur, le procédé 5 comprenant en outre que, lors de l'interaction avec l'utilisateur, la clé virtuelle calcule une clé de déchiffrement (Kpin, locale) de façon similaire à la clé de chiffrement (Kpin) et le message envoyé par la clé virtuelle après l'étape de validation de l'interaction comprend en outre une seconde clé d'ouverture obtenue en déchiffrant la troisième information chiffrée (Kv'3) 10 par la clé de déchiffrement (Kpin, locale) et la serrure intelligente valide également la seconde clé d'ouverture avant d'autoriser l'accès au produit ou service. 4. Procédé selon l'une quelconque des revendications précédentes, 15 caractérisé en ce que la clé virtuelle comprend en outre une information de contexte (HR) résultat de la signature de l'identifiant de la clé virtuelle (keyo) et d'un paramètre (fR(R)) synthétisant les droits d'accès associés à la clé virtuelle avec la clé privée de la serrure intelligente (klock,priv), cette information de contexte (HR) étant transmise par la clé virtuelle à la 20 serrure intelligente de telle sorte que la serrure intelligente valide l'information de contexte (HR) avant d'autoriser l'accès au produit ou service. 5. Procédé selon la revendication 4, caractérisé en ce que le paramètre 25 (fR(R)) est généré par une fonction de hachage (fR) ayant en entrée un fichier XML de description de contexte d'usage (R). 6. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que la serrure intelligente comprend une liste de 30 révocation contenant les identifiants des clés virtuelles pour lesquelles aucune autorisation d'accès n'est possible. 22 7. Produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, caractérisé en ce qu'il comprend des 5 instructions de code de programme pour la mise en oeuvre du procédé selon l'une au moins des revendications 1 à 6. 8. Dispositif numérique de contrôle d'accès dit serrure intelligente (1) à un objet ou service par un utilisateur, comprenant un moyen de 10 communication numérique (3), un calculateur (5), un verrou logique (7) permettant de déverrouiller l'accès à l'objet ou service et une mémoire de stockage (9) contenant un identifiant de la serrure intelligente (locko), une bi-clé publique/privée de chiffrement assymétrique (kiock,pub, kiock,priv), et étant adapté pour communiquer avec un dispositif numérique dit clé 15 virtuelle (11) comprenant un moyen de communication (13) adapté pour communiquer avec le moyen de communication de la serrure intelligente, un calculateur (15) et une mémoire de stockage (17) contenant un identifiant de la clé virtuelle (keyo), l'identifiant (locko) et la clé publique (klock,pub) de la serrure intelligente à laquelle est associée la clé virtuelle 20 et une première information (Kyi) résultat de la signature par la cle privée (klock,priv) des identifiants de la clé virtuelle et de la serrure intelligente (keyo, locko) et d'un paramètre arbitraire (misci), le verrou de la serrure intelligente comprenant au moins 2 niveaux d'accès à l'objet ou service associés à 2 niveaux d'interaction entre la clé virtuelle et l'utilisateur, un 25 premier niveau associé à une interaction implicite par simple mise en communication des moyens de communication de la clé virtuelle et de la serrure intelligente et un deuxième niveau associé à une interaction avec validation explicite de l'utilisateur, ledit dispositif de contrôle d'accès étant adapté pour : 30 - envoyer à la clé virtuelle un message comprenant : - l'identifiant de la serrure intelligente (locko) ; 23 - un challenge (chat) créé par la serrure intelligente ; - la signature par la clé privée de la serrure intelligente (kiock,priv) d'une information liée à l'identifiant de la serrure intelligente (locko) et au challenge (chat) ; et 5 - le niveau d'interaction requis parmi les au moins deux niveaux d'interaction ; - recevoir un message de la clé virtuelle comprenant : - l'identifiant de la clé virtuelle (keyo) ; et - une première clé d'ouverture fonction du challenge reçu (chat) et de 10 l'information (Kyi) contenue dans la clé virtuelle ; et alors - et si la clé d'ouverture est validée, donner accès à l'objet ou service avec le niveau d'accès associé au niveau d'interaction utilisé. 9. Dispositif numérique d'accès dit clé virtuelle adaptée pour communiquer 15 un dispositif de contrôle d'accès dit serrure intelligente (1) comprenant un moyen de communication numérique (3), un calculateur (5), un verrou logique (7) permettant de déverrouiller l'accès à l'objet ou service et une mémoire de stockage (9) contenant un identifiant de la serrure intelligente (locko), une bi-clé publique/privée de chiffrement 20 assymétrique (kiock,pub, kiock,priv), ladite clé virtuelle (11) comprenant un moyen de communication (13) adapté pour communiquer avec le moyen de communication de la serrure intelligente, un calculateur (15) et une mémoire de stockage (17) contenant un identifiant de la clé virtuelle (keyo), l'identifiant (locko) et la clé publique (klock,pub) de la serrure 25 intelligente à laquelle est associée la clé virtuelle et une première information (Kvi) résultat de la signature par la cle privée (kiock,priv) des identifiants de la clé virtuelle et de la serrure intelligente (keyo, locko) et d'un paramètre arbitraire (misci), le verrou de la serrure intelligente comprenant au moins 2 niveaux d'accès à l'objet ou service associés à 30 2 niveaux d'interaction entre la clé virtuelle et l'utilisateur, un premier niveau associé à une interaction implicite par simple mise en 24 communication des moyens de communication de la clé virtuelle et de la serrure intelligente et un deuxième niveau associé à une interaction avec validation explicite de l'utilisateur, ladite clé virtuelle étant adaptée pour : - Recevoir de la serrure intelligente un message comprenant : 5 - l'identifiant de la serrure intelligente (locko) ; - un challenge (chat) créé par la serrure intelligente ; - la signature par la clé privée de la serrure intelligente (kiock,priv) d'une information liée à l'identifiant de la serrure intelligente (locko) et au challenge (chat) ; et 10 - le niveau d'interaction requis parmi les au moins deux niveaux d'interaction ; - vérifier que la serrure intelligente lui est connue par comparaison de l'identifiant de serrure intelligente reçu à celui stocké par la clé virtuelle ; - valider la signature par utilisation de la clé publique de la serrure 15 intelligente stockée (klock,pub) ; et, si la validation est positive - sélectionner et mettre en oeuvre du niveau d'interaction reçu par la clé virtuelle ; et après validation de l'interaction - envoyer un message à la serrure intelligente comprenant : - l'identifiant de la clé virtuelle (keyo) ; et 20 - une première clé d'ouverture fonction du challenge reçu (chat) et de l'information (Kyi) contenue dans la clé virtuelle.