Artikel

Januar 2012 | Artikel

Ziemlich gute Privatsphäre

(Link zum Artikel: http://www.it-republik.de/php/artikel/4305)

Asynchrone Verschlüsselung mit Pretty Good Privacy (PGP)

Text: Michael Kliewe
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share
Datenschutz finden alle wichtig, aber viele handeln in ihrem Alltag nicht danach. Am Telefon werden wildfremden Leuten Informationen verraten, Passwörter werden im Klartext durch das WLAN und Internet geschickt um sich in den E-Mail-Account oder FTP-Server einzuloggen und Nachrichten bei Facebook, Twitter und Co. werden unverschlüsselt über HTTP verschickt. Genau dasselbe trifft auch auf die E-Mails selbst zu: Sensible Daten gehen mit fast jeder E-Mail durch die Netze, Zugangsdaten, persönliche Informationen und der berufliche E-Mail-Verkehr werden im Klartext verschickt und empfangen. Aber das muss nicht sein: PGP ist eine End-to-End-Verschlüsselung, seit 20 Jahren verfügbar. Hier zeige ich, wie man in PHP E-Mails und Dateien verschlüsseln, entschlüsseln, signieren und prüfen kann.
Teil 1   Teil 2   Teil 3   Teil 4   Teil 5   Teil 6   Teil 7   Teil 8   Teil 9   Teil 10   

PHP Magazin

Der Artikel "Ziemlich gute Privatsphäre" von Michael Kliewe ist erstmalig erschienen im PHP Magazin 1.2012.

Verschlüsselung ist wichtig und wird immer wichtiger, bei Passwörtern nutzt hoffentlich jeder Programmierer in seiner Software mittlerweile Einwegverschlüsselungen/Hashes, also Verfahren um Passwörter nicht im Klartext in die Datenbank schreiben zu müssen, aber trotzdem in der Lage zu sein, ein eingegebenes Passwort überprüfen zu können. Einwegverschlüsselungen haben den großen Vorteil dass man keinen Schlüssel benötigt, und demnach auch das Ergebnis nicht wieder entschlüsseln kann um das Original zurückzuerhalten. Bekannte Vertreter sind das etwas in die Jahre gekommene MD5-Verfahren, neuere Verfahren sind beispielsweise SHA1 oder die Algorithmen aus der SHA2-Familie (Secure Hash Algorithm; SHA-224 ,SHA-256, SHA-384, SHA-512).

Symmetrische Verschlüsselung

Möchte man Daten verschlüsseln und sie auch später wieder entschlüsseln, kommt man als erstes auf symmetrische Verschlüsselungsverfahren. Bekannte Vertreter sind da AES, 3DES und Blowfish. Wer die Daten verschlüsselt und sie selbst auch wieder entschlüsseln möchte, muss nur dafür sorgen, dass das Passwort sicher gespeichert wird. Zur Verschlüsselung nimmt man ein Passwort, und nur mit genau diesem Passwort lässt sich auch das Original wieder herstellen.

Asymmetrische Verschlüsselung

Möchte man aber Daten verschlüsseln und jemand anderes, beispielsweise der Empfänger einer Nachricht, muss sie entschlüsseln können, hat man einen großes Problem: Man muss das Passwort an den Gegenüber übermitteln, logischerweise unverschlüsselt. Gerade im Internet ist das schwierig wenn es in erster Näherung als unsicher angenommen wird. Häufig kommt deshalb die asymmetrische Verschlüsselung ins Spiel. Dabei gibt es ein Schlüsselpaar bestehend aus einem privaten Schlüssel und einem dazu öffentlichen anderen Schlüssel. Den öffentlichen kann man gefahrlos weitergeben, er ist nicht geheim. Das interessante ist nun, dass man eine Nachricht mit dem öffentlichen Schlüssel verschlüsseln kann, und diese dann nur der Besitzer des dazugehörigen privaten Schlüssels entschlüsseln kann. Was an Magie zu grenzen scheint ist schlichte Mathematik und schon seit Jahrzehnten ein als sicher angesehenes Verfahren.

Teil 1   Teil 2   Teil 3   Teil 4   Teil 5   Teil 6   Teil 7   Teil 8   Teil 9   Teil 10   

Kommentare

Gravatar Oliver 25.01.2012
um 00:35 Uhr
Ein gewohnt schöner Artikel. Ich persönlich benutze sowas ähnliches in Verbindung mit einer stark modifizierten Version von phpmailer. Allerdings bin ich dazu übergegangen S/Mime zum Signieren als Standard zu nehmen.

Das liegt vor allem daran, dass man auch ohne Addons in den meisten Mailprogrammen das Siegel angezeigt bekommt bzw. das Schloss bei der Verschlüsselung. Wenn der User aber einen gpg key hinterlegt hat, wird auch mit gpg verschlüsselt und signiert. Leider leider wird das in der freien Webwelt bisher viel zu selten genutzt. Ich nutze übrigens auch die gnupg extension, weil ich den system Befehl nicht mag.
#zitieren