Cryptography Reference
In-Depth Information
Klartexte ausreichend geschützt sind. Dieser Grundsatz muss in jeder Phase der
Softwareentwicklung beachtet werden.
Spezifikation
Da kryptografische Software zusätzliche Anforderungen erfüllen muss, muss schon
die Spezifikation entsprechende Gesichtspunkte enthalten. Hier einige Beispiele:
Schlüssel und Klartexte müssen schnellstmöglich und sicher gelöscht werden,
wenn sie nicht mehr benötigt werden.
Dauerhaft gespeicherte Schlüssel müssen verschlüsselt abgelegt werden.
Ein Zufallsgenerator sollte einen geeigneten Selbsttest enthalten.
Fehlermeldungen sollten so beschaffen sein, dass sie keine geheimen Informa-
tionen preisgeben.
Insgesamt ist es von Vorteil, eine kryptografische Software modular zu gestal-
ten. Wenn es beispielsweise für die symmetrische Verschlüsselung, für das
kryptografische Hashen und für die Zufallsgenerierung jeweils ein eigenes,
abgeschlossenes Modul gibt, dann hat dies aus Sicht der Sicherheit deutliche
Vorteile. So können Alice und Bob jedes Modul einzeln analysieren und gege-
benenfalls das verwendete Verfahren austauschen. Auch eine Sicherheitsana-
lyse des gesamten Systems wird deutlich einfacher, wenn es verschiedene
Module mit klar definierten Aufgaben gibt.
Programmierung
Bei der Programmierung ist darauf zu achten, dass möglichst wenig Fehler entste-
hen. Dies ist eine Binsenweisheit, die für jede Software gilt und zudem nie voll-
ständig erfüllbar ist. Die einzige praktische Empfehlung, die sich daraus ableitet,
ist, dass kryptografische Software noch kritischer gegenüber Fehlern ist als
andere Programme und dass Fehler oftmals schwerer entdeckt werden.
Te s t s
Es versteht sich von selbst, dass kryptografische Software einige Tests erfordert,
die bei anderen Programmen nicht notwendig sind. Dabei muss die korrekte Aus-
gabe aller kryptografischen Funktionen (z.B. mit Testvektoren) überprüft wer-
den. Darüber hinaus sind Tests eines gegebenenfalls vorhandenen Zufallsgenera-
tors Pflicht. Außerdem sollte nach etwaigen Schlüssel-Speicherleichen gesucht
werden.
Weitere Werkzeuge
Abgesehen von der Softwareentwicklung an sich gibt es einige weitere Werk-
zeuge, die Implementierungsfehler verhindern oder zumindest ihre Folgen
abschwächen können. Hier die wichtigsten:
Search WWH ::




Custom Search