Debian 7: openssl 1.0.x selber kompilieren

In letzter Zeit hat sich im Bereich der SSL Sicherheit viel getan. Es sind immer wieder neue Sicherheitslücken aufgetaucht, wie z.B: die Poodle Lücke. Debian gilt seit je her als stables, aber leider auch immer etwas angestaubtes Betriebssystem. Letzteres von beidem bekommt man gerade in letzter Zeit immer wieder zu spüren. Viele neue Funktionen oder Schutzmechanismen sind in Debian 7 (stable) einfach nicht mehr enthalten. Aus diesem Grund möchte nachfolgend einmal beschreiben, wie man sich selber ein openssl Paket bauen kann, um die ein oder andere Sicherheitslücke (TLS_FALLBACK_SCSV, bzw. CRIME) schließen zu können.

OpenSSL kompilieren

Um alle Pekete für openssl zu bauen, werden zuerst einige weitere Pakete sowie die abhängigen Pakete zu openssl benötigt.

cd /usr/src
apt-get install build-essential fakeroot
apt-get build-dep openssl

Anschließend läd man sich die letzte Version von OpenSSL herunter. Welche Version das ist, findet man über https://www.openssl.org/source/ heraus.

wget http://ftp.de.debian.org/debian/pool/main/o/openssl/openssl_1.0.1k-1.dsc
wget http://ftp.de.debian.org/debian/pool/main/o/openssl/openssl_1.0.1k.orig.tar.gz
wget http://ftp.de.debian.org/debian/pool/main/o/openssl/openssl_1.0.1k-1.debian.tar.xz

Die oben genannte CRIME Attacke lässt sich nur durch das deaktivieren der SSL Kompression deaktivieren. Da diese jedoch erst ab Apache 2.2.24+ über die Konfiguration deaktiviert werden kann, muss sie für alle Vorgängerversionen beim kompilieren von openssl deaktiviert werden.

Weiterlesen

Bullshit made in Germany

Normalerweise versuche ich neutral zu bleiben, aber ich bin gerade auf die Seite https://de.ssl-tools.net/bullshit-germany gestoßen, welche genau das unterstreicht, was mir damals bei der Initiative "E-Mail Made in Germany" so gegen den Strich gegangen ist. Leider hat die Presse diese offensichtliche Veräppelung der Menschen bei diesem Thema irgendwie kommentarlos passieren lassen. Schade!

bullshit

Logo: CC-BY-SA MathiasM

HTTP Public Key Pinning (HPKP)

Die IETF (Internet Engineering Task Force) steht anscheinen kurz vor der Verabschiedung von HTTP Public Key Pinning als weiteren Standard. Dieser Ansatz soll Webseitenbetreibern die Möglichkeit bieten, zu verhindern, dass ein zweites gültiges SSL Zertifikat anstelle des originalen an Webseitenbesucher ausgeliefert werden kann und der Browser der Clients dies nicht erkennt. Dies ist aktuell noch möglich, da für eine Domain von jeder gültigen CA ein Zertifikat für eine Webseite ausgestellt werde kann und dieses auch von allen Clients als gültig anerkannt wird, solange die Clients der Root CA vertrauen.

Durch das Key Pinning kann der Webseitenbetreiber einen HTTP Header mit ausliefern, welcher den gehashten Wert von Zertifkaten aus der Zertifizierungskette beinhaltet. Auf welche Zertifikate hierbei in Form von Hashes verwiesen wird ist dabei egal. Es ist also möglich, dass Zertifikat der Root-CA sowie das eigene Zertifikat anzugeben. Somit ist ein Client nach dem einmalgen Besuch einer Webseite über HTTPS also in der Lage zu erkennen, ob die Zertifikate noch mit denen, des vorherigen Besuches übereinstimmen. Durch einen Alerungswert, kann der Webseitenbetreiber die maximale Laufzeit dieser Cache-Werte festlegen.

Ein Beispiel für einen Key-Pinning Header ist:

<IfModule mod_headers.c>
   Header always set Public-Key-Pins "pin-sha256=\"kb6xLprt35abNnSn74my4Dkfya9arbk5zN5a60YzuqE=\"; pin-sha256=\"Q7TFaToJQRkpKkHoU23mFcGODWeaUM6tpYw5A/NJQYg=\"; max-age=300; includeSubDomains"
</IfModule>

Nachfolgend ein paar Links, welche den Einstieg in das Thema erleichtern.

Wie der Header erstellt werden kann, beschreiben folgende Seiten bzw. Tools

Ob Webbrowser HPKP wirklich unterstützen, kann über nachfolgenden Link getestet werden:

Leider gibt es noch keine einfache Möglichkeit, den HPKP Header einer Webseite zu validieren. Dieser Punkt wurde bei Mozilla bereits diskutiert. Es gibt aber bereits Ansätze auf Github für eine entsprechende Lösung. Man kann jedoch durch einen Sniffer prüfen, ob der entsprechende Header vom Webserver ausgeliefert wird. Alternativ auch über die bash

$ curl -I https://o-o-s.de
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2015 21:00:29 GMT
Server: Apache
X-Pingback: https://o-o-s.de/xmlrpc.php
Strict-Transport-Security: max-age=604800;
Public-Key-Pins: pin-sha256="Q7TFaToJQRkpKkHoU23mFcGODWeaUM6tpYw5A/NJQYg="; pin-sha256="kb6xLprt35abNnSn74my4Dkfya9arbk5zN5a60YzuqE="; max-age=604800
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8

Mit Firefox Version 35 hat Mozilla die Auswertung des Key Pinnings von HTTPS Seiten eingeüheingeführt. Diese Funktion war bisher lediglich Chrome vorbehalten.

Update vom 31.01.2015

Ich habe gerade bei ssllabs.com gesehen, dass dort "Public Key Pinning (HPKP)" mit getestet wird. Es lässt sich also doch relati sehr einfach prüfen.

Exchange 2010: alten Server aus Konsole entfernen

del "%userprofile%\AppData\Roaming\Microsoft\MMC\Exchange Management Console"
reg delete HKCU\Software\Microsoft\Exchangeserver\v14\AdminTools\NodeStructureSet
tings

Windows 8: Treiber und Updates in Installations-Medium integrieren

Wer Windows 8 bzw. 8.1 öfters installiert, freut sich nicht immer über die anschließenden Updates, welche einer OS-Installation auf dem Fuße folgen. Diese lassen sich jedoch relativ einfach in die Installation (install.wmi) integrieren, genauso wie eventuelle Treiber. Voraussetzung für mein nachfolgenden Beispiel ist, dass für die Installation ein USB-Stick verwendet wird, der wie hier beschrieben eingerichtet werden kann.

Um Updates und Treiber zu integrieren, muss zuerst die Kommandozeile mit Administratorrechten gestartet werden. Anschließend werden, falls noch vorhanden, Mount-Rest aufgeräumt. Dieser Schritt kann beim ersten Mal übersprungen weden.

Weiterlesen

 
Execution time 0.22201895713806 seconds