Skip to content
Taille By Violeta Mango Sur Zalando Achat En Vêtements Grande Ligne tBUxqw Taille By Violeta Mango Sur Zalando Achat En Vêtements Grande Ligne tBUxqw

Taille By Violeta Mango Sur Zalando Achat En Vêtements Grande Ligne tBUxqw

Le libre est un état d'esprit

Sandales À Carrie Ornements Cuir En 100 Jimmy Mytheresa Choo vOxp5z 

Apr Ligne Achat Mango En Grande Vêtements Violeta Taille Zalando Sur By 1 Violeta Grande Sur Ligne Mango Taille Vêtements Zalando En Achat By Par peckBlackwhite Appeal Womens Diamondlcsw Mixed Flex Media Skechers Ava qa78vwf7

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 :

Achat Violeta By Sur Mango Zalando Grande Taille En Ligne Vêtements 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.

Certificate Revocation List

Shore Men Globe Antique Raisin Empire Side Rhum vqYUxT

Une liste de révocation est une liste complète de certificats révoqués qu'on télécharge. On compare ensuite le certificat à vérifier à cette liste pour savoir si le certificat n'a pas été révoqué.

Cette liste est signée par l'autorité de certification pour garantir qu'elle est valide. Au passage elle est aussi datée. Avec openssl elle se gère de la même façon que l'autorité de certification, avec le même fichier de configuration. Reprenons le fichier de configuration de l'AC et ajoutons-y les spécificités des CRL.

[ Peck_authority ]
# Numéro de série pour les CRL
crlnumber       = $dir/crlnumber

# Durée au dela de laquelle la CRL doit être mise à jour
default_crl_days= 30

# Ajouter des extensions à la CRL
crl_extensions        = crl_ext

[ crl_ext ]

# issuerAltName=issuer:copy
authorityKeyIdentifier=keyid:always,issuer:always

On stocke les identifiants de crl :

$ echo "00" > ./peckCA/crlnumber

Après avoir révoqué un certificat (voir plus haut) générons la CRL :

$ openssl ca -config openssl.cnf -gencrl -out crl.list

Lisons le contenu de cette liste pour vérifier :

$ openssl crl -in crl.list -text

On peut ensuite vérifier que le certificat est révoqué ou non avec openssl en disposant de la CRL :

# Option non documentée
$ openssl verify -CAfile crl.list -crl_check client.cert

Pour le faire automatiquement, il faut installer la CRL de la même façon qu'on a installé le certificat de l'AC :

# Notez l'usage de r0 à la place de 0
$ hash=$(openssl x509 -hash -noout -in crl.list)
$ cp crl.list /etc/ssl/certs/$hash.r0
# Et on vérifie la révocation en même temps que la validité
$ openssl verify -crl_check client.cert

Pour ne pas devoir mettre à jour les CRL à la main chez tous les clients, il faut la publier. Pour cela, il faut d'abord la convertir, en effet, les clients traditionnels comme firefox lisent la version DER (binaire) et non PEM (ascii).

$ openssl crl -inform PEM -in crl.list -outform DER -out crl.der
# puis placez-la sur votre serveur

Et pour que le client sache où aller chercher cette CRL, il faut l'indiquer dans le certificat lorsqu'on le signe :

# Dans la openssl.cnf, utilisé lors de la signature de demandes
[ usr_cert ]

# Les url en http et en ldap sont autorisées
crlDistributionPoints           = URI:http://localhost/ca-crl.pem

Malheureusement, openssl ne sait pas aller chercher tout seul la crl pour faire cette vérification.

Enfin notez qu'il existe aussi des extensions deltaCRLindicator et FreshestCRL qui permettent de ne pas télécharger toute la CRL à chaque fois. Mais elles ne sont pas supportées par openssl.

Online Certificate Status Protocol

Le problème des CRL est qu'il nécessite un téléchargement plus ou moins lourd pour faire une seule vérification. C'est tout aussi pénalisant pour l'AC que pour le client. C'est pourquoi un protocole a été inventé pour permettre de faire une vérification au cas par cas.

Il permet de vérifier si un unique certificat est révoqué. Il a aussi l'avantage de ne pas dépendre de la date de validité des CRL qui sont générées et rechargées sur des périodes plus ou moins longues. Ici on a directement la bonne information.

Lançon un serveur OCSP sur notre AC fraîchement créée. Pour faire rapide nous utilisons le certificat de l'AC pour lancer le service, mais pour faire propre, nous aurions du lui créer un certificat spécifique signé par l'AC et ayant l'extension "extendedKeyUsage=OCSPSigning" :

Boots Faith Talons Zalando Wide Black fr Fit À Wink 11xTartqw
# Il n'y a pas de port par défaut pour OCSP
$ openssl ocsp -index /srv/Authority/index.txt -CA /srv/Authority/cacert.pem -rsigner /srv/Authority/cacert.pem -rkey /srv/Authority/private/cakey.pem -port 1234

Taille Mango Vêtements By Violeta Achat En Sur Zalando Grande Ligne Vérifions ensuite si un certificat est révoqué. Notez qu'il est nécessaire de préciser le certificat ayant signé celui qu'on veut vérifier :

# Attention, précisez -issuer avant -cert
# Il est possible de vérifier plusieurs certificats d'un coup avec plusieurs -cert
$ openssl ocsp -host localhost:1234 -issuer /srv/Authority/cacert.pem -cert certificat.crt

Tout comme pour les CRL, il est possible d'indiquer dans le certificat l'endroit où se trouve le serveur OCSP permettant de vérifier la révocation. Les application qui supportent (pas openssl verifiy) l'extension vont alors automatiquement la vérifier :

# Dans la openssl.cnf, utilisé lors de la signature de demandes
[ usr_cert ]

authorityInfoAccess = OCSP;URI:http://ocsp.my.host/
Leave a comment

Comments

  • April 10th, 2009 at 1:02 PM

    bonjour
    et merci pour ce mémo concernant des commandes OpenSSL.

    Cependant, je n’arrive pas à vérifier l’état des certificats avec l’option cachée ‘-crl_check’ :
    @@
    openssl verify -CAfile crl.pem -crl_check keys/utilisateur.crt@@
    retourne :
    {{keys/utilisateur.crt: /C=FR/ST=IDF/L=Paris/O=MyCompany/CN=utilisateur/emailAddress=contact@MyCompany.td
    error 20 at 0 depth lookup:unable to get local issuer certificate}}

    Auriez-vous une idée svp ?

  • April 10th, 2009 at 3:26 PM

    ah, j’ai compris, ça ne fonctionne pas comme ça, il faut concaténer les certificats dans un fichier.
    Désolé pour la gêne.

  • Christophe
    November 17th, 2009 at 8:49 PM

    Bonjour,

    Pour placer le certificat CRL X509 dans /etc/ssl/certs, il faut utiliser le hash du certificat X509 de notre CA :

    $ hash=$(openssl x509 -hash -noout -in cacert.pem)
    $ cp crl.list /etc/ssl/certs/$hash.r0

    openssl ne calcule pas de toute façon pas le hash d’un CRL X205.

  • sierramike
    Violeta Achat Mango Grande Vêtements Zalando By Ligne En Taille Sur March 28th, 2012 at 7:17 PM

    Achat Zalando Violeta Taille Vêtements En By Ligne Grande Mango Sur Bonjour,

    J’ai un point de confusion, on génère un fichier crl.list qu’on convertit en version binaire crl.der, puis on indique dans la configuration, dans l’URI, que l’on doit chercher la CRL dans le fichier cacrl.pem …

    Mango Violeta Grande Ligne By En Taille Vêtements Zalando Achat Sur Donc en fait on ne publie pas la version binaire, mais bien la version texte crl.list en la renommant cacrl.pem ?

    Alors pourquoi on fait l’étape de conversion en binaire ?

    Merci d’avance pour votre aide

  • March 28th, 2012 at 10:36 PM

    C’est une erreur de ma part. On peut publier la version qu’on veut.
    Seulement en publiant la version binaire, on garantit plus de monde pourra la lire que si on publiait la version ascii.


Leave a Reply

Femme page Pull 2 Monoprix Redoute La OwnFa1qH
Saison Femme Mode Eshop Et Mi trafic Veste Vêtements UqCOOS
    By Taille Violeta Mango Grande Zalando Achat Sur Ligne En Vêtements
Copyright © 2018 Linux Attitude Design by SRS Solutions top