Secret, intégrité, identité
Discrétion symétrique, asymétrique
Le concept de base de pour assurer un secret que l'on transmet est la cryptographie. On partage une clé (logique, graphique, etc…) avec le destinataire. En informatique, cette clé permet de chiffrer et déchiffrer le secret. Évidement un problème se pose: assurer l'aspect privé du choix de la clé…
Afin d'éviter ce problème, une autre approche est envisagée, celle de disposer de deux clés particulières. Une privée que l'on est seul(e) à posséder et une clé publique que tout le monde peut consulter. Le chiffrage fait par cette clé publique n'est déchiffrage que par la clé privée associée. Nous parlons alors de chiffrage asymétrique, car contrairement au cas précédent, il n'est pas possible de déchiffrer le message avec la clé ayant permis son chiffrage. Ainsi, il est assuré qu'un secret chiffré par une clé publique ne pourra être lu que par la personne possédant la clé privée associée assurant ainsi la discrétion. De manière inverse, un message chiffré avec une clé privée pourra être déchiffré avec la clé publique associée.
Intégrité
Même si la discrétion est assurée, il reste toujours possible d'intercepter un message chiffré et le modifier ou de le remplacer par un autre, lui même chiffré avec la clé appropriée. Une des manières de garantir l'intégrité est de fournir avec le secret un sommaire concis du message envoyé. À la réception, un sommaire concis du même type est tiré du message, et il est comparé à celui reçu. S'ils ont identiques, le message est considéré comme intact. L'intérêt d'un sommaire est qu'il est très difficile de revenir au message original, et si l'algorithme de résumé est bien choisi, à deux messages ne peuvent (théoriquement) avoir un même sommaire. La méthode du sommaire est appelée une fonction de hachage, ou une fonction à sens unique ou encore tout simplement sommaire de message (message digest).
Il faut évidement pensé à trouver une manière d'acheminer le sommaire de manière sûre. Une des manières de le faire est de le sceller dans sa signature digitale.
Signature digitale
Une signature digitale permet à la réception d'un message d'assurer son origine. Une signature digitale est le chiffrage du sommaire du message par la clé privé de l'auteur. Donc uniquement l'auteur peut générer une signature, et comme celle-ci contient le sommaire du message, la signature n'est valable que pour le message qu'elle signe. Chaque signature est numérotée, empêchant une quelconque réutilisation.
Certification
Un certificat est la liaison entre le clé publique et l'identité de son propriétaire. Il s'agit d'un document normalisé, dûment rempli, joins à la clé publique du certifié, et signé par la clé privé du certifiant. Cela permet d'assurer l'appartenance de la clé publique utilisée pour le chiffrage du message et vice-versa de l'appartenance de la clé privée utilisée pour le chiffrage de la signature. La certification est assurée par soit un réseau de connaissances, soit par une autorité de confiance. Cette dernière est appelée une Autorité de Certification. Elle délivre des certifications en y apposant sa signature avec sa clé privée. Les certificats peuvent donc être utilisé pour l'identification.
Un certificat contient cinq types d'informations:
- sujet (subject): nom de l'entité certifiée, composé:
- du nom distinctif, qui est la représentation de l'identité du sujet certifié,
- de la clé publique.
- émetteur (issuer): nom de l'autorité de certification, composé:
- du nom distinctif, qui est la représentation de l'identité de l'émetteur,
- de la signature digitale.
- Période de validité (period of validity), composée des dates limites d'utilisation:
- pas avant,
- pas après.
- Informations administratives (administrative information), composée:
- du numéro de version, qui bien qu'étant un entier (au sens mathématique) ne subit pas nécessairement une opération arithmétique et ne devrait pas avoir de taille fixe.
- du numéro de série du certificat, il faut que deux certificats émit par un même fournisseur n'ai pas un même numéro de série.
Informations étendues (extended information): composée des extensions standard ou non, reconnues ou non par des logiciels. La composition est libre, même si certaines extensions sont normalisées.
LA normalisation des certificats actuelle est la norme X.509, cette norme définie entre autres la composition du nom distinctif:
- CN (Nom commun): Nom de l'entité certifiée (Nom prénom, adresse du site).
- O (Organisation): Nom de l'organisation à laquelle l'entité appartient.
- OU (Unité dans l'organisation): Dénomination du sous groupe auquel l'entité fait partie dans l'organisation.
- L (Ville): Dénomination de la ville d'appartenance de l'entité.
- ST (État, région): Dénomination de la région, état d'appartenance de l'entité.
- C (Pays): Dénomination du pays d'appartenance de l'entité.
Il ne faut pas perdre de vue que le nom distinctif est utile lors de la gestion des certificats via un répertoire (LDPA, texte ou autre).
L'autorité de certification, qui délivre les certificats peut appliquer une politique de certification plus ou moins souple sur la composition du nom distinctif. Par exemple, les navigateurs Netscape demande à ce que le nom commun du certificat d'un serveur corresponde au patron *.domaine-du-site.
Afin de permettre la transmission du certificat via des moyens de communication ne supportant pas les informations binaires, les certificats sont encodés au format PEM (Privacy Ehanced Mail) qui est une traduction ASCII de la forme binaire du certificat via l'encodage Base64.
Avant d'envoyer un message chiffré, l'origine doit récupérer et vérifier le certificat de chaque destinataire en vérifiant la signature digitale via la clé publique de l'autorité qui a délivré le certificat.
Autorité de Certification
L'autorité de certification certifie l'identité des entités qui lui en font la demande. Une entité analysant un certificat se doit alors de vérifier la validité du certificat de l'autorité l'ayant émis cette autorité a été certifiée par une autre AC, alors il faut aussi vérifier cette dernière, et ainsi de suite jusqu'à l'autorité en laquelle l'entité a entièrement confiance, généralement l'autorité qui s'est auto-certifiée. Nous parlons alors de chaîne de certification, cette chaîne est alors constituée du certificat de l'entité finale et si ce dernier a été fournis par une AC démet plusieurs certificats d'AC signés par d'autres AC. Même s'il est possible de refuser la confiance en un certificat dont la chaîne est considéré comme trop longue afin de limiter les dégâts d'un maillon faible (une chaîne est aussi puissante que le plus faible des ses maillons), les chaînes complètes sont requises car un certificat (lié à une clé publique) est toujours généré par un nombre limité d'AC sûres.
Le certificat se trouvant en bout de chaîne n'ayant pas pu être émit par une autorité est auto-signé. Comme la certification se traduit par apposition de la signature de l'autorité sur le certificat, le certificat se trouvant à la racine de toute chaîne de certification est donc auto-signé. Ces AC sont appelée AC racine. Comme il la seule manière de distinguer parmi deux AC Racines de même nom distinctif la bonne de la mauvaise est de comparer leur popularité, les navigateurs sont pré-configurés pour faire confiance aux AC Racine bien connues (il est possible d'en rajouter manuellement).
Une AC ne fait uniquement que fournir des certificats, elle les gère aussi. Elle définie leur durée de vie, leur renouvellement, et conserve la liste des certificats antérieurement émis, non périmés mais n'étant plus valides (l'entité n'est plus certifié comme membre d'une organisation par exemple). Ces certificats pourtant bien qu'étant temporairement valide, ne le sont réellement plus, ils ont été révoqués. Il est impossible de savoir à partir d'un certificat uniquement si celui-ci a été révoqué ou non. Il est donc nécessaire de contacter l'AC qui a émis le certificat pour vérifier que le certificat n'est pas dans sa Liste de Révocation de Certificats (LRC ou CRL en anglais). Ce n'est généralement pas automatique. Cela implique que dans une chaîne de vérification, il doit être vérifié qu'aucun des certificats (y compris et surtout les certificats des AC) n'a été révoqué.
La Liste de Révocation de Certificats (CRL)
Une Liste de Révocation de Certificat est une liste oblitérée identifiant les certificats révoqués. Cette liste est signée soit par l'AC soit le fournisseur de la liste s'il n'est pas l'AC. L'identification des certificats se fait par leur numéro de série. Dans une LRC, aucun certificat ne doit être retiré avant que sa période de validité soit dépassée.