FELÚJÍTOTT (2020. szeptember 2.)
Egy év telt el azóta, hogy ezt a történetet közzétettem. Azóta megjelent az Ubuntu 20.04 és az OpenSSL legújabb verziója 2020. augusztus 6-án jelent meg. Alapvetően az egyetlen dolog, amit megváltoztattam ebben a történetben, az OpenSSL 1.1.1 sorozatra utaló betű volt, azaz az eredeti verzióban szereplő “c” betűt “g” betűre cseréltem a frissített verzió parancsaiban. Míg ezek a változások a parancsokban tükröződnek, a parancsok eredményeit szemléltető képek változatlanok maradtak. Jó szórakozást az olvasáshoz!
Ha SSL/TLS protokollt használsz az alkalmazásodban, vagy erre készülsz, az OpenSSL frissítését ajánljuk. Ez különösen igaz nemcsak a tanúsítványok kiadásában betöltött szerepe miatt, hanem a Heartbleed tanulságai után is.
Az Ubuntu 20.04.1 (a legújabb 20.04 frissítés 2020 szeptemberétől) az “OpenSSL 1.1.1 31 Mar 2020” telepítve, az Ubuntu 18.04.03 (a legújabb 18.04 frissítés 2019 augusztusától) pedig az “OpenSSL 1.1.1 11 Sep 2018” szállítva. Jelenleg az OpenSSL 1.1.1 sorozat legújabb verziója az augusztus 6-án szállított “1.1.1g”. 2020.
Ezzel a történettel eligazítom az olvasót, hogyan kell eljárni ezzel a frissítéssel anélkül, hogy az OpenSSL-től függő, meglévő alkalmazásokkal való együttműködés megszakadna.
Feltételezem, hogy az olvasó ismeri a bash parancsokat, és természetesen a frissítés egy Ubuntu 20.04 vagy 18.04 dobozon történik. Bár nem látok okot arra, hogy ez az eljárás ne működjön Ubuntu 16.04-en (ha mégis, kérem, szóljon), nem teszteltem.
Először is meg kell nézni, hogy milyen verzió van telepítve:
$ openssl version
Egyik esetemben “OpenSSL 1.1.1 20 Mar 2020” volt az eredmény.
1. lépés: Letöltés openssl-1.1.1g innen és mentsd el a ~/Downloads könyvtárba:
$ cd ~/Downloads
$ wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
2. lépés: Ellenőrizd a korrupciót összehasonlítva az itt található SHA256 ellenőrző összeget a letöltött zip fájl kiszámított ellenőrző összegével:
$ 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
A lenti képen a fenti parancsok sárgával aláhúzva, az ellenőrző összeg eredménye (ebben az esetben OK) pedig zölddel aláhúzva:
3. lépés: A letöltött zip fájl aláírásának ellenőrzése
A letöltött zip fájl tartalmának telepítése előtt ellenőrizzük annak aláírását, az Ubuntuval szállított GnuPG segítségével (ez a GnuPG-nél említettek szerint megbízható).
Az OpenSSL letöltési oldalán a következő információt találjuk : “Az aláírásokhoz szükséges PGP kulcsok az OMC oldaláról érhetők el. A kiadásokat aláíró jelenlegi tagok között van Richard Levitte és Matt Caswell.” Az OMC oldalon található linket követve elérjük a tagok nyilvános kulcsait. A következő lépés tehát a szükséges kulcsok letöltése (az egyik a levitte.txt, a másik a caswell.txt) és importálása a GnuPG adatbázisába. A 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
használatával Ahhoz, hogy megbízzunk ezekben az aláírásokban, célszerű ellenőrizni a domain tanúsítványát (alábbi ábra). A Google Chrome biztonsági lapján a fejlesztői eszközökön belül a Google Chrome Security fülével ellenőrizni lehet, hogy a kiállító ” Let’s Encrypt Authority X3″ (a böngésző által megbízható) állította ki a tanúsítványt a www.openssl.org domain számára, ami azt jelenti, hogy ez egy Domain Validation tanúsítvány, amely lehetővé teszi, hogy bárki megbízzon a letöltött aláírásokban.
A két kulcsot importáljuk, majd az alábbiak szerint listázzuk:
$ gpg --import caswell.txt
$ gpg --import levitte.txt
$ gpg --list-keys
A következő ábra a fenti parancsok eredményét tartalmazza, amelyek sárgával aláhúzva vannak: