XML Key Management Specification
XKMS (XML Key Management Specification) est une spécification de validation et d'enregistrement de clé publique utilisable de façon conjointe au signature XML et proposée notamment par Microsoft et Verisign au W3C.
Objectifs
Les objectifs principaux de XKMS (XML Key Management Specification) sont :
- fournir un protocole de validation et d'enregistrement des clefs publiques entre les applications Web et les services Web.
- éliminer le besoin pour une application de gérer la syntaxe et la sémantique complexes des PKI en utilisant un protocole simple formaté en XML en vue d'obtenir des informations sur une clé auprÚs d'un service XKMS ;
- déplacer la complexité de l'application cliente au niveau de l'infrastructure, rendant ainsi l'application plus simple et petite.
Historique
XKMS est développé par le XKMS Working Group du W3C. Le premier document de travail sur XKMS a été publié le . Un second document est sorti le .
Description
XKMS est destinĂ© Ă ĂȘtre implĂ©mentĂ© en tant que service web permettant Ă un client d'accĂ©der Ă des fonctions que l'on retrouve dans les standards des infrastructures Ă clĂ©s publiques (PKI).
La spécification XKMS est composée de deux protocoles :
- X-KISS (XML Key Information Service Specification) pour les requĂȘtes de localisation et de validation des clĂ©s publiques ;
- X-KRSS (XML Key Registration Service Specification) pour enregistrer, renouveler, révoquer et obtenir des clés.
XKISS
Ce protocole de XKMS gÚre le mécanisme de localisation et de validation des clés
La spécification XKISS définit les deux opérations suivantes :
- Locate
- localise le service pour obtenir des informations sur la clĂ© publique correspondant Ă l'Ă©lĂ©ment <ds:KeyInfo>. Cette opĂ©ration n'est pas obligĂ©e de se prononcer sur la validitĂ© des donnĂ©es liĂ©es Ă la clĂ© ; elle peut permettre de relayer la requĂȘte vers d'autres services ou se comporter comme passerelle vers une PKI.
- Validate
- non seulement elle recherche la clé publique correspondant à l'élément <ds:KeyInfo>, mais elle assure également que les informations liées à la clé retournées sont dignes de confiance.
XKRSS
Ce protocole de XKMS est liée au mécanisme d'enregistrement d'une paire de clés auprÚs d'un fournisseur de services. Il existe deux façons d'enregistrer des clés auprÚs d'un service XKMS :
- le client génÚre une paire de clés et donne sa clé publique, avec d'autres informations au service d'enregistrement ;
- le service XKMS gĂ©nĂšre la paire pour le client, enregistre la clĂ© publique et envoie la clĂ© privĂ©e au client. Le client peut aussi demander au service XKMS de garder la clĂ© privĂ©e. La clĂ© privĂ©e est conservĂ©e par le service au cas oĂč le client la perdrait.
La spécification du service XKRSS définit quatre opérations :
- Register
- attache des informations à une clé avec un key binding. Soit le client donne sa clé publique accompagnée d'une preuve de la possession de la clé privée associée, soit le service génÚre la paire de clés pour le client. Le service peut demander davantage d'informations au client avant d'enregistrer la clé publique (et éventuellement la clé privée).
- Reissue
- un key binding enregistrĂ© est rĂ©gĂ©nĂ©rĂ©. De nouveaux credentials sont gĂ©nĂ©rĂ©s dans la PKI sous-jacente. MĂȘme s'il n'y a pas de durĂ©e de vie pour un key binding XKMS, les credentials gĂ©nĂ©rĂ©s par la PKI peuvent en avoir et doivent donc ĂȘtre rĂ©gĂ©nĂ©rĂ©s pĂ©riodiquement.
- Revoke
- cette opération permet à un client de détruire les objets de données attachés à une clé. Par exemple, un certificat X.509 attaché à une clé d'un service XKMS est détruit quand cette opération est appelée ;
- Recover
- cette opération permet à un client de recouvrer sa clé privée. Afin que cette opération soit possible, il faut que la clé privée ait été enregistrée par le service. L'une des façons pour le service d'obtenir cette clé est quand le service génÚre une paire de clés.
L'opération de recouvrement est trÚs utile si la clé privée est utilisée pour chiffrer des données. Si elle est perdue, les données chiffrées deviennent inaccessibles et sont donc perdues. Dans ce cas, il est intéressant de générer la clé privée cÎté serveur et de la mémoriser.
Si la clĂ© privĂ©e perdue servait uniquement Ă signer des documents, une nouvelle clĂ© peut ĂȘtre gĂ©nĂ©rĂ©e sans influence sur la validitĂ© des documents signĂ©s existants. Ainsi, les clĂ©s utilisĂ©es dans cette optique peuvent ĂȘtre gĂ©nĂ©rĂ©es par le client en toute sĂ©curitĂ©, et la clĂ© privĂ©e ne devrait jamais ĂȘtre enregistrĂ©e par le service.
Un service XKMS implémentant la spécification XKRSS peut choisir d'offrir certaines, toutes ou aucune de ces opérations. La spécification XKRSS n'oblige pas un service XKMS à implémenter l'une ou l'autre de ces opérations.