The Daily Shaarli
Depuis plusieurs mois, j'utilise quelques extensions Firefox supplémentaires par rapport à mon tas d'extensions :
Je recommande l'utilisation de ces extensions. Les trois premières peuvent être installées chez des novices car elles m'ont posé aucun problème.
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 - 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 :
Actalis Authentication Root CA
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 Global Root G3
Digicert Assured ID Root CA
Digicert High Assurance EV 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
HARICA TLS RSA Root CA 2021
HARICA TLS ECC Root CA 2021
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 28/09/2022 : ajout de Entrust Root Certification Authority - EC1. FIN DE L'ÉDIT.
ÉDIT DU 22/01/2024 : DST Root CA n'est plus empaqueté, donc je le retire de la liste + j'ai ajouté Digicert Global Root G3. FIN DE L'ÉDIT.
ÉDIT DU 27/06/2025 : ajout de Digicert High Assurance EV Root CA. FIN DE L'ÉDIT.
MODIF du 08/01/2026 : ajout de HARICA TLS RSA Root CA 2021 et HARICA TLS ECC Root CA 2021. FIN DE MODIF.
MODIF du 24/07/2026 : ajout de Actalis Authentication Root CA. FIN DE MODIF.
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.).
TL;DR :
/etc/ssl/openssl.cnf (à la fin) ;
L'un de nos prestataires met à jour, vers Debian 10, un serveur placé sous sa totale responsabilité. C'est notre premier serveur Debian 10. Depuis ce moment-là, nos sauvegardes Bacula de ce serveur ne se font plus.
Les journaux du directeur Bacula indiquent :
<CENSURE>-dir JobId XXXX: Warning: bsock.c:107 Could not connect to Client: <CENSURE>-fd on <CENSURE>:9102. ERR=Connection refused
<CENSURE>-dir JobId XXXX: Fatal error: bsock.c:113 Unable to connect to Client: <CENSURE>-fd on <CENSURE>:9102. ERR=Connection refused
Sur la machine à sauvegarder Debian 10, le file daemon de Bacula n'est pas démarré. Une erreur empêche de le démarrer :
<CENSURE>-fd: openssl.c:68 Error loading certificate file: ERR=error:140AB18E:SSL routines:SSL_CTX_use_certificate:ca md too weak
OpenSSL = implémentation de TLS. « md » = message digest = fonction de condensation / hachage. Nous utilisons une autorité de certification x509 interne / privée / maison. Avant signature, les certificats émis / clients sont signés avec SHA-1. Cette fonction cryptographique est très fortement dépréciée car elle n'offre plus un niveau de sécurité acceptable. C'est l'un des changements entre Debian 9 Stretch et Debian 10 Buster.
Pour autoriser l'utilisation de SHA-1, il suffit de mettre en commentaire la ligne CipherString = DEFAULT@SECLEVEL=2 du fichier /etc/ssl/openssl.cnf. La solution durable sera de remplacer notre autorité de certification x509 maison par une nouvelle utilisant des algorithmes de signature plus récents.
Désormais, le file daemon de Bacula démarre. bconsole depuis le director fonctionne. Tout va bien. Enfin, on le croit…
La nuit suivant la réparation sus-rapportée, la sauvegarde de ce serveur Debian 10 ne se fait toujours pas. Le journal du directeur Bacula consigne :
<CENSURE>-sd JobId XXXX: Fatal error: bsock.c:569 Packet size=XXXXXX too big from "client:<CENSURE>:9103. Terminating connection.
<CENSURE>-sd JobId XXXX: Fatal error: Error creating JobMedia records: 1000 OK VolName=Inc-2881 VolJobs=1 VolFiles=0 VolBlocks=3 VolBytes=193738 VolABytes=0 VolHoleBytes=0 VolHoles=0 VolMounts=35 VolErrors=0 VolWrites=289795 MaxVolBytes=0 VolCapacityBytes=0 VolStatus=Used Slot=0 MaxVolJobs=1 MaxVolFiles=0 InChanger=0 VolReadTime=0 VolWriteTime=320926443 EndFile=1 EndBlock=3432546605 VolType=1 LabelType=0 MediaId=2881 ScratchPoolId=0
<CENSURE>-dir JobId XXXX: Error: getmsg.c:185 Malformed message: Jmsg JobId=XXXX type=4 level=1611790411 <CENSURE>-fd JobId XXXX: Error: bsock.c:388 Wrote 2134 bytes to Storage daemon:<CENSURE>:9103, but only 0 accepted.
<CENSURE>-dir JobId XXXX: Error: getmsg.c:185 Malformed message: Jmsg JobId=XXXX type=3 level=1611790411 <CENSURE>-fd JobId XXXX: Fatal error: backup.c:843 Network send error to SD. ERR=Connection reset by peer
<CENSURE>-dir JobId XXXX: Error: getmsg.c:185 Malformed message: Jmsg JobId=XXXX type=4 level=1611790411 <CENSURE>-fd JobId XXXX: Error: bsock.c:271 Socket has errors=1 on call to Storage daemon:<CENSURE>:9103
<CENSURE>-dir JobId XXXX: Fatal error: bsock.c:569 Packet size=XXXXXX too big from "Client: <CENSURE>-fd:<CENSURE>:9102. Terminating connection.
<CENSURE>-dir JobId XXXX: Fatal error: No Job status returned from FD.
Hum… Problème de communication entre la machine à sauvegarder et le serveur de stockage Bacula (storage daemon).
J'avoue, j'ai cru à une erreur TLS (genre version minimale de TLS imposée par Debian 10 = TLS 1.2 alors que le storage daemon ne sait pas parler cette version). Mais j'ai la même erreur sur une machine virtuelle Debian 10 montée à l'arrache dans laquelle je configure Bacula pour ne pas utiliser TLS.
Une recherche sur le web donne un diagnostic convergeant : Bacula Packet size too big | deranfangvomen.de, Bacula - Users - Packet size too big from client, Bacula Frequently Asked Questions.
Un démon de stockage en version 5.X (Debian 8) est incompatible avec un file daemon en version 9.X (Debian 10).
Solution à court terme : downgrader les paquets Bacula sur la machine Debian 10. Pour ce faire, il faut ajouter les dépôts Stretch dans /etc/apt/sources.list (ne pas oublier le dépôt security), apt-get upate, apt-get install bacula-fd=7.4.4+dfsg-6+deb9u2 bacula-common=7.4.4+dfsg-6+deb9u2.
Solution à long terme : installer une deuxième architecture Bacula pour nos machines >= Debian 10. L'infra actuelle continuera de s'occuper de nos serveurs < Debian 10…
