Automatische Verschlüsselung beim anonymen E-Mail-Empfang mittels OpenPGP back to frontpage

Ich habe mit AnonyMail ein Proof-of-concept entwickelt, das “out-of-the-box” eingehende E-Mails automatisch mit dem öffentlichen Schlüssel eines Empfängers im OpenPGP-Format verschlüsselt. Es sind keine externen Abhängigkeiten wie E-Mail-Server (integriert), HTTP-Server (integriert) oder GnuPG o. ä. (AnonyMail nutzt die go.crypto-Bibliothek, die openpgp-Support enthält) vorhanden.

Anbieter bisheriger anonymer E-Mail-Dienste (zum Beispiel anonbox.net des Chaos Computer Clubs) verzichten bereits weitestgehend auf das Aufzeichnen von personenbezogenen Metadaten in Logfiles (insbesondere IP-Adressen), um die Nutzerschaft (und sich selber) entsprechend zu schützen. Die E-Mails sind jedoch noch auf dem eingehenden E-Mail-Server unverschlüsselt hinterlegt und für Behörden und andere Personen mit (ggf. unberechtigtem) Zugang einsehbar. Hier soll AnonyMail ansetzen: Um die dem Betreiber zugänglichen Informationen auf die mittlerweile berühmt-berüchtigten “Metadaten” zu beschränken, verschlüsselt AnonyMail automatisch jede eingehende E-Mail mit dem öffentlichen Schlüssel des Empfängers im OpenPGP-Format und entfernt alle nicht zwingend notwendigen E-Mail-Header (z. B. einliefernde Server, Absender-IP-Adressen, usw.). Signiert werden alle E-Mails mit dem privaten Schlüssel der AnonyMail-Instanz (wird beim erstmaligen Start automatisch generiert), sodass beim Empfang geprüft werden kann, ob die Mail auf dem Weg von Instanz zum User manipuliert wurde. Logs werden in keiner Weise angelegt (außer derzeit Debug-Informationen zu neuen Usernames/Information über einen E-Mail-Eingang für einen User; siehe Screencast unten). Fast selbstverständlich ist, dass diese Art Sicherheit ein Vertrauen in den Betreiber des Dienstes notwendig macht (wie bereits beim Versprechen, keine personenbezogenen Logfiles anzulegen). Es ist stets besser, wenn bereits auf Senderseite eine Verschlüsselung vorgenommen wird (was leider erfahrungsgemäß viel zu wenig geschieht). Kann man jedoch davon ausgehen, dass der Betreiber vertrauenswürdig ist, erhält man einen gewissen Zugewinn an Datenschutz und Datensicherheit.

In AnonyMail, entwickelt in Go, können Useraccounts einfach per HTTP-Request angelegt und eingesehen werden. Dabei antwortet der Server im JSON-Format, E-Mails und Public Key sind/müssen base64 encoded sein. Einmal abgerufene E-Mails werden direkt vom Server gelöscht.

Wer zum Beispiel bereits Thunderbird mit Enigmail oder GPGMail2 o.ä. nutzt, kann die E-Mails direkt in seinem E-Mail-Client öffnen (nachdem die Mails entsprechend lokal gespeichert wurden). Zur Erhöhung der Usability wäre es denkbar, einen Abruf per POP3S zu ermöglichen. Die JSON-Implementation soll alternative Anwendungsmöglichkeiten und Benutzeroberflächen ermöglichen.

Im Produktiveinsatz würde man die Instanz in jedem Fall per SSL schützen wollen (insbesondere wegen des geheimen Passwortes, das den User authentifiziert). Der integrierte Mini-SMTP-Server ist von mir nur sehr rudimentär ausgestattet und unterstützt noch kein SSL/TLS; vor einem Produktiveinsatz sollte dies in jedem Fall nachgerüstet werden. Zudem wird derzeit nur PGP/INLINE unterstützt (mit der Folge, dass jegliche Anhänge derzeit von AnonyMail direkt aus der E-Mail entfernt werden und nur Plaintext unterstützt wird), eine Erweiterung auf PGP/MIME würde daher sicher interessant sein.

Um einen praktischen Überblick über die Funktionsweise von AnonyMail zu geben, habe ich einen Screencast erstellt. Den Quelltext werde ich sicher auch zu gegebener Zeit (nach etwas Feinschliff) veröffentlichen. Falls weitergehendes Interesse an diesem Projekt besteht, freue ich mich gerne bereits jetzt über Rückmeldungen! :-)


New comment

Comments are moderated and therefore are not published instantly.





Comments

No comments yet. Be the first! :-)