Aufpoliert: Alte PGP-SchlĂĽssel mit neuen Signaturen

Seite 3: Hintergrund zu PGP und die Hashes

Inhaltsverzeichnis

Digitale Signaturen sind eine wichtige Grundfunktion von PGP. Unter anderem beglaubigen sie die Echtheit der Schlüssel selbst. Denn ohne digitale Unterschrift ließen sich die öffentlich verteilten Schlüssel manipulieren, ohne dass dies auffiele. Eine digitale Signatur bestätigt zwei Eigenschaften eines beliebigen Datensatzes – also etwa einer E-Mail oder auch eines Schlüssels:

  1. Die Daten stammen vom Besitzer des unterschreibenden SchlĂĽssel
  2. Der Inhalt wurde nicht verändert

Dazu erstellt PGP zunächst einen kryptographischen Hash-Wert über die zu signierenden Daten. Jede noch so kleine Änderung am Datensatz verändert diesen Hash-Wert. Dann verschlüsselt es den errechneten Wert mit dem geheimen Schlüssel. Die prüfende PGP-Instanz berechnet ebenfalls den Hash-Wert über die ihr vorliegenden Daten. Und dann entschlüsselt PGP den Wert aus der digitalen Signatur mit dem öffentlichen Schlüssel des Unterschreibenden. Sind die beiden Werte gleich, dann ist die Signatur gültig und die beiden damit verbundenen Aussagen gelten.

SHA1 ist ein veraltetes Hash-Verfahren, das seit mehr als 10 Jahren als geknackt gilt. Das bedeutet konkret, dass es gelungen ist, so sogenannte SHA1-Kollisionen zu erstellen. Dabei verändert der Angreifer zwei Datensätze so lange, bis sie den gleichen Hash-Wert ergeben. Solche Kollisionen gefährden auch digitale Signaturen, die auf SHA1-Hashes beruhen.

Ein typisches Angriffsszenario funktioniert wie folgt: Ein BetrĂĽger erstellt vorab zwei Versionen eines Kaufvertrags, die den gleichen Hash-Wert ergeben. Ein Vertrag lautet auf den symbolischen Wert von 1 Euro, der andere nennt einen Kaufpreis von 1 Million. Wenn Sie jetzt den Vertrag mit 1 Euro mit einem SHA1-Hash unterschreiben, kann der BetrĂĽger diese Unterschrift unter den zweiten Vertrag setzen und hat einen digitalen Nachweis, dass Sie im 1 Million schulden.

Profis schützen sich vor solchen Tricks, indem sie grundsätzlich vor dem Unterschreiben eine Kleinigkeit ändern und etwa ein Komma hinzufügen. Dann passt eine möglicherweise vorher berechnete Kollision nicht mehr. Besser ist es, statt SHA1 dessen Nachfolger SHA2, also konkret SHA256 oder SHA512 zu verwenden, für die man keine Kollisionen errechnen kann.

Für PGP-Schlüssel, die mit SHA1 beglaubigt wurden, besteht dennoch keine realistische Gefahr. Denn um eine bereits existierende Schlüssel-Signatur zu missbrauchen, müsste man einen zweiten Schlüssel erzeugen, der exakt den gleichen SHA1-Hash-Wert ergibt wie der echte. Solche Pre-Image-Angriffe zu unveränderlichen Original-Daten sind jedoch nicht einmal ansatzweise möglich – nicht einmal für MD5. Alle erfolgreichen Angriffe auf kryptografische Hash-Verfahren der letzten Jahre beruhen auf Kollisionen. Da man dort die beiden Datensätze iterativ aneinander annähern kann, sind die viel leichter zu bewerkstelligen.

Trotzdem sollte man SHA1 heute nicht mehr einsetzen. Gar nicht! Das soll endlich verschwinden. Der Nachfolger SHA2 ist in allen Belangen besser, seit ĂĽber 10 Jahren etabliert und alle relevanten Programme sollten mittlerweile SHA256 oder SHA512 beherrschen. Selbst Windows 7 spendiert Microsoft noch ein Update, das ihm SHA2 beibringt. Denn ab Sommer 2019 sollen die Windows-Updates nur noch mit SHA2 unterschrieben werden. Und hinter Microsoft wollen Sie doch nicht zurĂĽckfallen, oder? (ju)