Notions de sécurité

La cryptographie classique à clé privée ou symétrique requiert une clé confidentielle unique qui est partagée par deux correspondants ou plus pour assurer la sécurité de la communication. Cette clé est utilisée à la fois pour le cryptage et pour le décryptage des messages échangés ; elle doit donc être transmise au préalable à chacun des correspondants, et ce en toute confidentialité. Le problème de cette méthode est la difficulté à assurer la sécurité au niveau de la transmission et du stockage de la clé.

La cryptographie à clé publique résout ce problème par l'utilisation de paires clé publique/clé privée et par une méthode sécurisée de transmission de la clé. La clé publique, disponible librement, est utilisée pour crypter des messages qui peuvent être décryptés uniquement par le détenteur de la clé privée correspondante. Cette dernière est stockée à l'abri, avec d'autres informations de sécurité, dans un objet crypté appelé wallet.

Les algorithmes de clé publique peuvent garantir la confidentialité d'un message mais pas nécessairement la sécurité des communications, car ils ne vérifient pas les identités des correspondants. Pour établir des communications sécurisées, il est important de vérifier que la clé publique utilisée pour crypter un message appartient effectivement au destinataire cible. Sinon, un tiers peut potentiellement écouter la communication et intercepter les demandes de clé publique et substituer sa propre clé publique par une clé valide (l'attaque dite de l'homme au milieu (man-in-the-middle)).

Pour éviter ce type de malveillance, il faut vérifier l'identité du possesseur de la clé publique, c'est-à-dire procéder à une authentification. Cette dernière peut être réalisée par l'intermédiaire d'une autorité de certification, c'est-à-dire une tierce partie disposant de la confiance des correspondants.

L'autorité de certification émet des certificats à clé publique contenant le nom de l'entité, la clé publique et d'autres informations de sécurité, généralement le nom de l'autorité de certification, sa signature et les dates de validité du certificat (date de début et date de fin).

L'autorité de certification utilise sa clé privée pour crypter le message, la clé publique étant utilisée pour le décrypter : on vérifie ainsi que le cryptage a été effectué par l'autorité de certification. La clé publique de l'autorité de certification est connue, elle n'a pas à être authentifiée chaque fois qu'elle est utilisée. Les clés publiques des autorités de certification sont enregistrées dans un wallet Oracle.