Taggat med: Ed25519

Sårbarhet i flertalet Ed25519-bibliotek

Ed25519 är en signaturalgoritm som använder sig av EdDSA som är en så kallad twisted Edwards-kurva. Ed25519 ska enligt utsago vara både snabbare och säkrare än ECDSA och DSA samt så är nyckellängden enbart 68 tecken.

Nu har dock Konstantinos Chalkias vid MystenLabs upptäckt att ca 40 olika tredjepartsbibliotek som implementerar Ed25519 öppnar upp för en möjlig sårbarhet. Denna sårbarhet ligger i en prestandaoptimering som går ut på att en publik nyckel inte beräknas för varje meddelande som signeras. Då kan funktionen användas som ett orakel och en angripare kan beräkna den privata nyckeln med tillräckligt mycket tid och resurser.

Bild som förevisar en Ed25519-signering:

För listan med ca 40 bibliotek se följande Github-länk:

GnuPG 2.1.9 är nu släppt

GnuPG är en öppen och fri mjukvara som implementerar OpenPGP och som i folkmun kallas PGP. Alla releaser som ligger under 2.1 går under benämningen ”modern” och innehåller således nya features. Stabila utgåvor ligger under 2.0 samt klassiska under 1.4.

Följande ändringar och nyheter innehåller version 2.1.9:

 * gpg: Allow fetching keys via OpenPGP DANE (--auto-key-locate).  New
   option --print-dane-records.

 * gpg: Fix for a problem with PGP-2 keys in a keyring.

 * gpg: Fail with an error instead of a warning if a modern cipher
   algorithm is used without a MDC.

 * agent: New option --pinentry-invisible-char.

 * agent: Always do a RSA signature verification after creation.

 * agent: Fix a regression in ssh-add-ing Ed25519 keys.

 * agent: Fix ssh fingerprint computation for nistp384 and EdDSA.

 * agent: Fix crash during passprase entry on some platforms.

 * scd: Change timeout to fix problems with some 2.1 cards.

 * dirmngr: Displayed name is now Key Acquirer.

 * dirmngr: Add option --keyserver.  Deprecate that option for gpg.
   Install a dirmngr.conf file from a skeleton for new installations.

Och här kan du ladda hem GnuPG:

🔧 Guide: Så gör du SSH säkrare

Att SSH är en otroligt använd tjänst råder ingen tvekan om. Nästan alla som har någon form av server använder sig av SSH.

Denna guide börjar med klientsäkerhet för att sedan ge rekommendationer för server-sidans konfiguration. Vi kommer främst att fokusera på de algoritmer som används.

SSH klientsäkerhet

Först och främst ska du se till att du har en relativt ny SSH-klient som du ansluter med. Den som följer med Mac OS X är gammal och stödjer bara gamla krypton, så därför är det lämpligt att uppgradera till en nyare version med hjälp av brew.

Denna följer med Mac OS X Yosemite:

$ ssh -V
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011

Och för att installera en nyare version:

$ brew install openssh --with-brewed-openssl --with-keychain-support

Sedan så kontrollerar vi versionen igen:

$ ssh -V
OpenSSH_6.8p1, OpenSSL 1.0.2a 19 Mar 2015

Nu ser det betydligt bättre ut. Nästa steg är att generera nya Ed25519 nycklar som vi kan använda:

$ ssh-keygen -t ed25519 -C "min@epost" -a 100 -o

Om du i ovan steg får ett felmeddelande om att algoritmen inte stöds så har du fel sökväg till ssh-keygen binären. Testa då /usr/local/bin/ssh-keygen istället.

Glöm framförallt inte att använda ett lösenord för att skydda din privata nyckel.

Vi ska även ändra i vår klient-konfigurationsfil så vi enbart stödjer SSH version 2 samt ett antal algoritmer som vi litar mer på:

Host *
    PubkeyAuthentication yes
    Protocol 2
    HostKeyAlgorithms ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-ed25519,ssh-rsa
    Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
    MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-ripemd160-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,hmac-ripemd160,umac-128@openssh.com

Du hittar SSH-konfigurationsfilen i din hemkatalog och sedan .ssh/config

SSH serversäkerhet

Först och främst måste du se till att ha en relativt ny version av OpenSSH. Du bör ha minst version 6.5 som släpptes i  Januari, 2014.

Lägg in följande i /etc/ssh/sshd_config på rätt ställe:

MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-ripemd160-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,hmac-ripemd160,umac-128@openssh.com
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256

Samt se till att Protocol 2 enbart stöds. Samt kommentera bort stödet för HostKeys som ej är RSA eller ed25519:

HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key

Du bör även se till att just ovan hostnycklar verkligen finns. Om någon ej skulle finnas så kan du skapa en ny med ssh-keygen:

$ ssh-keygen -t ed25519 -f ssh_host_ed25519_key

När det fungerar med inloggning via nycklar bör du ändra följande förutsatt att du inte använder någon funktion som de tillhandahåller:

ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no

Givetvis ska även root-logins stängas av med PermitRootLogin no. En annan bra sak är att ta bort kortare Diffie-Hellmanparameterar, följande kommando gör detta åt dig:

awk '$5 > 2000' /etc/ssh/moduli > "${HOME}/moduli"
wc -l "${HOME}/moduli" # se till att du har något kvar i filen
mv "${HOME}/moduli" /etc/ssh/moduli

Glöm inte att starta om openssh samt genomför tester så du inte stänger ute dig själv.

Givetvis finns det mängder med andra inställningar du kan göra för att höja säkerheten. Lämna gärna en kommentar med dina tips.

Uppdatering: För att försvåra brute-force attacker så bör du använda fail2ban eller sshguard. Tipstack till Jonas Thambert!

Tack till stribika