Ta solution est mauvaise.
Elle ne vérifie rien ce qui n'est pas normal. Il y a des solutions standard qu'il
faut utiliser.
Après avoir regardé le certificat du lien que tu as donné, j'ai pu voir qu'il y avait des extensions X.509 dans le certificat mentionnant un point de distribution pour une CRL ainsi qu'un point de distribution pour OCSP. Ce qui implique donc de vérifier que le certificat que tu utilises n'a pas été révoqué.
D'une manière générale, avant d'utiliser un certificat X.509 (qu'elle qu'en soit l'utilisation) tu dois vérifier que (pas forcément dans cet ordre) :
1 / Le certificat est correctement formaté, c'est à dire dans un encodage adapté, généralement DER et que toutes les extensions X.509 du certificat marquées comme critiques soient comprises par ton système.
Si une extension marquée critique n'est pas comprise, ton système
doit rejeter le certificat.
2 / La période de validité doit être correcte. C'est très facile à vérifier.
3 / La chaine de certification doit être valide. Si tu ne vois pas de quoi je parle tu as de la lecture à faire
4 / Les CRLs disponibles doivent être téléchargées et examinées afin de vérifier que le certificat n'a pas été révoqué.
Chacune de ces étapes doit être programmée à la main. La partie 3 qui est relativement complexe existe souvent déjà dans les API de sécurité.
La RFC 3280 propose un algorithme standard pour vérifier une chaine de certification qui sert souvent d'algorithme de base pour les API. Par exemple pour BouncyCastle c'est cet algo qui est implémenté.
Ce mécanisme est décrit en détail dans la section 6 de la RFC 3280.
Si tu voulais de la doc je te conseille cette RFC.
Partager