Skip to content

Aufruf: Schickt mir eine mit Minilock verschlüsselte Datei

Kürzlich rief ich euch auf, mir eine verschlüsselte Datei zuzusenden. Die Ergebnisse des Experiments waren recht durchmischt. Weniger als die Hälfte der Einsendungen hatte enthielt eine verschlüsselte Datei. Knapp die Hälfte dieser Dateien waren mit OpenPGP verschlüsselt. Insgesamt fand ich einige der Ergebnisse ziemlich unerwartet.

Unter anderem erwartete ich, dass auch Minilock für die Aufgabe genutzt werden würde. Dennoch nutzte niemand diese Möglichkeit. Aus meiner Sicht ist das eine recht einfache Möglichkeit, um eine Datei zu verschlüsseln. Daher will ich dies unten vorstellen und bitte euch, mir eine Datei mit Minilock zu verschlüsseln und zukommen zu lassen. Dabei interessiert mich natürlich, was euer Eindruck von der Software ist. Also schreibt ruhig ein paar bewertende Worte dazu.

Minilock-ID-Erzeugung
E-Mail-Adresse und Passwort angeben, um eine Minilock ID zu erzeugen

Minilock ist eine Erweiterung für den Google Chrome oder die freie Alternative Chromium. Bei anderen Lösungen ist meist das Betriebssystem die Einschränkung und hier ist es der Browser. Um die zu installieren, besucht ihr die Minilock-Seite im Web Store und klickt rechts oben auf den blauen Button (zu Chrome hinfügen, add to chrome). Wenn ihr die Anwendung zum Browser hinzugefügt habt, öffnet sich ein neuer Tab und ihr seht das Icon für die Anwendung. Jetzt kann es losgehen.

Zu Anfang erzeugt Minilock eine ID. Dieses Kennzeichen wird später benutzt, um Dateien für euch zu verschlüsseln bzw. könnt ihr die Minilock IDs anderer nutzen, um Dateien für diese Leute zu verschlüsseln. Gebt in das Feld eine E-Mail-Adresse sowie ein Passwort ein. Minilock prüft zunächst die Komplexität des Passworts. Sollte dies zu schwach sein, erscheint eine Warnung sowie eine Empfehlung für ein sichereres Passwort. Gebt hier als ein langes und komplexes Passwort ein. Merkt euch beide Merkmale. Ihr benötigt die später, um euch bei der Anwendung “einzuloggen”.

Meine Minilock ID für dieses Experiment ist

MkUrFQM6NDPpYgd813BZub5cLaW1K2Sk5zF3SnG5RBXKm
Dateiauswahl und Minilock ID
Ansicht mit Dateiauswahl und Minilock ID

Nun könnt ihr Dateien verschlüsseln. Wenn ihr auf dem Bild rechts, in die obere Hälfte klickt, öffnet sich eine Dateiauswahl. Sucht dort eine oder mehrere Dateien aus und bestätigt eure Auswahl. Danach müsst ihr die oben angesprochenen Minilock IDs als Empfänger eingeben und Minilock erzeugt eine Datei mit der Endung .minilock. Diese ladet ihr auf den Rechner (Klick auf Dateiname) und könnt diese anschließend versenden. Der Empfänger kann die dann wiederum in sein Minilock laden und hoffentlich entschlüsseln.

Versucht mal, die obige Anleitung umzusetzen und verschlüsselt mir an die obige ID eine Datei. Wie einfach oder schwierig fühlte sich das für euch an?

Mit minilock verschlüsselte Datei
Mit minilock verschlüsselte Datei

Ergebnis des Verschlüsselungsexperiments

Anfang Februar 2018 rief ich dazu auf, mir eine verschlüsselte Datei zukommen zu lassen. Ich bekam fast 50 Zusendungen und war überwältigt. Vielen Dank für eure Mitarbeit!

Viele reden heute in meiner Umgebung über Verschlüsselung. Es gibt Messenger, die verschlüsseln, Webseiten werden verschlüsselt übertragen und Festplatten können verschlüsselt werden. Eine der einfacheren Aufgaben sollte die Verschlüsselung einer Datei sein. Aus meiner Sicht ist dies eine grundlegende Aufgabe, die einfach zu bewältigen sein müsste. Meine Annahme war, dass dies in der Praxis nicht der Fall ist.

Zum Vergleich: Stellt euch vor, ihr fragt beliebige Personen euch einen Text zu schreiben und das Ergebnis zukommen zu lassen. Meine Annahme ist, dass ein Großteil der Menschen dieses Problem lösen können. So ähnlich sollte es sich auch mit der Verschlüsselung einer beliebigen Datei verhalten. Die Betonung liegt jedoch auf sollte.

Im Vorfeld hätte ich erwartet, dass die meisten Dateien als gezippte (oder sonstwie gepackte) und verschlüsselte Datei kommen, dicht gefolgt von Officedateien mit Passwort. Am Ende kamen drei gezippte Dateien (entspricht 6% aller Dateien und 14% der verschlüsselten Dateien) und  keine Oficedatei. Das war eine Überraschung.

Die überaus meisten Dateien etwa ein Drittel aller Dateien und 64% der verschlüsselten Dateien waren gegen meinen OpenPGP-Schlüssel verschlüsselt. Auch dies fand ich überraschend, denn ich hätte vermutlich ein symmetrisches Verfahren gewählt und das Passwort auf einem anderen Weg übertragen. Allerdings ist die hohe Zahl für mich ein eindeutiges Zeichen der Filterblase in der mein Aufruf gelandet ist. Denn kann mir schwer vorstellen, dass die breite Masse der Menschen so oft und viel OpenPGP auf- und einsetzt.

Leider bekam ich nahezu keine Rückmeldung über fehlgeschlagene Versuche oder von Leuten, die gar keine Idee hatten, wie sie das Problem angehen können. Jedoch würde ich mehr als die Hälfte der Versuche, die mich erreichen als gescheitert betrachten. Diese enthielten entweder eine Datei im Klartext oder gar keine Datei. Das ist für mich schon ein deutliches Zeichen, dass die Aufgabe schwierig ist.

Aber wie geht es einfacher? Eine Lösung sind die oben angesprochenen gezipten Dateien. Hier müsste man natürlich über die Art der Verschlüsselung und deren Sicherheit reden. Ein ebensolches Problem steht bei Office-Dateien. LibreOffice bietet in der letzten Version auch die Benutzung von OpenPGP an. Aber dies muss erstmal eingerichtet werden.

Eine recht einfache, wenn auch unbekannte Lösung ist Minilock. Dies ist eine Erweiterung für Google Chrome und Chromium. Damit lässt sich die Aufgabe aus meiner Sicht recht bequem erledigen. Ich werde später eine kleine Anleitung schreiben und mal zu einem Praxistest aufrufen.

Zahlen zum Verschlüsselungsexperiment

Ich hatte euch gebeten, mir eine verschlüsselte Datei zu schicken. Die An- und Vielzahl der Antworten war überwältigend. Vielen Dank an alle, die mitmachten! Doch was kam dabei heraus? Unten findet ihr eine Auswertung in Zahlen:

Insgesamt erhielt ich knapp 50 Dateien. Diese kamen überwiegend per E-Mail (37). Daneben schickten mir Leute Hinweise über Quitter (3), Twitter (2), Slack (1), XMPP (1), Wire (1) und als Kommentar (2) zum Blogbeitrag.

Jemand hatte sich den Spass erlaubt, einen PGP-Schlüssel für die betreffende E-Mail-Adresse zu erstellen. Ich erhielt drei E-Mails, die einen falschen Schlüssel nutzten. Ich hatte im Beitrag auf meinen Schlüssel verwiesen und gehofft, dieser würde benutzt werden. Aber einige arbeiten offensichtlich anders, als ich das erwartet habe. ;-)

Insgesamt 22 Dateien oder weniger als die Hälfte der Versuche waren verschlüsselt:

  • Die meisten davon (11) waren mit OpenPGP gegen meinen Schlüssel verschlüsselt.
  • Vier Dateien nutzten AES zur Verschlüsselung. Das Passwort lag der E-Mail bei.
  • Dreimal erhielt ich eine gepackte (Zip) Datei mit Passwort in der E-Mail.
  • Zwei Dateien nutzten das TLS-Zertifikat und waren gegen dieses verschlüsselt. Ich bin natürlich im Besitz des privaten Schlüssels und konnte diese entschlüsseln.
  • Ein Link führte auf einen Pastebin mit einer OpenPGP-verschlüsselten Nachricht.
  • Schließlich kam noch ein Veracrypt-Container.

Auf der anderen Seite heißt das eben auch, dass ein Großteil der Dateien nicht verschlüsselt war. Insgesamt kamen fünf E-Mails mit einem Klartext-Anhang an. Ebenso erhielt ich eine klartextliche Datei über Keybase, drei Dateien über send.firefox.com, eine über Tutanota. Die Dateien, die über XMPP und Wire kamen, waren ebenso unverschlüsselt. Allerdings war hier die Leitung selbst verschlüsselt.

Schließlich erhielt ich noch Nachrichten, die keine Datei enthielten. Eine Mail verwies auf Peersm. Dies konnte ich in keinem Browser zum Laufen bekommen. Ein Kommentar im Blog enthielt eine Base64-kodierte Datei. Dies ist keine Verschlüsselung, sondern kann immer dekodiert werden.

Alles in allem ist das Ergebnis etwas anders als ich im Vorfeld erwartet hatte. Zu meinen Erwartungen und meiner Bewertung werde ich einen separaten Beitrag verfassen.

Aufruf: Schick mir eine verschlüsselte Datei

tl;dr: Bitte verschlüsselt eine Datei und schickt mir diese zusammen mit einer (kurzen) Beschreibung, wie ich die lesbar mache.

Alle Welt redet von Verschlüsselung und keiner macht es. So könnte man meine These kurz zusammenfassen. Habt ihr schonmal versucht, eine Datei zu verschlüsseln und diese jemand anderem zuzusenden? Wie habt ihr dies angestellt?

Aus meiner Sicht ist das eine einfache, grundlegende Aufgabe, die man in jedem Anfängerkurs stellen könnte:

Stelle dir vor, dein Gegenüber nutzt einen öffentlichen Computer (Internetcafe, Bibliothek etc.). Du möchtest mit diesem eine Datei austauschen, deren Inhalt nur ihr beide kennt. Verschlüssele eine Datei auf deinem Rechner und übermittle diese an dein Gegenüber.

Ich frage mich nun, wie ihr das machen würdet. Daher habe ich mich zu einem kleinen Experiment entschlossen: Liebe Leserinnen und Leser, bitte verschlüsselt eine (nicht allzugroße) Datei und schickt mir diese zu (per E-Mail an enc2018@kubieziel.de, hinterlasst einen Kommentar oder kontaktiert mich anderweitig) . Legt ein paar Informationen bei, wie ich die wieder entschlüsseln kann. Ihr wisst nicht, wie ihr das machen könnt? Schreibt mir bitte unbedingt eine Mail an enc2018@kubieziel.de oder hinterlasst unten einen Kommentar und erzählt mir davon. Ihr habt es probiert und seid daran gescheitert? Schreibt mir bitte unbedingt eine Mail an enc2018@kubieziel.de oder hinterlasst unten einen Kommentar und erzählt mir davon. Ich würde gern wissen, wie einfach oder schwierig dies für euch ist.

Ich plane, die Umfrage später anonymisiert auszuwerten und ggf. in weiteren Beiträgen verschiedene Werkzeuge vorzustellen.

 

Neues TLS-Zertifikat

Der Webserver hat seit heute ein neues Zertifikat. Ich bin jetzt von CAcert auf Let’s Encrypt umgestiegen. Bei den Übernauten ist die Einrichtung sehr einfach. Nachdem die Befehle uberspace-letsencrypt, letsencrypt certonly und uberspace-prepare-certificate eingegeben wurden, war alles fertig.

Wenn ihr das Zertifikat prüfen wollt, hier ist der SHA-256-Hash:

B8:8A:B3:34:0E:5F:97:6A:88:F0:A7:E7:91:73:F4:50:42:29:0A:73:07:54:68:2D:96:EB:36:29:BB:FC:58:A8

Lenovo-Laptops mit SuperFish-AdWare

Die aktuellen Nachrichten über Wanzen in Festplatten oder geknackte SIM-Karten hören sich auf der einen Seite sehr bedrohlich an, auf der anderen Seite werden viele dies abtun, als Verschwörungstheorie oder »Betrifft-mich-nicht«. Doch dann war von Barbies zu lesen, die alles mithören und ins Internet übertragen und Samsung warnt, vor seinen Fernsehgeräten nichts Privates zu erzählen. Im letzteren Fall werden die Daten im Klartext übertragen und damit kann jeder mithören, was vor dem gerät erzählt wird. Der große Lauschangriff mal ganz anders.

Ansicht des Zertifikats im Zertifikatsmanager
Detailansicht des Zertifikats von Chris Palmer (@fugueish)
Lenovo reiht sich nun ebenfalls in die Liste der Hersteller ein, die offensichtlich wenig auf die Privatsphäre der Käufer geben. Verschiedene Medien (The Next Web, Forbes, Heise, ZEIT Online, Golem u.a.) meldeten, dass Lenovo auf Laptops die Software SuperFish Visual Discovery vorinstalliert. Dies ist Adware, d. h. sie blendet Werbung auf Webseiten ein. Dies wird dadurch bewerkstelligt, indem ein Schnippsel JavaScript geladen wird und die unerwünschten Inhalte überträgt. Doch damit gaben sich die Hersteller der Software nicht zufrieden. In die vorab installierten und damit vertrauenswürdigen Zertifikate wurde auch ein Zertifikat eingefügt. Immer wenn nun eine verschlüsselte, sichere Webseite besucht wird, kommt das Zertifikat nicht von der ursprünglichen Webseite, sondern von der SuperFish-Software. Damit kann die Software den verschlüsselten Datenverkehr mitlesen und diese Daten auch manipulieren. Dieser so genannte Man-in-the-Middle-Angriff ist eine klassische Angriffstechnologie und dient in der Regel nicht guten Zwecken.
Code zur Installation des Zertifikats
Code, der versucht, das Zertifikat in verschiedenen Browsern zu installieren (via @supersat)

Die EFF beobachtet seit längerem den Status von Zertifikaten mit dem SSL Observatory und meldete, dass sie in dem Datensatz 44.000 dieser SuperFish-Mitm-Zertifikate fanden. Das Bild links zeigt ein wenig Quellcode. Demnach versucht die Software ihr Zertifikat in verschiedene Browser zu importieren. Das erklärt auch, warum u.a. auch Firefox betroffen ist. Denn im Gegensatz zu Google Chrome nutzt dieser nicht die Zertifikatsverwaltung von Windows.

Robert Graham hat neben anderen Forschern das Zertifikat aus der Software extrahiert und in kurzer Zeit das Passwort ermittelt (Das Passwort »komodia« liefert dann auch den Hinweis auf den Komodia SSL Digestor). Wie er schreibt, benötigte er keine Spezialkenntnisse. Ein geschickter Angreifer kann dies ebenfalls tun. Damit lässt sich dann auch für Dritte sämtliche verschlüsselte Kommunikation brechen. Aber der Superfish Software scheint auch der Status fremder Zertifikate egal zu sein. In einer Diskussion auf Hacker News berichtete jemand, dass die Software beliebige (auch ungültige) fremde Zertifikate akzeptiert. Ähnliches geht auch mit fakehost.lenovo.com oder CanIBesuperFished.com. Insgesamt reißt die Software damit ein riesengroßes Loch in die Sicherheit der Rechner. Mich erinnerte das spontan an den Fall von Sony, die auch Malware auf die Rechner installieren.

Was lässt sich nun gegen die Infektion tun? Die Software selbst ist in der Liste der installierten Programme von Windows zu finden und kann dort einfach deinstalliert werden. Allerdings bleiben eine Reihe von Einträgen in der Registry und das Zertifikat noch erhalten. Hier ist dann Handarbeit angesagt. Dazu müsst ihr den certmgr von Windows öffnen und das Zertifikat entfernen. Bei der EFF gibt es eine Schritt-für-Schritt-Anleitung, wie das zu tun ist.

Lenovo hat mittlerweile reagiert und einerseits ein schönes Statement bei Twitter abgegeben:

Daneben gibt es eine Veröffentlichung, die den Vorfall klar als Vulnerability mit hohem Impact benennt. Die Veröffentlichung hat auch eine Liste der Produkte, die betroffen sind.

Wie funktioniert eigentlich Heartbleed

Lest ihr regelmäßig Bugreports oder Meldungen über Schwachstellen bei SSL/TLS? Wie fühlt ihr euch so? Zur Erinnerung:

SSL added and removed here!
Ausschnitt aus einer Folie aus dem MUSCULAR-Programm der NSA

Das heißt, drei Monate in Folge gab es schwere Sicherheitslücken in Software zur Verschlüsselung. Ganz unwillkürlich fühlt man sich an die Folien aus dem NSA-Programm MUSCULAR erinnert.

Die letztgenannte Schwachstelle ist vermutlich die bislang schwerste. Denn damit ist es möglich, den Arbeitsspeicher eines Computers auszulesen. Dies funktioniert sowohl auf der Seite des Servers wie auch beim Clientprogramm. Dazu ist es notwendig, dass das Programm OpenSSL verwendet und eine Erweiterung von SSL namens Heartbeat aktiviert hat. Dies ist beispielsweise bei Android in der Version 4.1.1 der Fall. Mozilla Firefox hingegen nutzt die NSS-Bibliothek und ist nicht betroffen. Die Webserver nutzen hingegen recht oft die OpenSSL-Bibliothek und sind damit betroffen, falls die Version 1.0.1 bis 1.0.1f von OpenSSL verwendet wird. Sollte jemand von euch die Software nutzen, so upgraded auf mindestens 1.0.1g oder deaktiviert Heartbeat in OpenSSL. Gerade letzteres kann man aus meiner Sicht problemlos tun. Denn bisher fand ich keinen sinnvollen Anwendungsfall für Heartbeat.

Doch wie funktioniert diese Lücke eigentlich? Heartbeat (RFC 6520) ist eine Erweiterung für TLS. Ein Teilnehmer einer Verbindung sendet beliebige Daten an den Empfänger. Dieser antwortet mit einer Kopie dieser Daten und zeigt somit, dass die Verbindung noch steht und alles in Ordnung ist. Das Problem dabei ist, dass in einer Anfrage zwei Längenfelder vorhanden sind. Ein Angreifer sendet einfach ein Byte Daten und behauptet, er hätte 64 kB gesendet. OpenSSL liest nun die 64 kB aus dem eigenen Puffer und sendet die Daten zurück an den Angreifer. Der Angreifer kann den Angriff immer und immer wieder starten und erhält so eventuell immer wieder ein neues Stück Arbeitsspeicher (siehe Kommentar von Florian Diesch). Bruce Schneier hat mit seinen Worten vollkommen recht:

Catastrophic" is the right word. On the scale of 1 to 10, this is an 11.
https://www.schneier.com/blog/archives/2014/04/heartbleed.html

Ich hatte in meinem 30C3-Vortrag schon ein OpenSSL-Beispiel reingenommen. Das sollte zeigen, wie kompliziert es sein kann, mit der Software sicheren Code zu schreiben. Auch andere sind, über die Codequalität gestolpert. Daher sind Leute gefragt, die einen detaillierten Blick auf OpenSSL werfen und die Software verbessern. Dazu zählt auch die bessere Lesbarkeit des Codes oder gute Dokumentation.

Wenn ihr wissen wollt, ob ihr betroffen seit, schaut lokal auf die OpenSSL-Version, nutzt die Zeile openssl s_client -connect example.com:443 -tlsextdebug 2>&1| grep ‘server extension “heartbeat” (id=15)’ || echo safe oder verwendet den Testservice von Lutz Donnerhacke oder Filippo Valsorda.

Weiterlesen:

Passwort und Nutzername im Dump der Daten von Yahoo! Mail

tweetbackcheck