Niveau :
Résumé : openssl
Vérification
Maintenant que nous avons des certificats propres et bien signés il va falloir les vérifier. Mais il ne s'agit pas simplement de vérifier que le certificat est valide et signé par une autorité de confiance. Tout d'abord, il fautde vérifier toute sa chaine de confiance. Ensuite il faut vérifier ses extensions, par exemple s'il va être utilisé pour les usages auxquels on l'a prévu.
Openssl permet de faire la vérification de la chaine de certification ainsi que la vérification de l'usage. Pour cela il faut installer l'autorité de confiance :
# On trouve le hash du certificat de l'AC $ hash=$(openssl x509 -hash -noout -in cacert.pem) # On installe l'AC en utilisant ce hash (il faut être root ici) $ cp cacert.pem /etc/ssl/certs/$hash.0
Du coup la vérification d'un certificat se fait simplement :
$ openssl verify -purpose sslclient certificat.crt
Pour la vérification des extensions, il faut voir au cas par cas.
Mais contrairement à ce qu'on pense souvent, ce n'est pas tout. Il faut aussi vérifier que le certificat n'est pas révoqué, c'est-à-dire invalidé avant la date limite.
Révocation
La révocation d'un certificat se fait dans plusieurs cas :
- perte de la clé
- départ du propriétaire de la clé
- renouvellement de la clé
- ...
En gros à chaque fois qu'on veut garantir que la clé ne sera plus utilisée.
Pour révoquer un certificat alors qu'on a installé une AC openssl comme dans l'article précédent :
# On en profite pour indiquer pourquoi on le révoque # les raisons possibles sont : unspecified, keyCompromise, CACompromise, # affiliationChanged, superseded, cessationOfOperation, certificateHold or removeFromCRL $ openssl ca -config openssl.cnf -revoke client.cert -crl_reason keyCompromise
Il existe 2 mécanismes pour faire savoir au monde qu'on a révoqué un certificat : les CRL et le protocole OCSP.
continuer la lecture...