Cryptographie : Signature numérique et Chiffrement
Certificat électronique
Les cinq prédicats d'un certificat sont :
- Confidentialité
- Intégrité
- Authenticité
- Non-révocation
- Non-répudiation
Les trois classes de certificat électronique :
- Classe I : Ne garantit pas l'identité du titulaire du certificat mais seulement l'existence de son adresse e-mail.
- Classe II : Garantit les informations du titulaire et de son entreprise (contrôlées par l'autorité de certification sur pièces justificatives transmises par voie postale).
- Classe III : Idem à la Classe II, assure un contrôle supplémentaire de l'identité du titulaire.
Les certificats sont des petits fichiers divisés en deux parties :
- La partie contenant les informations.
- La partie contenant la signature de l'autorité de certification.
La structure des certificats est normalisée par le standard X.509v3 de l'UIT, qui définit les informations contenues dans le certificat :
- La version de X.509 à laquelle le certificat correspond
- Le numéro de série unique du certificat (utilisé également par la CRL)
- L'algorithme asymétrique de chiffrement utilisé pour signer le certificat (norme ISO)et la fonction de hachage utilisée
- Par exemple : RSA avec SHA-1
- Le nom (DN, pour Distinguished Name) de l'autorité de certification émettrice (norme X.500)
- Par exemple : c=FR, o=CERTINOMIS
- La date de début de validité du certificat
- La date de fin de validité du certificat
- Le nom (CN, pour Common Name) du propriétaire du certificat (norme X.500)
- Par exemple : c=FR, o=ISI-Technologie, cn=Fabrice Gerges
- L'objet de l'utilisation de la clé publique (Public Key Usage)
- La clé publique du propriétaire du certificat ainsi que les algorithmes avec lesquels elle doit être utilisée
- Par exemple : RSA et MD5
- La signature de l'émetteur du certificat (Thumbprint).
A cela se rajoutent des extensions qui sont de quatre types :
- Information sur les clés :
- L'identifiant de la paire de clés de l'AC
- L'objet de la clé de l'AC
- Le type d'utilisation de la clé (Key Usage), qui peut prendre les valeurs :
- non-repudiation
- certificate signing
- CRL signing
- digital signature
- data signature
- symetric key encryption for key transfer
- Diffie-Helman key agreement
- La date d'expiration de la clé privée associée
- L'emplacement de la CRL
- Informations sur l'utilisation du certificat :
- La politique de certification (PC ou Certificate Policies en anglais) qui est représentée par des Object Identifier (OID) standardisés au niveau international
- La politique d'association de certificat (Policy Mappings en anglais) qui permet de définir l'association entre deux AC
- Attributs des utilisateurs et des AC :
- Subject Alternative Name qui peut prendre pour valeurs :
- une adresse e-mail
- un nom de domaine
- une adresse IP
- une adresse X.400
- un nom EDI
- une URL
- un nom défini par une OID
- Issuer Alternative Name qui permet de donner un nom spécifique et explicite à une AC
- Contraintes sur la co-certification :
- Basic Constraints qui indique si c'est un utilisateur final ou si c'est une AC
- Name Constraints qui permet de restraindre les domaines de confiance
- Policy Constraints qui permet de spécifier les politiques de certificcations acceptables pour les certificats dépendants
L'ensemble de ces informations (informations + clé publique du demandeur) est signé par l'autorité de certification, cela signifie qu'une fonction de hachage crée une empreinte de ces informations, puis ce condensé est chiffré à l'aide de la clé privée de l'autorité de certification; la clé publique ayant été préalablement largement diffusée afin de permettre aux utilisateurs de vérifier la signature avec la clé publique de l'autorité de certification.
Signatures de certificats :
On distingue principalement deux types de certificats selon le niveau de signature :
- Les certificats auto-signés sont des certificats à usage interne. Signés par un serveur local, ce type de certificat permet de garantir la confidentialité des échanges au sein d'une organisation, par exemple pour le besoin d'un intranet. Il est ainsi possible d'effectuer une authentification des utilisateurs grâce à des certificats auto-signés.
- Les certificats signés par un organisme de certification sont nécessaires lorsqu'il s'agit d'assurer la sécurité des échanges avec des utilisateurs anonymes, par exemple dans le cas d'un site web sécurisé accessible au grand public. Le certificateur tiers permet d'assurer à l'utilisateur que le certificat appartient bien à l'organisation à laquelle il est déclaré appartenir.
Types d'usages :
Les certificats servent principalement dans trois types de contextes :
- Le certificat client, stocké sur le poste de travail de l'utilisateur ou embarqué dans un conteneur tel qu'une carte à puce, permet d'identifier un utilisateur et de lui associer des droits. Dans la plupart des scénarios il est transmis au serveur lors d'une connexion, qui affecte des droits en fonction de l'accréditation de l'utilisateur. Il s'agit d'une véritable carte d'identité numérique utilisant une paire de clé asymétrique généralement d'une longueur de 512 à 1024 bits.
- Le certificat serveur installé sur un serveur web permet d'assurer le lien entre le service et le propriétaire du service. Dans le cas d'un site Internet, il permet de garantir que l'URL et en particulier le domaine de la page web appartiennent bien à telle ou telle entreprise. Par ailleurs il permet de sécuriser les transactions avec les utilisateurs grâce au protocole SSL.
- Le certificat VPN est un type de certificat installé dans les équipement réseaux, permettant de chiffrer les flux de communication de bout en bout entre deux points (par exemple deux sites d'une entreprise). Dans ce type de scénario, les utilisateurs possèdent un certificat client, les serveurs mettent en oeuvre un certificat serveur et les équipements de communication utilisent un certificat particulier (généralement un certificat IPSec).