Cryptography Reference
In-Depth Information
Fehler in der Zugangskontrolle
Viele sicherheitskritische Implementierungsfehler haben mit dem Thema
Zugangskontrolle zu tun. In einem Client-Server-System mit vielen Benutzern
muss genau geregelt sein, wer auf welche Daten zugreifen darf. Ein Fehler in der
Zugangskontrolle kann schnell dazu führen, dass Alice auf einmal Daten lesen
kann, die sie eigentlich nichts angehen, oder dass sie sogar den privaten Schlüssel
anderer Leute nutzen kann.
Versäumtes Löschen
Wenn Mallory Zugriff auf Alices Rechner hat (etwa wenn er deren Laptop
gestohlen hat), ergeben sich für ihn weitere Möglichkeiten, von Implementie-
rungsfehlern zu profitieren. Wie bereits erwähnt, ist das sichere Löschen eine
wichtige Funktion, die eine gute Krypto-Implementierung erfüllen muss. Tut sie
das nicht, dann muss man dies als Fehler betrachten.
Integrationsfehler
Gute Bausteine sind keine Garantie für ein hochwertiges Haus. Diese Binsenweis-
heit gilt auch für die Kryptografie. So zeigt sich in der Praxis immer wieder, dass
viele Implementierungsfehler aus der falschen Verwendung oder dem falschen
Zusammenspiel korrekt implementierter Komponenten resultieren. Ein einfaches
Beispiel: Eine Bibliotheksfunktion arbeitet mit einem geheimen Schlüssel und
speichert diesen. Das Hauptprogramm hätte nun die Aufgabe, diesen Schlüssel
nach der Verwendung zu löschen, tut dies aber nicht. Trotz einer fehlerfreien Bib-
liotheksfunktion hat sich also ein Fehler eingeschlichen. Ein weiteres Beispiel:
Selbst die beste Implementierung einer Stromchiffre kann nicht verhindern, dass
ein Programm sie mehrfach mit demselben Initialisierungsvektor und demselben
Schlüssel aufruft. Eines ist daher klar: Obwohl es absolut sinnvoll ist, kryptogra-
fische Software in Form voneinander unabhängiger Module zu strukturieren, ist
ein modularer Aufbau aus korrekt implementierten Komponenten alleine noch
keine Garantie für ein fehlerfreies Programm.
17.4.3
Gegenmaßnahmen
Es versteht sich von selbst, dass kryptografische Maßnahmen gegen Implementie-
rungsfehler wenig nützen. Wir müssen also auf einer anderen Ebene ansetzen,
und zwar in der Softwareentwicklung. Das wichtigste Problem in diesem Zusam-
menhang ist, dass die Entwicklung kryptografischer Software andere Anforde-
rungen stellt als die Entwicklung sicherheitsunkritischer Software. Software, die
keine Sicherheitsfunktion erfüllt, gilt als korrekt, wenn sie alle Funktionen in der
vorgesehenen Form ausführt. Bei kryptografischer Software gilt jedoch noch eine
zusätzliche Anforderung: Eine solche ist erst dann korrekt, wenn Schlüssel und
Search WWH ::




Custom Search