Kryptografie mit .NET.: Verschlüsselung mit Microsofts CryptoAPI
Von Tam Hanna
Beschreibung
Über den Autor
Ähnlich wie Kryptografie mit .NET.
Titel in dieser Serie (40)
Einstieg in Google Go von Dr. Mario Deilmann Bewertung: 0 von 5 Sternen
Ähnliche Bücher
Verwandte Kategorien
Buchvorschau
Kryptografie mit .NET. - Tam Hanna
GmbH
1 Einführung in die Kryptografie mit .NET
Nicht erst seit dem Aufkommen der NSA-Affäre schläft man als Geschäftsmann ruhiger, wenn die Daten auf Notebook und Co. verschlüsselt sind: In diesem Fall müssen Datendiebe erst einmal den Schlüssel knacken, um an die Informationen zu gelangen.
Da das Knacken des Schlüssels – bei einem kryptografisch soliden System – nicht ohne Weiteres möglich ist, stehen Cyberkriminelle und andere Schnüffler vor einem Problem. Die Erstellung von zuverlässigen und sicheren Systemen ist vergleichsweise einfach, wenn man die Grundlagen der Kryptografie beherrscht.
Dieser shortcut möchte Sie mit den Besonderheiten der Kryptografie vertraut machen möchte. Neben theoretischen Grundlagen werden wir uns auch mit praktischen Implementierungen anhand des im .NET Framework enthaltenen Krypto-API beschäftigen.
Security through Obscurity
Für die folgenden Betrachtungen wollen wir mit dem in Abbildung 1.1 gezeigten Flussdiagramm beginnen. Es zeigt eine „Maschine", die den am Eingang angelieferten Klartext unter Nutzung eines Schlüssels in einen als Chiffrat bezeichneten kodierten String umwandelt.
Abbildung 1.1: Schlüssel und Klartext sind gemeinsam zur Verschlüsselung notwendig
Zur Geheimhaltung des Inhalts des Chiffrats gibt es an dieser Stelle zwei Möglichkeiten: Sie könnten einerseits darauf setzen, den genauen Verschlüsselungsprozess mit niemandem zu teilen – ein als Security by Obscurity bezeichnetes Verfahren. Als Alternative dazu bietet sich die Entwicklung eines Prozesses an, bei dem die Sicherheit nur vom Schlüssel abhängt.
Wir wollen die beiden Systeme anhand eines kleinen Beispiels vergleichen: Nehmen wir an, eine Person möchte ihr Edelmetall verstecken. Bei Security by Obscurity verbuddelt sie es in einer Höhle – wer diese findet, freut sich über einen Zuschuss in die Pensionskasse.
Wesentlich vernünftiger wäre es, die Bewachung der Höhle an einen Magier zu delegieren. Der verhext alle, die das falsche Passwort nennen – nur der, der das richtige Sätzchen aufsagt, darf passieren.
Nichts ist perfekt
Bevor wir uns den eigentlichen Prozessen zuwenden, sei noch eine allgemeine Anmerkung erlaubt: Es gibt kein Verschlüsselungssystem, das sich absolut nicht knacken lässt. Im Fall des Magiers könnte ein Krimineller so lange Personen losschicken, bis er das Passwort durch Ausprobieren aller Möglichkeiten erlangt – dank Wortlisten und Generatoren ist es heute einfach, auch Abwandlungen wie P@ssw0rt zu finden.
Daraus folgt, dass die klassischen und nach der Formel Optionen^Länge ermittelten Diagramme nur mehr teilweise gültig sind. Die in Abbildung 1.2 gezeigte Progression ist insofern unrealistisch geworden, als dedizierte Brute-Forcing-Programme heute einen Gutteil der Optionen als „unwahrscheinlich" erachten und so gar nicht erst auswerten.
Abbildung 1.2: Längere Passwörter erschweren Angriffe
Dieses – im Prinzip immer bestehende – Problem lässt sich durch ein ausreichend komplexes Passwort umgehen. Wenn besagter Krimineller seine gesamte Bande opfern müsste, würde er sich den Rückgriff auf das Edelmetall wahrscheinlich überlegen ... oder auf eine andere Methode umsteigen.
Symmetrische Verfahren
„Wer die Vergangenheit kontrolliert, hat Macht über die Zukunft, Kanes klassischer Spruch trifft auch auf Verschlüsselungssysteme zu: Wir beginnen mit einem System, das schon zu Zeiten Cäsars in Verwendung war. Es basierte auf der Substitution von Zeichen – jeder Buchstabe wird um die als „Schlüssel
bezeichnete Zeichenfolge nach vorne verschoben.
Moderne Systeme wie Advanced Encryption Standard (AES) oder Blowfish werden als blockbasierte Chiffres bezeichnet. Sie