Archiv für Februar, 2014

E-Mailverschlüsselung mit PGP – Grundlagen

PGP1 (pretty good privacy) das System, dessen Implementierung wir hier (in GnuPG, GPGTools und GPG4Win) verwenden ist ein Verschlüsselungsverfahren, bei dem jeder Teilnehmer zwei Schlüssel hat: Den privaten und den öffentlichen Schlüssel. Wie der Name verrät, hält man den privaten Schlüssel bei sich und kann den öffentlichen frei verteilen und zwar über jeden beliebigen Kanal. Es macht also nichts, wenn ein böser Bube den öffentlichen Schlüssel bekommt.

Der öffentliche Schlüssel dient dazu, Nachrichten an den Inhaber des passenden privaten Schlüssels zu verschlüsseln. Entschlüsselt werden diese dann mit dem privaten Schlüssel.

Also dient der private Schlüssel dazu, Nachrichten zu entschlüsseln.

Eine weitere Funktion ist das signieren. Hiermit stellt man sicher, dass die Nachricht vom Inhaber des Schlüssels kommt – Es handelt sich um eine gute Möglichkeit den Gesprächspartner zu authentifizieren.
Signiert wird mit dem privaten Schlüssel. Überprüft werden kann die Signatur mit dem öffentlichen Schlüssel.

Dieses System hat den Vorteil, dass man sehr leicht alle zum verschlüsselten und authentifizierten Kommunizieren nötigen Informationen austauschen kann (insbesondere den öffentlichen Schlüssel), da diese nicht geheim sein müssen.

17 Kommentare

Grundprobleme – Vertrauen

Warum wir unserer Technik grundsätzlich misstrauen sollten und wann wir davon Ausnahmen machen können erklären wir hier.

Weder bei Soft- noch bei Hardware kennt der durchschnittliche Anwender deren genaue Funktionsweise. Dennoch ist man darauf angewiesen, dass die Soft- und Hardware (nur) das tut, was sie tun soll.

Der Durchschnittsmensch muss sich schlichtweg darauf verlassen, dass die Kiste im Wohnzimmer „sein“ Computer ist und dass der E-Bookreader in seinem Rucksack auch tatsächlich „ihm gehört“ und nur für ihn arbeitet. Man muss sich darauf verlassen, dass die Soft- und Hardware für den Besitzer arbeitet. Wenn man dann davon hört, dass das Gegenteil der Fall ist, kann man nur seine Konsequenzen daraus ziehen.

Leider weiß man das aber nicht so genau bevor man etwas kauft oder benutzt.

Dennoch gibt es einen guten Indikator für diese Frage: Vertrauen.

Vertrauen wir einem Menschen, der etwas von uns will, uns aber nicht sagt, wie er heißt, wer er ist und was er da eigentlich tut?

Vertrauen wir einem Autohändler, der uns ein gebrauchtes Auto verkaufen will, mit der bloßen Behauptung der Unfallfreiheit, ohne die Bereitschaft einen handfesten Nachweis der Unfallfreiheit zu liefern?

Vertrauen wir – sobald wir uns darüber Gedanken machen – einem kleinen Chip in unserem Auto, der in der Lage ist die Bremsen des Fahrzeugs zu steuern, ohne zu wissen, wie er funktioniert, wann er was tut und wie sicher er vor Manipulation ist?

Vertrauen wir einem E-Bookreader, bei dem der Hersteller nach Belieben unsere Bücher löschen und verändern kann?

Vertrauen wir dem Smartphone, dem Computer oder dem Tablet das wir benutzen? Und wie sieht es mit dem Betriebsystem aus, das dort zumindest vorgibt für uns zu arbeiten?

Die Frage des Vertrauens im Bereich Hard- und Software ist deswegen so schwierig, weil die konventionellen Methoden Vertrauen zu entwickeln nicht anwendbar sind. Ein Computer, ein Auto oder sonstige Technik hat keinen Gesichtsausdruck und keine Gestik, keine Stimme aus denen wir einen ersten Eindruck von unserem Gegenüber gewinnen können.

Es gibt hier allerdings einen Ansatz, der geeignet ist, dieses Defizit auszugleichen:

Man kann gar nicht wissen, ob der Hersteller oder Verkäufer von Hard- oder Software Daten ausliest, verändert oder gar Hintertüren einbaut, wenn man nicht wissen kann, wie die Hard- oder Software arbeitet.
Solange also der Quellcode bzw. das Chipdesign nicht offen ist, fehlt, auch denen die das Fachwissen haben nach entsprechenden Sicherheitslücken zu suchen, die Grundlage das umfassend zu tun.

Vertrauen ist also auch hier gut, aber Kontrolle beziehungsweise wenigstens Kontrollmöglichkeit viel besser.

Kontrolle ist nur möglich mit offenem Quellcode. Den findet man bei sogenannter Open Source Software immer. Das prominenteste Beispiel hierfür ist „Linux“.

Uns ist bewusst, dass die meisten Leute der Auffassung sind, dass ein Betriebssystemen vertrauenswürdig ist, deren Entwickler in den USA sitzen und sich dort in reger Kooperation mit den ortsansässigen Behörden befinden und zudem irrig glauben, den Quellcode offen zu legen würde das Geschäft kaputt machen.

Allerdings haben sicherlich die meisten Leute Verständnis dafür, dass wir das absurd finden. Diese Art des Vertrauens ist nichts anderes als über eine Brücke zu gehen, deren Statiker und Architekten sich hinsichtlich der Berechnungen der Statik auf ein Betriebsgeheimnis berufen und dann erwarten, dass wir nur gegen eine kleine Gebühr ihre Brücke benutzen.

Daher sollte man Vertrauen in diesen Bereichen nur dann aufbringen, wenn es irgendeinen Grund dafür gibt, wie beispielsweise den offenen Quellcode. In allen anderen Fällen ist gesundes Misstrauen erfahrungsgemäß mehr als angebracht.

Uns ist bewusst, dass das vielen nicht unbedingt gefallen wird. Aber wir sind nicht hier, um grundlegende Fakten in Bezug auf Sicherheit von Informationstechnologie zu ignorieren und irgendjemandem damit zu gefallen.

Es gibt endlose Alternativen in fast allen Anwendungsbereichen. Soweit Einstiegshürden noch vorhanden sein sollten nehmen sie immer weiter ab.

Der größte Nachteil, den alle diese Alternativen haben ist, dass man sie verwenden muss und dazu sein gewohntes Terrain für einen Moment verlassen müsste. Hier helfen wir gerne!

56 Kommentare