kanedo

PGP bzw. OpenGPG in JavaScript 4

Weil ich gerade so schön von Verschlüsselung mit PGP (Pretty Good Privacy) bzw. besser ausgedrückt der Open Source Variante (Open)GPG ( GNU Privacy Guard)  schreibe, möchte ich noch eine stille Hoffnung ausdrücken:

Das Problem ist eigentlich, dass nicht jeder E-Mail-Clients benutzt, die nativ auf dem PC laufen (bspw. Thunderbird oder Apples Mail.app), sondern viele (so auch ich von Zeit zu Zeit) die WebMailer ihrer Anbieter verwenden.

Kommt da nun eine Verschlüsselte E-Mail an, hat man als Empfänger ein ernsthaftes Problem – man kann sie nicht lesen.

Die Lösung wäre, alle E-Mail-Anbieter implementieren eine Funktion die Ver- und Entschlüsselung im Browser möglich macht – eher Utopisch.

Warum dürfte klar sein: Werbung. Google ist da das beste Beispiel. Sie bieten kostenlos (sehr guten) Mail-Service an, als Gegenleistung wird einem aber passend zum Mail-Inhalt Werbung angezeigt. Ist diese E-Mail verschlüsselt sieht Google lediglich nur Datensalat und kann damit nichts anfangen. Das die das nicht einbauen ist schade, aber gut, damit verdienen die ihr Geld (Jede Firma ist grundsätzlich böse!).

Die Alternative wäre bspw ein Plugin für Firefox/Chrome/Safarie/Internet Explorer (kann der eigentlich Plugin’s? Ich hab keinen mehr installiert ;-) ). Dies könnte dann zum Beispiel einen formschönen Button in die Oberfläche einfügen – frei nach dem Motto: Ent-und-Verschlüsseln. Diesem Plugin gibt man seine Schlüssel und fertig.

Ein erster Ansatz (ein sogenannter Proof of Concept) wurde gemacht und darauf bin ich gestern gestossen: GPGMail mobile. Die Jungs (und/oder Mädels) haben die Algorithmen in Javascript programmiert.

Bisher hat er das als eigenes Webinterface (optimiert für mobile Geräte) programmiert. Anschauen kann man sich das hier: http://alexanderwillner.github.com/GPGMail_Mobile Es kann auch bisher nur Verschlüsseln, aber nicht Entschlüsseln

Was ich allerdings noch wesentlich schöner fände wäre ein eben genanntes Plugin. Und hei, der Spaß ist eh schon Javascript, also der gleichen Programmiersprache wie bei den Plugins der gängigen Browser.

Wer also freie Programmierkapazitäten hat, rann an den Speck! So schwer sollte das nicht sein!

Seine grundlegende Idee hat er in einer Grafik veröffentlicht, die ich mir frecherweise mal klaue und hier Anzeige:

gpgjs.png

Quelle: https://github.com/AlexanderWillner/GPGMail_Mobile/wiki/Introduction

Verwandte Beiträge

Kommentare

1

Andre Klärner

schrieb am 7. Februar 2011 um 05:59 Uhr:

Tja, die Idee ist gut, aber wo werden dann die Schlüssel gelagert? Wenn man die Schlüssel dann in einem rohen, leicht zu lesenden Format auf einem USB-Stick mit sich tragen muss, hat man zwar wiedermal den tollsten Algorithmus, aber die Sicherheit und Vertrauenswürdigkeit der Schlüssel selbst ist dahin.

Es gibt übrigens für einige der wichtigsten Webmailer ( Squirrelmail, Roundcube und Horde Webmail) Plugins sowohl für PGP und S/MIME. Dabei lagert der Schlüssel auf dem Server, was praktikabel ist, solange man diese Installation selbst betreut. Ich selbst fahre mit einem solchen Setup seit Jahren gut!

2

admin

schrieb am 7. Februar 2011 um 15:22 Uhr:

Die Schlüssel können auch vom Browser verwaltet werden. Genau so wie alle anderen Dinge auch (Passwörter, Logins, etc.) Die Schlüssel werden von E-Mail-Clients auch nur lokal auf dem Rechner gespeichert – etwas anderes ist der Datenspeicher von HTML5 auch nicht. Wo das am Ende liegt, interessiert den User nicht. Dann gibt es vlt noch ein Websync – der ja auch verschlüsselt sein kann – und zack: Über all die Schlüssel am Start.

Die Webmailer sind aber selten an zu treffen. Die Mehrzahl der Leute nutzt das vorgegebene Webinterface des Providers und das sind bei den meisten Free-Hoster à la Web.de, Gmx.net und Gmail.com

3

Andre Klärner

schrieb am 7. Februar 2011 um 22:10 Uhr:

Hm, den leicht paranoiden Nutzer sollte es schon interessieren. Wenn er weiß, dass an diesen Schlüssel seine komplette Identität gebunden ist, wird er entsprechend sorgsam sein. Oder würdest du jedem beliebigen Menschen eine Unterschrift unter ein von im vorgelegtes Dokument geben?

Bei dem Problem mit dem Webinterface ist meiner Meinung nach etwas anderes entscheidend: die Benutzer rufen von zig verschiedenen Rechnern ihre Mails ab, sei es im Rechnerpool der Uni, bei Freunden über deren PC oder auf der Arbeit mit dem Unternehmens-PC. Damit müssen sie wieder ihre Schlüssel mit sich tragen, und dann kann man auch gleich ein portables GnuPG / PGP benutzen, und mittels der Zwischenablage verschlüsseln.

Ein ähnliches Prinzip nutzt übrigens GmailEncryption (http://www.langenhoven.com/code/emailencrypt/gmailencrypt.php) die direkt in GMail die Verschlüsselung vornehmen, bevor man die Mail absendet.

Für alle anderen kann ich nur einen portablen Thunderbird oder vergleichbares mit der Erweiterung Enigmail empfehlen, was aber nur das Tragen vereinfacht.

Übrigens: meine sehr persönliche Meinung ist, dass man mit einem Interface, wie es GMX und Co bieten, zwar Mails versenden kann, aber keine gepflegte Konversation betreiben kann, weil viel zu viel Komfort einfach fehlt, die Darstellung unpraktisch gewählt ist oder ähnliches. (Abgesehen von den Sicherheitslücken diverser Dienste)

4

Oliver

schrieb am 24. Februar 2012 um 12:09 Uhr:

Wo die Public Keys liegen ist doch eh latte. Der Privatekey kann ja im Browser liegen (verschlüsselt oder nicht). Über Greasemonkey oder die Chrome Api könnte man da sicherlich was machen.

Das Problem ist aber hauptsächlich: Asynchrone Verschlüsselung ist langsam … sehr langsam. Vor allem das Generieren der Schlüssel dauert mit einem 56 Bit Schlüssel schon 20 Sekunden. Bei 128 Bit ist man bei 4 Minuten. Bei 256 ist man bei 16 Minuten. So kriegt man das keinem User verkauft, auch wenn es sicher ist. Das Ver- und Entschlüsseln ist unter V8 oder Jägermonkey ganz brauchbar. Aber für den IE würde ich da nix in der Richtung machen wollen, weil es einfach unbrauchbar langsam wird.

Im Moment bin ich erstmal dabei eine verschlüsselte Passwortdatenbank für Chrome zu schreiben.

Kommentar verfassen

Die mit (*) gekennzeichneten Felder müssen Ausgefüllt sein.