Cryptography Reference
In-Depth Information
17.4.2
Implementierungsfehler in vielen Variationen
Es ist schwierig, die zahlreichen Spielarten von kryptografierelevanten Pro-
grammfehlern in eine Übersicht zu bringen. Von Bedeutung sind für uns vor allem
solche Fehler, die es Mallory ermöglichen, geheimes Schlüsselmaterial zu lesen.
Andere Programmierfehler wiederum geben unter bestimmten Umständen den
Klartext oder Teile davon preis. Oft ist der Übergang zwischen einem Programm-
fehler und einem unsicheren Protokoll fließend. Im Folgenden will ich einige Bei-
spiele für Implementierungsfehler vorstellen, ohne das Thema vollständig zu
behandeln.
Falsch implementierte Verfahren
Wenn ein Krypto-Verfahren selbst fehlerhaft implementiert ist, fällt dies meist
schnell auf. Eine fehlerhafte Verschlüsselung wird oft dadurch entdeckt, dass die
zugehörige Entschlüsselung nicht das gewünschte Ergebnis liefert. Die Sache ist
jedoch nicht immer so einfach. Eine Feistel-Chiffre tut beispielsweise auch dann
ihren Dienst, wenn eine Rundenfunktion nicht korrekt arbeitet. Da zum Ver- und
Entschlüsseln dieselbe Rundenfunktion verwendet wird, hebt sich ein Fehler häu-
fig selbst auf. Dabei kann ein Fehler in der Rundenfunktion die Sicherheit des
Verfahrens zunichte machen.
Auch bei asymmetrischen Verfahren können sich Fehler einschleichen, die
nicht sofort auffallen. Gerade bei RSA, dem bedeutendsten asymmetrischen Ver-
fahren, ist eine sorgfältige Auswahl der Parameter notwendig. Dummerweise
funktioniert das Verfahren jedoch auch bei schlecht gewählten Parametern, ohne
dass etwas Auffälliges passiert. Ähnliches gilt auch für alle anderen gängigen
asymmetrischen Verfahren.
Besonders anfällig gegenüber Implementierungsfehlern sind kryptografische
Verfahren, bei denen es keine gegenläufigen Operationen wie Ver- und Entschlüs-
selung gibt. Zufallsgeneratoren sind ein Beispiel dafür. Einer Zufallsfolge ist es
nicht auf den ersten Blick anzusehen, ob sie wirklich zufällig ist. Ähnlich verhält
es sich mit einer kryptografischen Hashfunktion.
Um Implementierungsfehler bei kryptografischen Verfahren zu verhindern,
muss die jeweilige Software auf geeignete Weise getestet werden. Die Beschrei-
bung eines Verfahrens enthält aus diesem Grund meist ein paar Testvektoren,
also Vergleichswerte (z.B. Klartext und zugehöriger Geheimtext), mit dem der
Implementierer die Korrektheit der jeweiligen Funktion überprüfen kann.
Schlecht gewählte RSA-Parameter oder falsch implementierte Zufallsgeneratoren
wird man damit jedoch nicht ohne weiteres entdecken. Ähnlich schwierig zu fin-
den sind Fehler in der Implementierung kryptografischer Protokolle. Eines ist
daher nicht zu bestreiten: Schon der erste Schritt bei der Umsetzung kryptografi-
scher Verfahren in die Praxis ist mit einigen Fallstricken versehen.
Search WWH ::




Custom Search