Image may be NSFW.
Clik here to view.Vor einigen Tagen bin ich auf das Bitmessage-Protokoll gestoßen, das eine Alternative zur etwas veralteten E-Mail darstellt. Veraltet, weil das E-Mail System einige Schwächen hinsichtlich der Anonymität, der Sicherheit und der Dezentralität aufweist. Natürlich kann theoretisch jeder seinen eigenen Mailserver aufsetzen – in der Praxis verteilen sich alle User jedoch nur auf wenige, große Anbieter. Mit der Sicherheit verhält es sich genauso: Natürlich kann man seine Mails mit PGP verschlüsseln – in der Praxis macht das aber so gut wie niemand, weil (Ende-zu-Ende-) Verschlüsselung nicht Teil des E-Mail Standards ist, sondern manuell nachgerüstet werden muss. Der normale User macht sich keine Gedanken um Verschlüsselung oder will sich nicht mit der Einrichtung derselben beschäftigen müssen.
Die fehlende Anonymität und eingeschränkte Privatsphäre sind wohl die größten Schwächen der E-Mail Systems. Metadaten, die z.B. für den Transport einer E-Mail von Bedeutung sind, können nicht verschlüsselt werden, weil sie von den Mailservern ausgewertet werden müssen. Zu den Metadaten gehören z.B. Absender- und Empfängeradresse.
Die genannten Probleme will Bitmessage aus dem Weg räumen, indem es einen ganz anderen Weg geht als E-Mail.
Funktionsweise des Bitmessage Netzwerks
Mit Bitmessage erhält jeder Teilnehmer des Netzwerks einen Bitmessage Client. Dieser bildet zusammen mit allen anderen Clients ein Peer-2-Peer Netzwerk, also ein Netzwerk ganz ohne zentrale Server oder andere Einheiten. Jeder Netzwerkteilnehmer ist gleichberechtigt. Statt Nachrichten über zentrale Server zu schicken, schicken sich die Clients die Nachrichten direkt zu. Wobei “direkt” auch nicht ganz richtig ist: Jede versendete Nachricht gelangt zuerst einmal an alle Bitmessage Teilnehmer. Das ist aber kein Problem, denn die Nachricht kann nur von einem einzigen Teilnehmer entschlüsselt werden: Dem Empfänger. Das heißt: Auf jeden Client treffen hunderte bis tausende Nachrichten, die aber größtenteils gar nicht für ihn bestimmt sind. Nur, wenn er eine Nachricht erfolgreich entschlüsseln kann, weiß er, dass sie für ihn bestimmt ist.
Warum das alles? Das System klingt zuerst einmal ziemlich unnütz, hat aber einen entscheidenden Vorteil: Niemand weiß, für wen die Nachricht bestimmt ist, außer der Empfänger selbst. Wenn ich eine Nachricht auf das Netzwerk loslasse, kann niemand sagen, an wen die Nachricht geht. Jeder Client nimmt die Nachricht an, aber nur einer kann sie entschlüsseln und schließt daraus, dass sie für ihn war.
Sollte der Empfängerclient nicht online sein, ist das auch kein Problem: Jeder Client im Netzwerk speichert Nachrichtentransfers innerhalb eines Zeitraums von 2 Tagen ab. Bei jedem Verbindungsaufbau ins Netzwerk überprüft der Empfängerclient zuerst ob er in der Zwischenzeit “Nachrichten verpasst” hat und gleicht sich mit den anderen Clients ab. Nach diesem Vorgang hat er auch die “verpasste” Nachricht erhalten. Da jeder Client aber nur Daten der letzten zwei Tage abspeichert, sind Nachrichten verloren, die den Empfänger nicht innerhalb diesen Zeitraums erreicht haben.
Im Bitmessage Netzwerk werden Nachrichten wild durcheinander von Client zu Client geschickt. Damit die Performance bei einer größeren Benutzergruppe nicht zu sehr sinkt, ist das Netzwerk in “Streams” eingeteilt. Aus einer Nachricht lässt sich ableiten, in welchem Stream sich der Empfänger befindet – der eigentliche Empfänger bleibt aber anonym. Das grenzt den möglichen Empfängerkreis ein und trägt zur schnelleren Verarbeitung einer Nachricht bei.
Jeder Bitmessage Teilnehmer kann sich eine eigene Adresse generieren. Meine Adresse sieht beispielsweise so aus: BM-2cUFukGf1GjZZ9QDNZHNViPL18fxpQKK3F
Diese Adresse ist einmalig, lässt aber nicht auf den Besitzer der Adresse schließen. Jeder Teilnehmer kann sich beliebig viele Adressen generieren, für die er Nachrichten erhalten will. Sobald eine solche Adresse generiert ist, können Nachrichten gesendet oder empfangen werden. Die Bitmessage Adresse wird genutzt wie eine normale E-Mail Adresse – nur eben, dass sie keine Rückschlüsse auf den Besitzer zulässt. Einfach eine Nachricht an die Adresse schreiben und wenige Sekunden später erhält der Empfänger den Text.
Vor- und Nachteile im Überblick
Die Vorteile:
- Sehr schnelle und einfache Einrichtung
- Beliebig viele Bitmessage Adressen
- Anonymität von Empfänger und Absender einer Nachricht
- Verschlüsselung ist elementarer Bestandteil des Systems
- Dezentrale Infrastruktur, Ausfallsicherheit
- Anhänge bis 180 MB möglich
Als einzigen bedeutenden Nachteil sehe ich gerade das Missbrauchspotential durch Spammer: Weil der Absender anonym bleibt und sehr viele verschiedene Adressen erstellen kann, ist es attraktiv, einen Bot zu betreiben, der veröffentlichte BM Adressen vollspammt und dabei ständig neue Absenderadressen generiert. Einzelne Adressen lassen sich im Client zwar blockieren, doch was nützt das, wenn ein Spammer einfach eine neue Adresse zum Senden von SPAM benutzt?
Einen Vergleich zwischen Mitmessage und anderen sicheren Kommunikationsplattformen und Protokollen findet ihr im Bitmessage Wiki.
Bitmessage Client “PyBitmessage”
Der erste und bisher einzige (?) Bitmessage Client ist PyBitmessage. Wie der Name schon andeutet, ist der Client in Python geschrieben und kann bei GitHub heruntergeladen werden: https://github.com/Bitmessage/PyBitmessage
Der Client ist noch nicht ausgereift und befindet sich in der Entwicklung. Trotzdem sind die grundlegenden Funktionen bereits nutzbar. Die Bedienung lässt noch zu wünschen übrig: Um auf eine Nachricht zu antworten muss beispielsweise ein Rechtsklick auf eine empfangene Nachricht gemacht werden. Einen Papierkorb gibt es auch, aber noch keine Bildschirmansicht, die diesen einblendet.
Clik here to view.

Der PyBitmessage Client