Erste Schritte mit Let’s Encrypt

Let’s Encrypt ist eine neue Zertifizierungsstelle (CA) welche gratis Zertifikate ausstellt. Dieses ist vor einiger Zeit in die öffentliche Beta gegangen. Ich wurde aber schon zur geschlossenen Beta eingeladen weshalb mein Zertifikat unter den ersten 120 zu finden ist https://crt.sh/?id=11766203. Die CA stellt nur Zertifikate aus welche 90 Tage gültig sind, was einen dazu zwingt, den ganzen Vorgang zu automatisieren. Hat den Vorteil, man muss sich nicht mehr darum kümmern und alles passiert vollautomatisch mit viel Magie 🙂

let's Encrypt Logo

Let’s Encrypt also lasst uns verschlüsseln

Es gibt viele Vorteile von Let’s Encrypt (LE) vor allem dass alles voll automatisiert passiert. Allerdings finde ich dass alte Zertifikat System etwas einfacher. Man sendete seinen Certificate Signing Request (CSR) an die CA welche einem eine Mail sendet, an die bei dem Domain Registrar hinterlegte Email und nach einer kurzen Überprüfung wird einem das Zertifikat erstellt. Bei LE muss man der CA vertrauen, dass sie keinen Unfug mit dem Code treibt. Bis ich dieses Zertifikat damals bekam, dauerte es mehrere Stunden. Es fehlt bis heute noch eine vernünftige Dokumentation über die Software. Da meine Seite mit HPKP abgesichert ist, muss ich hergehen und den vorhandenen Private Key nehmen.

Erstmal installieren wie den LE Client von Github https://github.com/letsencrypt/letsencrypt

Jetzt kopieren wir die OpenSSL Konfiguration. Dies wird aber nur benötigt, wenn man mehrere Domains und Subdomains in einem Zertifikat haben möchtet.

Tipp: Crtl+W in nano um nach [ req ] zu suchen und wir entfernen das # davor.

Wir suchen nun nach [ v3_req ] und schreibe folgendes rein.

Danach fügen wir wie unten gezeigt, alle Domains welche mit dem SAN/SNI Zertifikat abgedeckt werden sollen rein.

Solltest du noch kein HPKP nutzen, kannst du hiermit dein Zertifikat erstellen.

Nun erstellen wir den CSR und schauen ob alles stimmt.

Wenn schon HPKP verwendet wird, können wir hiermit überprüfen ob die Hashsummen zu unseren alten und jenen in den Headern passen.

Der Server von Let’s Encrypt erwartet die Daten im DER Format. Da unsere noch im PEM sind, müssen wir diese einmal umwandeln und prüfen die Ausgabe.

Nun richten wir Nginx so ein, das es die Anfragen vom Server auf Port 80 durchlässt.

Nun kommt der spannende Teil: Wir senden alles zur CA zur Überprüfung.

Während der Überprüfung, wird man aufgefordert bestimmte Daten in /PATH/TO/WEB/ROOT/.well-known/acme-challgenge/ bereit zu stellen. Die erforderlichen Befehle liefert der Client, wir benötigen nur eine eigene zweite Bash um sie auszuführen.

Nun stellen wir Nginx noch richtig ein. Vorher noch die Datei erstellen welche für die Forward Secrecy zuständig ist.

Let's Encrypt Zertifikat

Ihr solltet bei Qualys SSL Test nun ein A+ haben https://www.ssllabs.com/ssltest/

Hier könnt ihr auch euren Erfolg einmal testen https://ssldecoder.org/

Euer Zertifikat wird dann wie jedes andere hier zu finden sein https://crt.sh/?Identity=%25&iCAID=7395

WhatsSpy – Jeden überwachen mit WhatsApp

WhatsSpy Tracker Übersicht
WhatsSpy Tracker Übersicht

WhatsSpy nutzt seit dem 7.2.2015 eine Möglichkeit aus, um die kaputten WhatsApp Privatsphäre Einstellungen auszunutzen und seitdem ist bei WhatsApp nichts passiert.

WhatsSpy ist ein Open-Source-Tool, welches von Maikel Zweerink als Proof of Concept entwickelt wurde, welches diese Lücke nutzt um zu zeigen, das dieses Problem (weiterhin)-besteht und man damit prinzipiell jeden überwachen kann nur durch die einfache Kenntnis seiner Handynummer. Das Tool speichert, wann der Kontakt online und offline geht, seine Privatsphäre Einstellungen, sein Profilbild oder seine Status Nachrichten ändert – letztere beiden jedoch nur, wenn diese auf „Jeden“ stehen. Das Tool ist aus einem WhatsApp Bot Projekt entstanden. Für genauere Informationen hat Maikel in seinem Blog das Problem genauer erklärt.

Seit 4 Monaten bekannt

Öffentlich bekannt wurde das Problem Anfang Dezember durch die Friedrich-Alexander-Universität. Dies ist nun 4 Monate her und seit dem hat sich an dem Problem nichts geändert selbst nach dem viele Medien darüber berichtet haben. Man wiegt den Nutzer hier in der Sicherheit, das man nur gewissen Personen oder sogar keinem diese Informationen bereitstellt dies ist aber nicht so. Dies hat die Universität Friedrich-Alexander-Universität unter https://www.onlinestatusmonitor.com sehr gut erklärt mit genauen Hintergrund Beschreibungen des Problems.

Leicht einzurichten

Dabei ist es spielend leicht, das ganze einzurichten da alles Open-Source in PHP geschrieben ist und es sogar ein fertiges Raspberry Pi Image gibt. Auch ist der Ressourcen Verbrauch sehr gering, da man lediglich einen funktionierenden WebServer mit PostgreSQL benötigt welcher dir WhatsApp Api anspricht und diese bereitwillig alle Informationen zurückliefert – ein wirkliches Limit scheint es da auch überhaupt nicht zu geben man fragt danach und die WhatsApi liefert bereitwillig alles zurück, was man so möchte. Man benötigt lediglich eine eigene Telefonnummer für den Tracker, da ansonsten die Sessions andauernd getrennt wird und ein Gerät, welches 24/7 online ist – wie z.b. ein Raspberry Pi – dies sollte also kaum ein Problem darstellen.