Si tu me lis, tu sais que les certificats x509 ont plusieurs failles conceptuelles. La plus grande est que n'importe quelle autorité de certification (Let's Encrypt, DigiCert, etc.) reconnue par un logiciel peut signer / légitimer un certificat x509 pour n'importe quel nom Internet. Exemple : impots.gouv.fr achète ses certificats x509 auprès de la société commerciale Certigna. Pourtant, rien empêche Let's Encrypt de signer un certificat valide pour impots.gouv.fr (en réalité, il y a quelques mécanismes timides : DNS CAA, DANE TLSA, Certificate Transparency, etc.).
Ces """"faux"""" certificats peuvent être utilisés pour créer un faux site web impots.gouv.fr ou pour intercepter les communications entre un citoyen et impots.gouv.fr.
Or, quand on regarde les autorités de certification qui sont enregistrées dans le catalogue de certificats d'autorité d'un navigateur web, il y a de quoi s'interroger :
Je ne conteste pas l'utilité de toutes ces autorités… pour les citoyens et les professionnels concernés. Mais, je ne suis pas concerné par tout ça : je ne consulte pas ces sites web-là, je ne suis pas citoyen de ces États-là, etc. TeliaSonera est un important transitaire Internet. Il est donc en bonne position pour intercepter des communications. Google est hégémonique. Je ne consulte pas de sites web Atos. Etc. Malgré ça, ces autorités peuvent émettre des certificats pour les sites web que je visite. C'est là tout le problème.
On peut donc retirer les autorités de certification que l'on n'utilise pas pour un gain variable en sécurité. Environ nul pour un ordinateur qui reste à domicile. Intéressant pour un ordinateur personnel qui utilise des points d'accès Wi-Fi gratuits ou pour un ordinateur professionnel qui se déplace chez les clients (et leurs équipements d'interception du trafic TLS) ou pour un séjour dans des pays autoritaires (et leurs équipements d'interception du trafic TLS).
En 2019, Aeris a publié sa liste des autorités de certification x509 qui lui suffisent pour aller sur les sites web qu'il veut. Comme elle n'est plus disponible, je la recopie ici :
COMODO ECC Certification Authority
Certplus Class 2 Primary CA
Certinomis - Root CA
Baltimore CyberTrust Root
Amazon Root CA 1
DigiCert Global Root CA
DigiCert Assured ID Root CA
DCertigna
Deutsche Telekom Root CA 2
COMODO RSA Certification Authority
Entrust Root Certification Authority - G2
DST Root CA X3
DigiCert Global Root G2
DigiCert High Assurance EV Root CA
GlobalSign Root CA
GlobalSign Root CA - R2
GlobalSign Root CA - R3
GeoTrust Primary Certification Authority - G2
GeoTrust Global CA
Go Daddy Root Certificate Authority - G2
Izenpe.com
QuoVadis Root CA 2
QuoVadis Root CA 2 G3
Starfield Root Certificate Authority - G2
SSL.com Root Certification Authority ECC
SSL.com Root Certification Authority RSA
T-TeleSec GlobalRoot Class 2
USERTrust RSA Certification Authority
USERTrust ECC Certification Authority
Certum Trusted Network CA
Depuis sept mois, j'utilise la liste réduite suivante :
Baltimore CyberTrust Root
Buypass Class 2 Root CA
Comodo RSA Certification Authority
Comodo ECC Certification Authority
Dhimyotis Certigna
Digicert Global Root CA
Digicert Global Root G2
Digicert Assured ID Root CA
DST Root CA
Entrust Root Certification Authority - G2
Entrust Root Certification Authority - EC1
GlobalSign Root CA
GlobalSign Root CA - R2
GlobalSign Root CA - R3
Go Daddy Root Certificate Authority - G2
ISRG Root X1
QuoVadis Root CA 2 G3
Starfield Services Root Certificate Authority - G2
Starfield Root Certificate Authority - G2
UserTrust ECC Certification Authority
UserTrust RSA Certification Authority
ÉDIT DU 21/08/2021 : ajout de QuoVadis Root CA 2 G3. FIN DE L'ÉDIT.
ÉDIT DU 04/05/2022 : cette liste répond toujours à mes besoins. FIN DE L'ÉDIT.
ÉDIT DU 28/09/2022 : ajout de Entrust Root Certification Authority - EC1. FIN DE L'ÉDIT.
Comment expliquer la différence entre ma liste et celle d'Aeris ? J'ai un usage très routinier du web. Je consulte peu de nouveaux sites web.
Dans Firefox : menu « Édition », « Préférences », « Vie privée et sécurité », « Afficher les certificats » (tout en bas), onglet « Autorités ». Je clique sur chaque certificat d'autorité puis sur « Modifier la confiance… » puis je décoche la case « Ce certificat peut identifier des sites web » puis « OK ».
De mémoire, il est vain de supprimer les certificats d'autorité car ils reviennent automatiquement.
Aeris retire sa confiance envers les autorités de certification en utilisant la commande certutil
:
certutil -d ~/.mozilla/firefox/XXXXXXXX.default/ -L
;certutil -d ~/.mozilla/firefox/XXXXXXXX.default/ -M -n '<NOM_CERTIFICAT' -t ',,'
Avantage de la ligne de commande : scriptable / automatisable.
Inconvénients de la ligne de commande :
certutil
ne renvoient pas la même information en ce qui concerne la confiance accordée à un certificat (confiance accordée d'un côté, refusée de l'autre). Incohérence entre les deux outils que je n'explique pas.Dans Thunderbird, je retire toutes les autorités de certification sauf celles qui signent les certificats des serveurs emails que j'utilise. En clair, j'ai deux autorités au lieu de plusieurs dizaines. ÉDIT DU 24/09/2022 : il faut être plus prudent si 1) tu affiches tes emails en HTML ; 2) tu utilises OpenPGP (chiffrement des emails) car la recherche de clés utilise le protocole VKS qui est transporté chiffré au-dessus de TLS, donc il faut laisser actif le certificat x509 racine de celui du serveur de clés keys.openpgp.org, c'est-à-dire « ISRG Root X1 » (Let's Encrypt). FIN DE L'ÉDIT.
Il faudrait aussi nettoyer /etc/ssl/certs
et les autres catalogues de certificats (celui utilisé par les applications Java, par exemple). Ça ne me semble pas être prioritaire : en dehors de Firefox / Thunderbird, peu de mes logiciels communiquent avec l'extérieur ou alors pour effectuer des tests (cas de wget
, curl
, openssl s_client
, etc.).