it-swarm.com.de

Wie kann ich überprüfen, ob ein Server nicht für Logjam anfällig ist?

Als Antwort auf Logjam möchte ich beweisen, dass ich meine Dienste gehärtet habe. Ich weiß, dass der DH-Parameter mindestens 2048 Bit groß und selbst generiert sein muss. Ich kann jedoch keinen Weg finden, dies tatsächlich auf etwas anderes als eine HTTPS-Site zu überprüfen. ( das kann ich hier tun ) Ich möchte auch meine anderen SSL-geschützten Dienste darauf überprüfen:

  • Mail (Postfix und Dovecot)
  • SSH
  • VPN
  • Sonstiges

Ich bin so weit gekommen wie openssl s_client -starttls smtp -crlf -connect localhost:25 Aber das ergab:

CONNECTED(00000003) depth=3 C = SE, O = ME, OU = Also ME, CN = Me again verify error:num=19:self signed certificate in certificate chain

verify return:0 Server certificate

-SNIPED SOME VALUES-

--- SSL handshake has read 6118 bytes and written 466 bytes

--- New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384 Server public key is 2048 bit Secure Renegotiation IS supported Compression:

NONE Expansion: NONE SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES256-GCM-SHA384
    Session-ID: 6EAA8A5B22E8C18E9D0E78A0B08447C8449E9B9543601BC53F57CB2059597754
    Session-ID-ctx: 
    Master-Key: <MASTERKEY>
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1432213909
    Timeout   : 300 (sec)
    Verify return code: 19 (self signed certificate in certificate chain)
--- 250 DSN

Wie kann ich die DH-Parameter testen? und worauf sollte ich achten, um zu wissen, ob ich in Gefahr bin?

29
LvB

Machen Sie den Rauchtest: (gestohlen von OpenSSL-Blog . (Archiviert hier .))

openssl s_client -connect www.example.com:443 -cipher "EDH" | grep "Server Temp Key"

Der Schlüssel sollte mindestens 2048 Bit groß sein, um eine komfortable Sicherheitsmarge zu bieten, die mit RSA-2048 vergleichbar ist. Verbindungen mit Schlüsseln, die kürzer als 1024 Bit sind, sind möglicherweise bereits heute in Schwierigkeiten. (Hinweis: Sie benötigen OpenSSL 1.0.2. Frühere Versionen des Clients zeigen diese Informationen nicht an.)

(Wenn die Verbindungen sofort fehlschlagen, unterstützt der Server Ephemeral Diffie-Hellman ("EDH" in OpenSSL-Sprache, "DHE" an anderer Stelle) überhaupt nicht und Sie sind vor Logjam sicher.)

[...]

Stellen Sie schließlich sicher, dass die Exportchiffren deaktiviert sind:

$ openssl s_client -connect www.example.com:443 -cipher "EXP"

Die Verbindung sollte fehlschlagen.

Mit anderen Worten:

  • holen Sie sich OpenSSL 1.0.2.
  • ergänzen Sie die -cipher "EDH" Option zu Ihrer Verbindungszeichenfolge.
  • nehmen Sie eine Sicherheitsanfälligkeit an, wenn Exportchiffren auf dem Server aktiviert sind
  • nehmen Sie eine Sicherheitslücke an, wenn 512 Bit (oder weniger als 2048 Bit) auftauchen.
20
StackzOfZtuff

Deshalb habe ich beschlossen, meinen Kommentar in einem neuen Beitrag auf die Antwort "StackzOfZtuff" zu setzen, da Sie mit dieser Methode den Schlüsselaustausch tatsächlich genauer analysieren können. Diese Antwort wurde von this post bei superuser.com kopiert (also danke Thomas Pornin):

wenn Sie openssl mit der Option -msg verwenden, erhalten Sie die Informationen, die uns wichtig sind

openssl s_client -connect mail.example.com:143 -starttls imap -cipher EDH -msg

Dies zeigt die vollständige TLS ServerKeyExchange-Nachricht wie

<<< TLS 1.2 Handshake [length 030f], ServerKeyExchange 0c 00 03 0b 01 00 ff ff ff ff ff ff ff ff c9 0f da a2 21 68 c2 34 c4 c6 62 8b 80 dc 1c d1 29 02 4e 08 8a 67 cc 74 02 0b be a6 3b 13 9b 22 51 4a

laut Thomas Pornin kann man es so lesen (ich habe folgendes wörtlich kopiert):

  • 0c 00 03 0b: Nachricht vom Typ "ServerKeyExchange" (das ist die "0c") mit einer Länge von 0x00030B Bytes.
  • Das erste Element ist der DH-Modul als große Ganzzahl mit einem Header mit einer Länge von zwei Bytes. Hier wird die Länge als 01 00 codiert, was eine Ganzzahl bedeutet, die über 0x0100 Bytes codiert ist. Das sind 256 Bytes, der Modul hat also eine Länge zwischen 2041 und 2048 Bit.
  • Die Modulbytes folgen in vorzeichenloser Big-Endian-Reihenfolge. Die obersten Bytes dieses Moduls sind in diesem Fall ff ff ff ff .... Der Modul hat dann eine Länge von genau 2048 Bit.

Mit dieser Methode können Sie auch sicherstellen, dass Ihr Server nicht die in RFC 3526 vordefinierten DH-Gruppen verwendet (was mein Apache2.4.7 mit Ubuntu 14.04 immer noch tut, obwohl http://httpd.Apache.org/) docs/2.4/mod/mod_ssl.html gibt an, dass diese Version DH-Parameter verwenden soll, die der PEM-codierten SSLCertificateFile hinzugefügt wurden.

4
r_3

Von den Leuten, die die Sicherheitslücke gefunden haben

Ein weiterer Online-Test

Diese beiden geben mir widersprüchliche Antworten. Ich denke, die Forscher in Link 1 berichten, dass Ihre Website als anfällig eingestuft wird, wenn es eine Möglichkeit gibt, sie so zu konfigurieren, dass sie ausgenutzt werden kann. Wo, wie der zweite Link zeigt, pragmatischer: "Ist es gerade verwundbar?" Information.

0
cmaynard