Mise à jour (2 septembre 2020)

Un an s’est écoulé depuis que j’ai publié cette histoire. Depuis, Ubuntu 20.04 est sorti et la dernière version d’OpenSSL a été publiée le 6 août 2020. Fondamentalement, la seule chose que j’ai changée dans cette histoire était la lettre qui fait référence à la série OpenSSL 1.1.1, c’est-à-dire le changement de la lettre ‘c’ dans la version originale à la lettre ‘g’ dans les commandes de la mise à jour. Bien que ces changements soient reflétés dans les commandes, les images illustrant les résultats de ces commandes restent inchangées. Bonne lecture !

Si vous utilisez le protocole SSL/TLS dans votre application, ou si vous êtes sur le point de le faire, la recommandation est de maintenir OpenSSL à jour. C’est spécialement vrai non seulement en raison du rôle qu’il joue dans l’émission de certificats, mais aussi après les leçons apprises avec Heartbleed.

Ubuntu 20.04.1 (la dernière mise à jour 20.04 à partir de septembre 2020) est livré avec « OpenSSL 1.1.1 31 Mar 2020 » installé et Ubuntu 18.04.03 (la dernière mise à jour 18.04 à partir d’août 2019) est livré avec « OpenSSL 1.1.1 11 Sep 2018 » expédié. En ce moment, la dernière version de la série OpenSSL 1.1.1 est ‘1.1.1g’ expédiée le 6 août. 2020.

Dans cette histoire, je vais guider le lecteur sur la façon de procéder à cette mise à jour sans rompre toute interopérabilité avec les applications existantes qui dépendent d’OpenSSL.

Je suppose que le lecteur est familier avec les commandes bash et, bien sûr, la mise à jour sera sur une boîte Ubuntu 20.04 ou 18.04. Bien que je ne vois aucune raison pour laquelle cette procédure ne devrait pas fonctionner sur Ubuntu 16.04 (si vous le faites, veuillez me le faire savoir), elle n’a pas été testée.

La première chose à faire est de vérifier quelle version est installée:

$ openssl version

Dans mon cas, « OpenSSL 1.1.1 20 Mar 2020 » a été le résultat.

Etape 1 : Télécharger openssl-1.1.1g à partir d’ici et l’enregistrer dans le répertoire ~/Downloads:

$ cd ~/Downloads
$ wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz

Etape 2 : Vérifier la corruption en comparant la somme de contrôle SHA256 formulaire ici avec la somme de contrôle calculée du fichier zip téléchargé:

$ wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz.sha256
$ echo "$(cat openssl-1.1.1g.tar.gz.sha256) openssl-1.1.1g.tar.gz" | sha256sum --check

Dans l’image ci-dessous, les commandes ci-dessus sont soulignées en jaune et le résultat de la somme de contrôle (OK dans ce cas) est souligné en vert :

Etape 3 : Vérifier la signature du fichier zip téléchargé

Avant d’installer le contenu du fichier zip téléchargé, nous allons vérifier sa signature, en utilisant GnuPG livré avec Ubuntu (on peut lui faire confiance comme mentionné sur GnuPG).

A la page de téléchargement d’OpenSSL, nous trouvons l’information suivante : « Les clés PGP pour les signatures sont disponibles sur la page OMC. Les membres actuels qui signent les communiqués sont Richard Levitte et Matt Caswell. » En suivant le lien de la page OMC, nous arrivons aux clés publiques des membres. L’étape suivante consiste donc à télécharger les clés requises (une dans levitte.txt et l’autre dans caswell.txt) et à les importer dans la base de données GnuPG. En utilisant curl:

$ curl 'http://pool.sks-keyservers.net:11371/pks/lookup?op=get&search=0x7953AC1FBC3DC8B3B292393ED5E9E43F7DF9EE8C' > levitte.txt
$ curl 'http://pool.sks-keyservers.net:11371/pks/lookup?op=get&search=0x8657ABB260F056B1E5190839D9C4D26D0E604491' > caswell.txt

Pour faire confiance à ces signatures, il est bon de vérifier le certificat du domaine (figure ci-dessous). En utilisant l’onglet Sécurité de Google Chrome dans les outils du développeur, on peut valider que l’émetteur  » Let’s Encrypt Authority X3  » (auquel le navigateur fait confiance) a émis le certificat au domaine www.openssl.org, ce qui signifie qu’il s’agit d’un certificat de validation de domaine, permettant à quiconque de faire confiance aux signatures téléchargées.

Les deux clés sont importées et ensuite listées comme ci-dessous:

$ gpg --import caswell.txt
$ gpg --import levitte.txt
$ gpg --list-keys

L’illustration suivante contient le résultat des commandes ci-dessus qui sont soulignées en jaune:

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.