Warum E-Mail-Verschlüsselung nach PGP gar nicht so einfach ist

Eigentlich sollte dieser Beitrag anders heißen: „Mein Vorschlag für E-Mail-Verschlüsselung nach PGP„. Nur dann habe ich weiter gelesen, und festgestellt, dass das alles gar nicht so einfach ist. 🙁

Aber der Reihe nach: In der aktuellen c’t steht ein sehr interessantes Editorial über PGP. Der Autor fordert: „lasst PGP sterben!“. Interessant ist auch dieser Kommentar des Autors:

Es geht mir um massenhafte E-Mail-Verschlüsselung — also solche, die jeder, ständig und ohne drüber nachzudenken benutzt. Wann immer eine Diskussion anfängt, wie man das realisieren könnte, kommt jemand: „Wir haben doch PGP“ — und damit ist die Diskussion auch schon wieder zu Ende. Das muss aufhören. PGP hat das in den letzten 20 Jahren nicht hinbekommen — und es wird das in den nächsten 20 Jahren auch nicht mehr erreichen.

Ich denke, er hat Recht damit. PGP ist kompliziert zu bedienen, und leidet unter dem Problem, dass jeder Schlüssel für jeden ausstellen kann. Mir ist klar, dass das vielleicht sogar gewollt ist, um dafür zu sorgen, das die Leute ihre Schlüssel verifizieren, aber massentauglich ist das leider nicht. Ich habe trotzdem Vertrauen zu PGP und würde es auch benutzen, wenn ich mal wirklich geheime Informationen austauschen möchte, es hilft aber nicht gegen ständiges passives Abhören, weil es einfach nicht einfach genug ist, um ständig benutzt zu werden. (Wie eben z.B. die Verschlüsselung in Apples iMessage).

Also, welche Anforderungen hätte ich an einen Nachfolger?

  • Einfach zu benutzen. Am besten, ohne es überhaupt zu bemerken.
  • Schlüsselaustausch ohne manuelle Interaktion
  • Die Möglichkeit, Schlüssel genauer zu verifizieren (ich finde das Ampelprinzip von Threema hier sehr gelungen!)
  • Es sollte schwer sein, einen Schlüssel für einen Account zu erstellen, der mir nicht gehört (so dass ich mich halbwegs auf die automatische Überprüfung verlassen kann)
  • Es sollte sicher sein gegen passives Belauschen (logisch)
  • Es muss aber nicht absolut sicher gegen aktive Angriffe sein (außer ich habe den Schlüssel manuell geprüft!)

Ich denke der letzte Punkt ist der, der überhaupt eine Alternative ermöglicht: Es ist mir wichtiger überhaupt zu verschlüsseln, als absolut sicher zu verschlüsseln! Das hilft schon mal enorm gegen die allgegenwärtige Überwachung durch NSA & Co. Wenn jemand wirklich aktiv abgehört werden soll, hilft das natürlich nicht.

Mit dieser Prämisse ist es möglich, die öffentlichen Schlüssel mehr oder weniger automatisch zu verteilen, wenn es gesichert ist, dass niemand so einfach einen Schlüssel im Namen jemand anderen erzeugen kann (ein weiteres Problem von PGP was in der c’t angesprochen wird). So machen es ja auch iMessage und Threema. Auf diese Weise bekomme ich einen Schlüssel, in den ich schon mal einiges an Vertrauen stecken kann – mehr als in einen PGP Schlüssel von einem Keyserver. Natürlich kann immer noch der Betreiber des Servers die Schlüssel manipulieren, daher ist es wichtig, das die Schlüssel auch manuell verifiziert werden können – eben wie es Threema macht. Aber auch ohne die Verifizierung ist es nicht mehr möglich, in großem Stil alle Nachrichten abzuhören (außer der Server fälscht alle Schlüssel, aber das fällt ja sofort auf) – das ist für mich der wichtigste Punkt.

Nun haben wir also den Public-Key des anderen, und können diesem Key entweder halbwegs oder absolut vertrauen. Wie geht es weiter? Was man hier haben möchte ist ja aktuell wohl das Protokoll von TextSecure. Das ist im Grunde OTR (Off-the-Record), was die nette Eigenschaft hat, ständig die Schlüssel zu wechseln, wodurch man Forward-Secrecy erreicht – auch wenn man den Cyphertext mitschneidet und später an den Private-Key gelangt, bringt einem das nichts, weil der Key nur zur Autorisierung verwendet wurde, die Verschlüsselung selbst passiert mit sich ständig ändernden, temporären Keys. Für TextSecure wurde das ganze noch mal ein bisschen verbessert, zentral ist sicherlich, dass der anfängliche Schlüsselaustausch vereinfacht wurde, in dem jeder Client schon 100 „halbe“ Keys auf einem Server speichert, und so nicht beide Clients online sein müssen, um einem Key auszutauschen.

(Es geht auf der nächsten Seite weiter, der Link ist nur etwas schwer zu sehen!)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.