PÄIVITETTÄVÄ (2. syyskuuta. 2020)
Vuosi on kulunut siitä, kun julkaisin tämän jutun. Sen jälkeen on julkaistu Ubuntu 20.04 ja OpenSSL:n uusin versio julkaistiin 6. elokuuta 2020. Periaatteessa ainoa asia, jonka muutin tässä jutussa, oli kirjain, joka viittaa OpenSSL 1.1.1 -sarjaan, eli vaihdoin alkuperäisen version kirjaimen ”c” kirjaimeen ”g” päivitetyn version komennoissa. Vaikka nämä muutokset näkyvät komennoissa, näiden komentojen tuloksia havainnollistavat kuvat pysyvät muuttumattomina. Nauttikaa lukemisesta!
Jos käytät SSL/TLS-protokollaa sovelluksessasi, tai olet aikeissa tehdä niin, suositus on pitää OpenSSL päivitettynä. Tämä pätee erityisesti paitsi sen roolin vuoksi, joka sillä on varmenteiden myöntämisessä, myös Heartbleedistä saatujen opetusten jälkeen.
Ubuntu 20.04.1 (uusin 20.04-päivitys syyskuusta 2020 alkaen) on asennettu ”OpenSSL 1.1.1 31.3.2020” ja Ubuntu 18.04.03 (uusin 18.04-päivitys elokuusta 2019 alkaen) on toimitettu ”OpenSSL 1.1.1 11.9.2018”. Tällä hetkellä OpenSSL 1.1.1 -sarjan uusin versio on ”1.1.1g”, joka toimitettiin 6. elokuuta. 2020.
Tässä jutussa opastan lukijaa siinä, miten tämän päivityksen kanssa edetään rikkomatta yhteentoimivuutta nykyisten OpenSSL:stä riippuvaisten sovellusten kanssa.
Oletan, että lukija tuntee bash-komennot ja päivitys tapahtuu tietenkin Ubuntu 20.04- tai 18.04-boxilla. Vaikka en näe mitään syytä, miksi tämä menettely ei toimisi Ubuntu 16.04:ssä (jos näet, kerro minulle), sitä ei ole testattu.
Ensin on tarkistettava, mikä versio on asennettu:
$ openssl version
Tapauksessani ”OpenSSL 1.1.1 20 Mar 2020” oli tulos.
Vaihe 1: Lataa openssl-1.1.1g täältä ja tallenna se ~/Downloads-hakemistoon:
$ cd ~/Downloads
$ wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
Vaihe 2: Tarkista, onko se korruptoitunut vertaamalla täältä löytyvää SHA256-tarkistussummaa ladatun zip-tiedoston laskettuun tarkistussummaan:
$ 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
Oheisessa kuvassa yllä olevat komennot on alleviivattu keltaisella ja tarkistussummatulos (tässä tapauksessa OK) on alleviivattu vihreällä:
Vaihe 3: Tarkista ladatun zip-tiedoston allekirjoitus
Ennen ladatun zip-tiedoston sisällön asentamista tarkistamme sen allekirjoituksen käyttäen Ubuntun mukana toimitettua GnuPG:tä (tähän voi luottaa, kuten osoitteessa GnuPG mainitaan).
OpenSSL:n lataussivulta löydämme seuraavan tiedon : ”PGP-avaimet allekirjoituksia varten ovat saatavilla OMC-sivulta. Nykyiset jäsenet, jotka allekirjoittavat julkaisuja, ovat Richard Levitte ja Matt Caswell.”” OMC-sivun linkkiä seuraamalla pääsemme jäsenten julkisiin avaimiin. Seuraava askel on siis ladata tarvittavat avaimet (toinen tiedostossa levitte.txt ja toinen tiedostossa caswell.txt) ja tuoda ne GnuPG-tietokantaan. Käyttämällä 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
Voidaksemme luottaa näihin allekirjoituksiin on hyvä tarkistaa verkkotunnuksen sertifikaatti (alla oleva kuva). Käyttämällä Googlen Chrome Security -välilehteä kehittäjätyökaluissa voidaan tarkistaa, että myöntäjä ” Let’s Encrypt Authority X3″ (johon selain luottaa) on myöntänyt varmenteen verkkotunnukselle www.openssl.org, mikä tarkoittaa, että kyseessä on Domain Validation -varmenne, jonka avulla kuka tahansa voi luottaa ladattuihin allekirjoituksiin.
Kummatkin avaimet tuodaan ja listataan sen jälkeen seuraavasti:
$ gpg --import caswell.txt
$ gpg --import levitte.txt
$ gpg --list-keys
Seuraavassa kuvassa on keltaisella alleviivattujen edellä mainittujen komentojen lopputulos: