CWE ID: 1240
Name: Use of a Cryptographic Primitive with a Risky Implementation
Um den Bedarf an einer kryptografischen Primitiven zu decken, implementiert das Produkt einen kryptografischen Algorithmus unter Verwendung einer nicht-standardmäßigen, nicht bewiesenen oder nicht zugelassenen/nicht konformen kryptografischen Implementierung.
Effektivität: High
Beschreibung: Es ist erforderlich, die aktuellsten Empfehlungen von vertrauenswürdigen Stellen einzuhalten und sicherzustellen, dass diese Einhaltung stets auf dem neuesten Stand ist, da Empfehlungen sich im Laufe der Zeit weiterentwickeln. Beispielsweise erfordern US-amerikanische Regierungssysteme die FIPS 140-3 Zertifizierung, welche die FIPS 140-2 ablöst [REF-1192] [REF-1226].
Effektivität: High
Beschreibung: Sicherstellen, dass die Architektur/das Design die stärksten verfügbaren primitives und algorithms von vertrauenswürdigen Stellen verwendet. Beispielsweise erfordern US-amerikanische Regierungssysteme die FIPS 140-3 Zertifizierung, welche die FIPS 140-2 ablöst [REF-1192] [REF-1226].
Effektivität: Discouraged Common Practice
Beschreibung: Vermeiden Sie die Entwicklung eigener oder privater kryptografischer algorithms. Diese sind wahrscheinlich Angriffen ausgesetzt, die von Kryptographen gut verstanden werden. Wie bei allen kryptografischen Mechanismen sollte der source code für die Analyse verfügbar sein. Wenn ein algorithm kompromittiert werden kann, sobald Angreifer dessen Funktionsweise herausfinden, ist er besonders anfällig.
Effektivität: Discouraged Common Practice
Beschreibung: Vermeiden Sie die Verwendung kryptografischer algorithms in neuartigen oder ungewöhnlichen modes of operation, selbst wenn Sie glauben, diese seien sicher. Beispielsweise mag die Verwendung von SHA-2-Ketten zur Erstellung eines one-time pad für die Verschlüsselung eine gute Idee erscheinen, dies sollte jedoch vermieden werden.
Effektivität: Defense in Depth
Beschreibung: Stellen Sie sicher, dass das Design die Möglichkeit bietet, eine kryptografische primitive oder einen algorithm in der nächsten Generation durch einen anderen zu ersetzen (“kryptografische agility”). Nutzen Sie nach Möglichkeit wrappers, um die interfaces zu vereinheitlichen. Dies erleichtert das Upgrade auf stärkere algorithms. Dies ist besonders wichtig für Hardware, deren Upgrade oft schwieriger ist als bei Software; gestalten Sie die Hardware auf Blockebene, sodass sie austauschbar ist.
Effektivität: Discouraged Common Practice
Beschreibung: Verwenden Sie keine veralteten oder nicht konformen kryptografischen algorithms. Einige ältere algorithms, die einst als erfordert wurden, um eine Milliarde Jahre Rechenzeit zu benötigen, können heute in Tagen oder Stunden gebrochen werden. Dazu gehören MD4, MD5, SHA1, DES und andere algorithms, die einst als stark galten [REF-267].
Effektivität: Discouraged Common Practice
Beschreibung: Verwenden Sie kein linear-feedback shift register (LFSR) oder andere Legacy-Methoden als Ersatz für einen anerkannten und standardisierten Random Number Generator.
Effektivität: Discouraged Common Practice
Beschreibung: Verwenden Sie keine checksum als Ersatz für einen kryptografisch generierten hash.
Effektivität: High
Beschreibung: Nutzen Sie eine geprüfte kryptografische Bibliothek oder ein framework. Branchenübliche Implementierungen sparen Entwicklungszeit und verringern die Wahrscheinlichkeit von Fehlern, die bei der Implementierung kryptografischer Algorithmen auftreten können. Es besteht jedoch die Möglichkeit, dass die Bibliothek/das framework während der Implementierung fehlerhaft verwendet wird.
Effektivität: Moderate
Beschreibung: Wenn Sie branchenanerkannte Techniken einsetzen, stellen Sie sicher, dass diese korrekt angewendet werden. Vermeiden Sie Abkürzungen, indem Sie ressourcenintensive Schritte überspringen (CWE-325). Diese Schritte sind oft unerlässlich, um gängige attacks zu verhindern.
Effektivität: Moderate
Beschreibung: Speichern Sie keys nicht in Bereichen, die für nicht vertrauenswürdige agents zugänglich sind. Verwalten und schützen Sie die kryptografischen keys sorgfältig (siehe CWE-320). Wenn die keys erraten oder gestohlen werden können, ist die Stärke des kryptografischen Algorithmus irrelevant.