ShadowCrypt - Verschlüsselte Nachrichten auf Facebook, Twitter, Reddit und anderen Webseiten teilen

Dem versierten Surfer dürften in letzter Zeit eventuell kryptische Nachrichten im Netz aufgefallen sein, die ungefähr so aussehen:

"=?shadowcrypt-4ff95cef5a76149b687f7b54908cd2fa168794e214cedf9ee1a5df1dfec13057?fYtRaaL8maPP6ud0RldZhAEhO1KGy8pCqOMeSuery19100141260077"

Dabei handelt es sich um eine Form, öffentliche Nachrichten auf Plattformen wie Facebook, Twitter, Reddit und Co zu verschlüsseln.

ShadowCrypt-Playground

ShadowCrypt

ShadowCrypt ist eine Chrome Extension, die von der University of California, Berkeley und der University of Maryland entwickelt wird. Die Erweiterung soll zeigen, dass sichere Verschlüsselung schnell und einfach in bekannte Webseiten integriert werden kann. Laut den Forschern wurde das Add-on bereits auf 16 großen Webseiten getestet.

Im Prinzip soll es, anders als das etwas komplizierte PGG, eine Verschlüsselung dem normalen Anwender näher bringen.

Installation und Konfiguration

Die Installation der Erweiterung wird in einem kurzen Video erklärt. Zunächst muss natürlich die Erweiterung heruntergeladen werden.

Download ShadowCrypt Chrome

Danach kann über die Optionen in den Erweiterungen "chrome://extensions/", entweder einer der vorhandenen Schlüssel verwendet oder ein eigener für neue Webseiten hinterlegt werden. Hier gilt es zu beachten, dass die bereits hinterlegten Schlüssel Nachrichten für alle Shadowcrypt Nutzer gelten. Das heißt eure Nachrichten können von allen anderen, die auch das gleiche Add-on installiert haben, gelesen werden.

Um eine Nachricht für eure Freunde zu verschlüsseln, muss ein neuer Schlüssel angelegt werden.

shadowcrypt-key

  1. Adresse der Seite hinterlegen
  2. Schlüsselname vergeben
  3. Individuelle Farbe angeben
  4. Ein Beschreibung hinterlegen, damit man weiß welcher Schlüssel für wen gedacht ist
  5. Ein Passphrase hinterlegen
  6. Den fertigen String an diejenigen verteilen, die Nachrichten lesen dürfen

Der Gegenüber muss in diesem Fall ebenfalls die Erweiterung installieren und diesen Key importieren, damit Nachrichten entschlüsselt werden können.

ShadowCrypt

Einbindung in Webseiten

Die Einbindung in Webseiten erfolgt automatisch, wenn die Erweiterung aktiv ist. Zu erkennen ist das an einem geschlossenen Schloss.

Dieses funktioniert leider noch nicht so flüssig wie erhofft. So wird beispielsweise bei Facebook der Bestätigungsbutton für einen Beitrag nicht immer eingeblendet. Bei Reddit gab es wiederum keine Probleme.

In dieser frühen Phase des Tools ist dies jedoch verkraftbar.

shadowcrypt-fb-post

Sollten in der Konfiguration mehrere Schlüssel für die gleiche Seite hinterlegt worden sein, beispielsweise für Freunde und Arbeitskollegen, so können diese im Optimalfall vor einem Post ausgewählt werden.

shadowcrypt-keys

Wenn Alles richtig eingestellt wurde, sollte eine verschlüsselte Nachricht für die Öffentlichkeit wie folgt aussehen.

shadowcrypt-fb

Für die auserwählten User mit einem Schlüssel, bzw. alle anderen Shadowcryptnutzer, wenn die vorinstallierten Schlüssel verwendet werden, wird der dahinter liegende Text automatisch entschlüsselt und angezeigt.

shadowcrypt-fb-2

Fazit

Sicherlich ist diese neue Methode eine praktische Alternative für PGP, dadurch dass nicht nur Gmail und Co sondern auch soziale Netzwerke unterstützt werden, bietet sich ShadowCrypt gerade zu an. In dieser frühen Phase der Entwicklung gibt es aber sicherlich noch einige Hürden zu nehmen, um diese Verschlüsselung mit Hilfe einer Erweiterung dem normalen Nutzer näher zu bringen.

Es fehlt eine flüssige Einbindung in bekannte Seiten und eine ausführliche Erklärung in der Konfiguration, welcher Wert welchen Zweck erfüllt. Sind diese Hürden genommen, hat ShadowCrypt einiges Potential, um sichere Kommunikation im Alltag zu gewährleisten.

Als Verschlüsselungsverfahren wird übrigens AES-CCM eingesetzt. Weitere technische Details lassen sich dem Whitepaper entnehmen. 

Pflichtprogramm - Citizenfour in den Leipziger Kinos

Nachdem der Film von Laura Poitras über Edward Snowden, Glenn Greenwald & Co auf dem 57. DOK Leipzig (Internationales Leipziger Festival für Dokumentar- und Animationsfilm) neben Standing Ovations auch den Leipziger Ring für Demokratie erhielt, startet Citizenfour nun offiziell in den Kinos.

Citizenfour

In der Kinobar Prager Frühling und den Passage Kinos wird die 114 minütige Dokumentation ab heute in Leipzig gezeigt. Eine Liste aller Kinos in Deutschland, könnt ihr hier einsehen.

Wer das Buch von Glenn Greenwald zu dieser Thematik nicht gelesen hat, der sollte sich zumindest diese Dokumentation anschauen. Es lohnt sich.

Hier der offizielle Trailer zum Film.

Edward Snowden hat auf dem DOK Leipzig eine Rede zur Deutschlandpremiere gehalten, diese will ich euch nicht vorenthalten.

LAMP Server mit SSL - Linux, Apache, MySQL, PHP unter Ubuntu 14.04 in 10min installieren

Im Prinzip hatte ich bereits ein fast komplette Anleitung für einen LAMP Server unter Ubuntu verfasst. Zu finden ist sie im Artikel "Wordpress Installation in 5 Minuten".

Dennoch möchte ich heute eine etwas ausführlichere Anleitung niederschreiben, die als Grundlage für weitere Installationen dienen kann.

1. Apache Server installieren

sudo apt-get update

sudo apt-get upgrade

sudo apt-get install apache2

Der Server startet direkt nach der Installation und ist unter http://localhost zu erreichen.

lamp-apache2-server

Weitere Konfigurationen wie bzw. das Härten sind in anderen Anleitungen zu finden. Siehe beispielsweise den Artikel "Hardening Apache".

Hier geht es nun mit dem MySQL Server weiter.

2. MySQL Server installieren

sudo apt-get install mysql-server

Das verlangte root Passwort vergeben und zwingend merken.

sudo apt-get install libapache2-mod-auth-mysql php5-mysql

lamp-mysql-server

Um die Installation abzurunden und eine erste Härtung vorzunehmen, sollte folgendes Skript ausgeführt werden.

sudo /usr/bin/mysql_secure_installation

Remove anonymous users? [Y/n] y ... Success!

Disallow root login remotely? [Y/n] y ... Success!

Remove test database and access to it? [Y/n] y

- Dropping test database...

- Removing privileges on test database... ... Success!

Reload privilege tables now? [Y/n] y ... Success!

Falls keine Testdatenbank existiert, kann diese auch nicht gelöscht werden, es erscheint die Meldung "Failed Database doesn't exists".

Der MySQL Server ist nun fertig eingerichtet.

Mit dem Befehl "mysql -u root -p" könnt ihr euch auf die SQL Konsole einloggen, um Datenbanken anzulegen.

Sollte eine andere IP als 127.0.0.1 verwendet werden, so muss "sudo nano /etc/mysql/my.cnf" editiert werden:

bind-address = 127.0.0.1

3. PHP5 installieren

sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt

Neben dem bereits weiter oben installierten php5-mysql Paket gibt es weitere Pakete, die installiert werden können, je nach Anforderung.

Eine Liste der bereits installierten Module kann mit Hilfe einer "info.php" abgerufen werden. Hierzu ist noch etwas Konfigurationsaufwand nötig:

sudo nano /var/www/html/info.php

lamp-php-info

Danach kann unter http://localhost/info.php eine Übersicht der Installation abgerufen werden.

Weitere Module lassen sich mit "apt-cache search php5" auflisten und mit "sudo apt-get install modulname" nachinstallieren.

lamp-php5

Abschluss

Die Installation des LAMP Servers ist nun abgeschlossen. Jedoch ist es sinnvoll den Server weiter zu härten.

Es empfiehlt sich ein Umstellung auf HTTPS, sowie das Abschalten unsicherer Protokolle wie SSL 3.0.

Die Umstellung auf HTTPS werde ich noch einmal kurz erläutern.

4. LAMP Server auf HTTPS umstellen

Zunächst muss das SSL Modul installiert werden.

sudo a2enmod ssl

sudo service apache2 restart

Danach sollte ein Zertifikat erzeugt werden. Um die etwas kryptische Zeile zu verstehen, gebe ich eine eine kurze Erklärung zu dem Befehl.

  • Es wird ein selbstsigniertes Zertifikat erzeugt, dieses ist 1 Jahr gültig ("-days 365") und hat einen 4096bit RSA Schlüssel ("-newkey rsa:4096").
  • Die Option "-x509" sorgt für ein selbstsigniertes Zertifikat und keine Anfrage für einen CA (csr).
  • Indem der Wert "-nodes" verwendet wird, fällt die Abfrage nach einer Passphrase für den Schlüssel weg.

sudo mkdir /etc/apache2/crypt

sudo openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout /etc/apache2/crypt/srv.key -out /etc/apache2/crypt/srv.crt

Bitte darauf achten den richtigen CN zu vergeben.

Nachdem das Zertifikat erstellt wurde, muss dem Apache Server beigebracht werden, auf HTTPS zu lauschen.

Hierzu müssen ein paar Werte angepasst werden.

sudo nano /etc/apache2/sites-available/default-ssl.conf

SSLCertificateFile /etc/apache2/crypt/srv.crt

SSLCertificateKeyFile /etc/apache2/crypt/srv.key

Folgende Werte sollten zusätzlich eingefügt werde, um unsichere Protokolle zu deaktivieren:

SSLProtocol All -SSLv2 -SSLv3

SSLCompression off

Die neue Konfiguration muss abschließend aktiviert werden

sudo a2ensite default-ssl.conf

sudo service apache2 restart

Zur Erklärung: Durch den Befehl “a2ensite” wird ein symbolischer Link im sites-enabled Verzeichnis auf die .conf Datei des virtuellen Hosts im sites-available Verzeichnis gesetzt.

lamp-apache2-server-https

5. Ende

Nun ist der LAMP Server unter einer HTTPS Adresse zu erreichen. Für eine produktive Nutzung müssen natürlich noch weitere Schritte unternommen werden, auf die ich hier nicht weiter eingehe.

Die Grundinstallation ist jedoch geschafft und der Server kann zu Testzwecken verwendet werden.

Poodle - SSL 3.0 im Internet Explorer, Chrome oder Firefox deaktivieren

Zum Abschluss der "Erste Hilfe" Serie über die Poodle Lücke (Windows Server, Apache, Postfix und Nginx) möchte ich kurz zeigen, wie sich das unsichere SSL 3.0 Protokoll in den bekannten Browsern abschalten lässt. Unbedingt nötig ist das nicht, da zum Beispiel Chrome und Firefox in den kommenden Versionen SSLv3 von Haus aus abschalten werden. Dennoch eine kleine Anleitung, soll ja Nutzer geben, die weiterhin ältere Browser nutzen:

Poodle - SSL 3.0 im Internet Explorer deaktivieren

Microsoft bietet seit kurzem eine FixIt Tool (Download) an, welches das unsicherere SSL Protokoll abschaltet. Das Tool ist nicht unbedingt notwendig, da mit wenigen Hangriffen die notwendige Einstellung selbst vorgenommen werden kann:

  1. Internet Explorer öffnen
  2. Einstellungen anzeigen (alt+X)
  3. Internetoptionen
  4. Reiter "Erweitert" anklicken
  5. Den Haken bei "SSL 3.0 verwenden" entfernen

ie-ssl3

Poodle - SSL 3.0 im Firefox abschalten

Mozilla wird das Protokoll, wie schon erwähnt in der kommenden Version des Browsers deaktivieren. Wer dem zuvor kommen möchte, der muss folgendes einstellen:

  1. "about:config" in die Adresszeile eingeben
  2. Den Schlüssel "security.tls.version.min" suchen
  3. Der vorhanden Wert muss auch "1" geändert werden.

firefox-ssl3

Poodle - SSL3 in Chrome deaktivieren

Auch Chrome wir in der neuen Version kein SSL 3 mehr unterstützen. Für den Moment genügt es die Verknüpfung mit einem zusätzlichen Schlüssel zu versehen.

  1. Rechtsklick auf die Chrome Verknüpfung
  2. Eigenschaften auswählen
  3. Im Reiter Verknüpfung unter Ziel am Ende den Wert "--ssl-version-min=tls1" anhängenchrome-ssl3