verschlüsselt, separiert, signiert

verschlüsselt, separiert, signiert

Weil ich immer wieder lese wie sich gute Leute mit den IT-Zeugs schwer tun, habe ich etwas zusammengeschrieben. Unter den ersten 14 Kommentaren in der neuen Taverne https://morgenwacht.wordpress.com/2016/04/17/tavernenrunde-1-auf-morgenwacht/ finden sich Ratschläge zu tor, anonymen sim-Karten und email-Alternativen auf die ich hiermit nur kurz verweise.

Mir ist es wichtig, dass ihr eure Daten trennt. Privat/Geschäftsinformationen haben nichts bei Online-Aktivitäten zum Erhalt unseres Volkes zu suchen. Das wäre nur einen ausgenutzten nicht gepatchten Exploit von einem Eintrag in einer Antifantendatenbank entfernt. Nicht jedes Rechtsrockvideo, informative pdf oder Ahnenbild kommt aus wohlwollenden Quellen.

Verschlüsselt eure Datenträger, Übertragungen und Nachrichten. Wenn jemand eure Datenträger in die Hand bekommt, werdet ihr froh sein, dass ihr es getan habt. Kommunikation die nichtöffentliche Bestandteile enthält, muss verschlüsselt übertragen werden, sonst können sie öffentlich werden. Bei der Datenübertragung habt ihr viele Dinge nicht selbst in der Hand. Wenn ihr mit jemanden Informationen austauschen wollt, einigt euch darauf diese vorher gut zu verschlüsseln. Was auch immer auf dem Weg passieren wird, die Informationen bleiben unter euch.

Signiert eure Kommunikation, damit der Empfänger weiß, dass diese wirklich von euch kommt und auch nicht verändert wurde.

Macht Backups mit verschlüsselten Daten und testet sie. Wer an Computern herum spielt baut irgendwann Mist. Wird Information am Anfang verschlüsselter Partitionen zerstört, sind alle Informationen auf der Partion weg, wenn ihr nichts gesichert habt. Vorallem sollten eure Passphrases und Passwörter und Keys zugänglich bleiben. Also sichert sie mehrfach. Dafür gibt es portable Programme wie lastpass und keepass. Und mindestens zwei Passwortdateien. (Diese dürfen dann natürlich nicht ausschließlich in den verschlüsselten Backups sein, es sei denn ihr seid euch sicher, dass ihr die Schlüssel für die Backups niemals vergessen werdet.) Daten müssen getrennt bleiben! Deshalb habe ich „zwei Passwortdatein“ geschrieben. Wer seine beruflichen oder privaten Informationen nicht vor Dieben schützen will, kommt auch mit einer aus. Einige Passphrases/Wörter könnten auch auf Zetteln notiert werden, für die der Festplattenverschlüsselung kommt das offensichtlich nicht infrage. Ihr müsst in der Lage sein, eine Betriebsystem ans laufen zu bekommen, auf dem das entsprechende Password-Manager Programm funktioniert und mit der vorliegenden Version der Passwort-Datei klar kommt. Und ihr dürft diese Master-Passphrases niemals vergessen. Also lasst euch ein paar Tage Zeit beim Ausdenken und baut nicht zuviele Spielerreien ein. Macht es dafür lieber etwas länger. Ich kann noch Gedichte aus der Grundschulzeit aufsagen oder zumindest Verse aber, ob ich irgendwo eine 1 oder ein l geschrieben habe, habe ich nach einem Monat Krankenhaus vergessen. Unter 20 Zeichen oder 7 Wörter sollten es meiner Meinung nach nicht sein. Möglichst nichts was in Büchern zu finden ist. Umlaute können Probleme machen. Das Eintippen wird nerven aber in Wirklichkeit geht nur ein verschwindend geringer Teil der Zeit vorm Computer für Passphraseeingaben drauf.


Datenseparation geht nur vernünftig mit mehreren Betriebsysteminstallationen. Windows kann wegen der Registrierung und Lizensierung daher höchstens einen Teil der verwendeten Betriebsysteme ausmachen.

Die beliebteste freie Alternative bilden Linux-Distributionen. Ubuntu hat den Ruf am leichtesten zu sein. Arch-Linux hat die meiste Informationen und Anpassungsmöglichkeiten. Debian ist am stabilsten und best-unterstützten. Daneben gibt es noch zahlreiche weitere Distributionen. Distribution bedeutet, die laufen alle im Grunde mit demselben Kern (Linux) und unterscheiden sich nur in den Programmen (user space) und deren Verwaltung (Paket-Managment) und Organisation. OK, das Paket-Managment ist bei vielen Distributionen identisch. Ubuntu benutzt das von Debian.

Linux Distributionen verwalten ihre Programme über Pakete und Paketmanager (ähnlich den „Appstores“, aber weniger bunt und mit Abhängigkeitsproblemen „dependencies“ zwischen den Paketen). Updates werden im Gegensatz zu Windows nicht automatisch eingespielt. Das habe ich nur bei Ubuntu gesehen. Es ist die Aufgabe des Benutzers ab und zu mal den Paketmanager aufzurufen, Informationen über Änderungen zu ziehen und dann die Änderungen ausführen zu lassen. In der Regel funktioniert das problemlos mit ein paar Tastenschlägen. Wenn es Probleme gibt, dann in der Regel, weil man ein altes verbuggtes Programm installiert hat, das niemand sonst benutzt. Hilfestellung gibt es dann in Foren zu dem Betriebsystem.

Für ideologische Aktivitäten bietet Windows keine nennenswerte Vorteile.


Es ist leicht möglich verschiedene Betriebsysteme abwechselnd auf einem Rechner laufen zu lassen.

Klassische Variante ist hier das dual boot. Dabei werden mehrere Betriebsystem installiert und ein Bootloader vorgeschaltet, der zwischen denen wechseln kann. Die Betriebsysteme können auf der selben Festplatte installiert sein. Mit geringem Aufwand hat man leider von einem System Zugriff auf die Daten der anderen.
Wenn die Betriebsysteme verschlüsselt sind, wird das erschwert. Für Windows wird truecrypt empfohlen.

Für Desktop Computer gibt es Wechselfestplattenrahmen. Mit denen lässt sich die Datentrennung konsequenter umsetzen. Wenn die Betriebsysteme auf verschiedenen Festplatten installiert sind, brauchen nur die Festplatten getauscht zu werden. Klappe auf, Platte raus, andere Platte rein, Klappe zu, Computer anstellen. Manche von den Dingern haben auch ein/aus-Knöpfe. Dann kann man eine Platte stecken lassen und einfach den Strom für sie abstellen.
Alternativ (ohne Wechselfestplatten) kann man Verlängerungskabel für die Stromanschlüsse seiner Festplatten aus dem Gehäuse rausleiten und wahlweise die eine oder die andere Festplatte anstöpseln. Die billig Variante ist, das Gehäuse offen zu lassen und jedesmal reinzukrabbeln. Wer gerne bastelt, kann sich an einem Schalter versuchen.

Anstatt Festplatte lassen sich auch usb-Sticks und sd-Karten verwenden. Das funktioniert auch für Notebooks. Um nicht von der Festplatte zu booten, muss man beim hochfahren eine bestimmte Taste drücken, um eine Auswahl infrage kommender Bootmöglichkeiten präsentiert zu bekommen. Steht im Handbuch. Oft ist es F8 oder F12. Falls man ein vorinstalliertes Windows betreiben will, hat mit in dem Fall trotzdem noch das Problem, dass der Zugriff von dem usb-Stick auf die Festplatte schlecht verhindert werden kann. Alte Rechner können teilweise nicht von usb booten. Mit einem usb3-Anschluss und einem schnellen Stick hat man deutlich mehr Freude an der Arbeit.

Am sichersten ist der Betrieb von mehreren Computern. Da man mit Linux-Distributionen auf den ganzen bunten Schnickschnack verzichten kann (kde und gnome deinstallieren xfce ist fett genug, mir reicht dwm), reichen alte Rechner aus. Die lassen sich notfalls gebraucht kaufen. Gegebenenfalls lohnt sich dann noch ein Austausch der Festplatte und des Speichers und ein Update des Bios. Wer der Tor-Browser nutzen will, wird mit 1 Gigabyte Speicher nicht glücklich werden.

Die Einplatinen-Computer sind ebenfalls brauchbar. Raspberry Pi 2 und 3 haben eine breite Nutzerbasis und sind für unter 40 Euro als Neuware zu bekommen. Mit micro-sd-Karte, Ladekabel, Maus, Tastatur und einem hdmi-Switch (falls am Monitor kein Anschluss frei ist) plus Kabeln sind die Kosten dann etwa doppelt so hoch. Beim Surfen sollte, wo es möglich ist, javascript deaktiviert und nur wenige Tabs offen sein. Die Dinger sind lahm. Optimal sind textbasierte (lynx, links, w3m) oder auf mobile Architekturen ausgerichtete (netsurf) Browser mit ssl-Unterstützung. Kommentare schreiben geht damit. Es sei denn man hat einen WordPress Account. Dann braucht man noch javascript und bekommt damit unnötige Sicherheitslücken, Informationsleaks und Rechenleistungs/Geld-Verschwendung.


Besonders bei der Verwendung von Tor ist dringend darauf zu achten, dass man wichtige Daten nur verschlüsselt überträgt und falls möglich Signaturen überprüft. Beim Surfen ist das insbesondere das https Zeug. Das regelt zum einen eine Verschlüsselte Übertragung der Daten, damit niemand zwischen Sender und Empfänger Datan auslesen, verändern oder wiederholen kann. Zum anderen soll es die Identifizierung des Servers leisten. Wäre das nicht gegeben, dann könnte ein Rechner auf dem Weg zwischen dir und der Zieladresse, die Daten bei sich behalten und sich selbst als Ziel ausgeben und dir antworten. Die Verschlüsselung würde dann zwischen euch beiden ausgehandelt. Der kann seinerseits eine Verbindung zum echten Ziel aufbauen und sich als du ausgeben. Man in the middle. Leider ist diese Identifizierung, die über CAs (Zertifikate) geregelt wird, … beschissen. Es gibt zu viele von den Diensten die Zertifikate verteilen. Die kontrollieren bei der Vergabe teilweise unzureichend und teilweise verdächtig. Da kann man sich nicht drauf verlassen. Je nach Browser gibt es die Möglichkeit informationen über Zertifikate zu speichern. Für das erste Mal, dass man das Ziel über https aufruft, hat man immernoch das Problem, dass man sich darauf verlassen muss, dass eine Internetadresse nicht doppelt zertifiziert wurde – es sei denn der Browserhersteller hat das für diese Seite schon für einen erledigt. Bei allen folgenden Aufrufen vergleicht der Browser die gespeicherte Zertifikatinformation mit der Antwort des Servers.

Diese Signaturprüfung und die Einleitung der Verschlüsselung kann über unsymmetrische Verschlüsselung funktionieren (public/private). Nachdem damit ein verschlüsselter Kanal erstellt wurde, wird darüber ein Schlüssel ausgetauscht, mit dem die restliche Kommunikation symmetrisch verschlüsselt wird – das ist „billiger“. Symmetrisch bedeutet, dass Sender und Empfänger denselben Schlüssel verwenden.
Die unsymmetrische Verschlüsselung hat den Vorteil, dass ich einen public key öffentlich zur Verfügung stellen kann. Wenn man mit dem etwas verschlüsselt, kann man es nur mit dem private key entschlüsseln, den nur ich habe. Damit kann mir jeder etwas mitteilen, was nur ich erfahren werde, auch wenn die übertragene Information abgehört wurde.


Die Umkehrung davon ist die Grundlage der Signierung. Ich gebe jedem einen Schlüssel, mit dem er alles entschlüsseln kann was ich mit meinem Schlüssel verschlüsselt habe. Wenn ich aus irendwelchen Daten eine Art Quersumme (cryptographic hash) mit besonderen Eigenschaften bilde, die sich dann als eine Zeile mit vielen scheinbar wirr hintereinanderstehenden Zeichen darstellen lässt und ich diese noch verschlüssele, kann ich zusammen mit den Daten, diese verschlüsselte Quersumme und Informationen über das verwendete Verfahren versenden. Der Empfänger kann dieselbe Quersumme aus den Daten bilden und meine verschlüsselte Quersumme entschlüsseln. Stimmen beide überein, kann er sich sicher sein, dass er die Daten empfangen hat, die ich ihm übermitteln wollte und sie keiner auf dem Übermittlungsweg verändert hat.
Hier sind wieder zwei Schritte zu unterscheiden. Mit der Quersumme stellt man fest, dass die Daten so aussehen, wie sie jemand übertragen wollte und über die Verschlüsselung weiß ich, dass dieser jemand der Inhaber des Schlüssels sein muss.

Signaturen sind besonders wichtig für Betriebsysteme, insbesondere die Paketverwaltung. Das Betriebsystem könnte auch nur die Übertragung verschlüsseln, wie beim browsen auf https Seiten, aber die Übertragung läuft ab zwischen mir und irgendeinem Spiegelserver des Betriebsystems, das von irgendeinem Informatikstudenten vor 20 Jahren auf einem schlecht gesichertem Universitätsserver, der tausende weitere Aufgaben erfüllt, eingerichtet wurde. Alles was zwischen Hersteller und Universitätsserver (einschließlich diesem) passiert, ist in dem Fall außerhalb meiner Kontrollmöglichkeiten.
Betriebsysteme die ihre Pakete nicht signieren, nehme ich nicht für wichtige Aufgaben. Ich würde die auch keine Updates über Tor ziehen lassen.

Das Signaturzeugs liegt auch den Zertifikaten zugrunde. Die dritte häufige Anwendung sind email-Texte.


OK, emails: 7 Probleme:
1. Ich möchte meine email verschicken dürfen.
2. Ich will das sie beim Empfänger ankommt.
3. Der Empfänger soll wissen, dass sie von mir kommt.
4. Außer dem Empfänger soll niemand wissen wohin ich die email geschickt habe.
5. Der Empfänger soll wissen, dass sie nicht verändert wurde.
6. Nur der Empfänger soll die mail lesen können.
7. Niemand außer dem Empfänger soll wissen, dass ich verschlüsselte Dinge verschicke.

1. Ich könnte einen eigenen mail-Server auf meinen Rechner einrichten. Die wenigsten werden das tun. Eine nützliche Geschichte, aber ignorieren wie sie. Ich kann einen mail client per smtp oder smtps emails an einen mail-Server übersenden lassen, bei dem ich einen mail account habe. Der wird eine Bestätigung haben wollen, dass die email tatsächlich von mir kommt. Dafür muss ich ihm ein Passwort mitteilen. Würde ich das Passwort unverschlüsselt übertragen, könnte es von allen Beteiligten zwischen mir und dem mail-Server gelesen werden. Also muss die Verbindung verschlüsselt werden. Das geht wie bei Webseiten. Gute mail-Server erlauben es direkt verschlüsselte Verbindungen aufzunehmen. Schlechte mail-Server gehen zunächst einen Klartext-Dialog mit dem Client ein, in dem sie sich verständigen, dass ein Verschlüsselter Kanal eröffnet wird (starttls). In dem ersten unverschlüsselten Schritt lässt sich der client jedoch von einem Bösewicht zwischen ihm und dem Server verarschen. Dasselbe Problem besteht auch bei Webseiten, die man zuerst über http aufruft und dann auf https umleiten. Ich weiß nicht mehr viel darüber, was da alles möglich ist, also lieber eine andere Information:
Server und Client haben verschieden Verschlüsselungsmöglichkeiten zur Auswahl. Wie bei Webseiten auch. Wenn sich Client und Server nicht auf ein Verschlüsselungsverfahren einigen können und beide damit einverstanden sind, wird das Passwort unverschlüsselt übertragen. Und die email auch. Wenn Server und Client eine zu schwache Verschlüsselung anbieten, läuft es praktisch auf das gleiche hinaus. Die Daten werden in einer Form übertragen, die sich von Unbeteiligten entschlüsselt werden kann. Das Problem existiert auch für https.

Die meisten mail-Provider bieten Webinterfaces an. Da verläuft alles genauso wie bei anderen Webseiten auch.

Ein spezielles Problem von Webseiten im allgemeinen sind die Cookies. Ich kann mich nicht mehr genau daran erinnern mag dieses ganze Webzeugs überhauptnicht aber ich glaube es war so: Wenn ich eine Seite in einem Browser tab über https offen habe und in einem anderen über http, wobei letztere von einem Bösewicht übermittelt wurde, der die Kommunikation abgefangen hat, dann gelten die beiden für fast alle Berechtigungen als unterschiedliche Seiten. Nach dem same-origin Prinzip sind sie unterschiedlich. Aber für die Cookie-Verwaltung gelten sie als dieselbe Seite. Und der Bösewicht kann eure Cookies klauen. Je nachdem wie ungünstig der Server programmiert ist, könnte der Bösewicht, sich selbst mit einem anderen Account bei dem Server anmelden und nach der Authentifikation deine Cookies zur Identifikation senden anstatt seine.
Früher gab es auch einige Server, die nur die Passwortabfrage verschlüsselt hatten und sich danach nur noch auf die Cookies zur Identifikation verlassen haben. Das ist noch einfacher auszunutzen. Wer den Verkehr mithört, schickt einfach seine eigenen Anfragen an den Server – zusammen mit den abgehörten Identifikationscookies.

2. Wenn ich Glück habe, wird die email von dem mail-Provider verschlüsselt auf dem Weg zum Empfänger übertragen. Da habe ich wenig Einfluss drauf. Das ist vorallem Schade wegen des email Headers mit Sender- und Empfängeradresse, Subjekt, Datum, Client-Identifikation, Routing-Informationen.
Der Empfänger hat jetzt das umgedrehte Problem aus 1. Mit imaps, pops oder Webinterface kann er halbwegs sicher an die email kommen. Imap und pop (ohne s) sind unverschlüsselt. Inzwischen gibt es irgendwie noch push Nachrichten. Da habe ich nie etwas mit zu tun gehabt. Befürchtet einfach das Schlimmste, das wird halbwegs stimmen.

3. Wenn der Empfänger wissen soll, dass die email von mir kommt, muss ich sie signieren. Das meine Adresse drauf steht ist reicht nicht.

4. Diese Anonymität ist mit emails nicht wirklich möglich.

5. Auch das wird durch eine Signatur erreicht. Das lässt sich u.a. mit gpg durchführen. Siehe auch 6.

6. Dafür muss ich den Text verschlüsseln. Zum Verschlüsseln des Texts kann ich eine beliebige Verschlüsselung verwenden, solange der empfänger weiß, wie er damit umgehen kann. Standardmäßig wird von vielen mail clients das pgp Verfahren unterstützt. Das macht vieles einfacher. Um die Verschlüsselung kümmert sich dann gpg (GnuPG). Wenn man einmal die Schlüsselverwaltung hinbekommen hat, kann man seinen öffentlichen Schlüssel an Leute verschicken, die einem verschlüsselte Texte schreiben sollen. Die halten einen dann in der Regel für bekloppt. Den Schlüssel kann man auch offen auf seine Webseite packen. Will ich pgp verschlüsselte Nachrichten an jemand anderen senden, brauche ich zuerst dessen öffentlichen Schlüssel. Den muss ich in meine Schlüsselverwaltung einbinden, bevor gpg den nutzen kann. Dem mail-client muss ich auch noch bescheid geben, dass er verschlüsseln soll. Zu dem privaten Schlüssel gehört üblicherweise noch eine Passphrase, damit keiner, der meinen privaten Schlüssel findet, Nachrichten lesen kann, die für mich bestimmt sind. Um die Schlüsseleingabe komfortabel zu halten, gibt es Programme (gpg-agent), die sich die Passphrase für eine bestimmte Zeit merken, innerhalb der man soviele Texte entschlüsseln kann wie man will ohne erneut nach der Passphrase gefragt zu werden. Viele email clients sind auch gleich so nett, eine verfasste email vor dem verschlüsseln in der outbox zu speichern. Denn wir erinnern uns: Texte, die mit dem öffentlichen Schlüssel von jemanden verschlüsselt wurden, können nur mit dem privaten Schlüssel von diesem entschlüsselt werden. Der jemand ist in diesem Fall der Empfänger und wir als Sender können unseren eignenen Text nicht mehr lesen nachdem wir ihn verschlüsselt haben.

Oh je, Webmail:
Kein mail client mit pgp Unterstützung. Und selbst wenn, könnte der Anbieter den Text unverschlüsselt lesen. Hoffnungslos? Nein. Mit email kann man alles verschicken, solange es nicht zu groß ist, nur bestimmte Zeichen verwendet werden (kann durch eine base64-Kodierung garantiert werden) und die Zeilen nicht zu lang sind. Ich schreibe meinen Text also in einem Texteditor. Die Datei lasse ich dann durch gpg mit dem öffentlichen Schlüssen des Empfängers verschlüsseln und kopiere die Ausgabe in den Browser oder hänge sie als Datei in den Anhang der email. Der Empfänger kopiert den Teil und speichert ihn in eine Datei (oder er läd die angehangene Datei) herunter und entschlüsselt diese mit seinem privatem Schlüssel.
Um zu sehen ob ich nichts verkehrt mache, teste ich beim ersten mal die Verschlüsselung mit irgendeinem Text und meinen Schlüsseln. Von mir selbst habe ich den public key, also kann ich Nachrichten an mich verschlüsseln, und den private key, somit kann ich die Nachricht auch wieder entschlüsseln. Wenn das funktioniert, dann funktioniert das mit den Schlüsseln von jemand anderem auch.

Wo ist das Problem?

Sender und Empfänger müssen sich darauf einigen, dass der Vorgang für sie akzeptabel ist und derjenige, der den Vorschlag macht, läuft gefahr als Spinner angesehen zu werden. Die fehlende Verschlüsselung ist kein technisches, sondern ein soziologisches oder pädagogisches Problem.

Ein technisches Problem gibt es trotzdem. Eine Verschlüsselte email-Kommunikation ist praktisch signiert. Wenn die Verschlüsselung später geknackt oder die Schlüssel (und Passphrases) gestohlen werden, kann sie eindeutig den alten Schlüsselbesitzern zugeordnet werden. Die erste email hätte noch vor irgendwem kommen können. Die zweite email kommt von einem der die erste email lesen konnte: Dem Besitzer des private keys. Mit der dritten email ist dann auch die Identität des anderen gesichert.
An der Stelle wieder der Hinweis auf Datenseparation. Wer dieselben Schlüssel für Privat- und Ideologieleben benutzt, kann sich ganz schön in die Scheiße reiten.

Möchte ich an mehrere Empfänger versenden, muss ich jeweils einzeln mit dem richtigen Schlüssel für sie verschlüsseln.

7. Dafür braucht man Staganographie. Damit lassen sich Daten im Rauschen von Bildern, Musik, usw. verstecken. Das bekannteste Programm ist steghide.