UPPDATERAD (2 september 2020)

Ett år har gått sedan jag publicerade den här artikeln. Sedan dess har Ubuntu 20.04 släppts och OpenSSL senaste version publicerades den 6 augusti 2020. I princip var det enda jag ändrade i den här berättelsen bokstaven som hänvisar till OpenSSL 1.1.1-serien, dvs. att jag ändrade bokstaven ”c” i den ursprungliga versionen till bokstaven ”g” i kommandona i den uppdaterade versionen. Även om dessa ändringar återspeglas i kommandona förblir bilderna som illustrerar resultaten av dessa kommandon oförändrade. Mycket nöje med läsningen!

Om du använder SSL/TLS-protokollet i din applikation, eller om du är på väg att göra det, är rekommendationen att hålla OpenSSL uppdaterad. Detta är särskilt sant inte bara på grund av den roll det spelar i utfärdandet av certifikat, utan också efter lärdomarna från Heartbleed.

Ubuntu 20.04.1 (den senaste 20.04-uppdateringen från och med september 2020) levereras med ”OpenSSL 1.1.1.1 31 mars 2020” installerad och Ubuntu 18.04.03 (den senaste 18.04-uppdateringen från och med augusti 2019) levereras med ”OpenSSL 1.1.1.1 11 september 2018”. För närvarande är OpenSSL 1.1.1-seriens senaste version ”1.1.1.1g” som levererades den 6 augusti. 2020.

I den här berättelsen kommer jag att vägleda läsaren om hur man går vidare med den här uppdateringen utan att bryta interoperabiliteten med befintliga applikationer som är beroende av OpenSSL.

Jag förutsätter att läsaren är bekant med bash-kommandon och att uppdateringen naturligtvis kommer att ske på en Ubuntu 20.04- eller 18.04-box. Även om jag inte kan se någon anledning till att denna procedur inte skulle fungera på Ubuntu 16.04 (om du gör det så säg till) så testades den inte.

Det första du ska göra är att kontrollera vilken version som är installerad:

$ openssl version

I mitt fall var resultatet ”OpenSSL 1.1.1 20 Mar 2020”.

Steg 1: Ladda ner openssl-1.1.1g härifrån och spara den i katalogen ~/Downloads:

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

Steg 2: Kontrollera om det finns korruption genom att jämföra SHA256-kontrollsumman här med den beräknade kontrollsumman för den nedladdade zip-filen:

$ 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

I bilden nedan är ovanstående kommandon understrukna med gult och resultatet av kontrollsumman (OK i det här fallet) är understruket med grönt:

Steg 3: Kontrollera signaturen för den nedladdade zip-filen

För att installera innehållet i den nedladdade zip-filen kommer vi att verifiera dess signatur med hjälp av GnuPG som medföljer Ubuntu (detta är tillförlitligt enligt vad som anges på GnuPG).

På OpenSSL:s nedladdningssida finner vi följande information: ”PGP-nycklar för signaturerna finns tillgängliga på OMC-sidan. Aktuella medlemmar som signerar utgåvor är Richard Levitte och Matt Caswell.” Genom att följa länken på OMC-sidan når vi medlemmarnas offentliga nycklar. Nästa steg är alltså att ladda ner de nödvändiga nycklarna (den ena i levitte.txt och den andra i caswell.txt) och importera dem till GnuPG-databasen. Användning av 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

För att kunna lita på dessa signaturer är det bra att verifiera domänens certifikat (figuren nedan). Genom att använda Googles Chrome Security-flik i utvecklarverktygen kan man bekräfta att utfärdaren ” Let’s Encrypt Authority X3″ (som webbläsaren litar på) har utfärdat certifikatet till domänen www.openssl.org, vilket innebär att det är ett certifikat med domänvalidering, vilket gör det möjligt för vem som helst att lita på de signaturer som laddats ner.

Båda nycklarna importeras och listas sedan enligt nedan:

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

Nästa illustration innehåller resultatet av ovanstående kommandon som är understrukna i gult:

.

Lämna ett svar

Din e-postadress kommer inte publiceras.