5. Überlegungen zu Hash-Algorithmen und Registrierung
Es gibt eine Vielzahl von Hashing-Algorithmen, die für Zwecke der Integrität verwendet werden können. Die Wahl des Algorithmus hängt von mehreren Faktoren ab, wie z. B. dem Integritätsanwendungsfall, den Implementierungsanforderungen oder -beschränkungen oder dem Anwendungsdesign und den Arbeitsabläufen.
Ein anfänglicher Satz von Algorithmen wird bei der IANA im Register "Hash Algorithms for HTTP Digest Fields" registriert; siehe Abschnitt 7.2. Zusätzliche Algorithmen können gemäß den in diesem Abschnitt dargelegten Richtlinien registriert werden.
Jeder Algorithmus verfügt über ein Statusfeld, das als Hilfe bei der Implementierungsauswahl dienen soll.
Algorithmen mit einem Statuswert von "Active" (Aktiv) sind für viele Zwecke geeignet, und es wird EMPFOHLEN, dass Anwendungen diese Algorithmen verwenden. Diese können in kontroversen Situationen verwendet werden, in denen Hash-Funktionen möglicherweise Widerstand gegen Kollisions-, First-Preimage- und Second-Preimage-Angriffe bieten müssen. In kontroversen Situationen hängt die Auswahl der akzeptablen "Active"-Algorithmen vom Schutzniveau ab, das die Umstände erfordern. Weitere Überlegungen werden in Abschnitt 6.6 vorgestellt.
Algorithmen mit einem Statuswert von "Deprecated" (Veraltet) bieten entweder keine dieser Eigenschaften oder sind bekanntermaßen schwach (siehe [NO-MD5] und [NO-SHA]). Diese Algorithmen KÖNNEN verwendet werden, um die Integrität gegen Beschädigung zu bewahren, DÜRFEN JEDOCH NICHT in einer potenziell kontroversen Umgebung verwendet werden, beispielsweise beim Signieren von Werten von Integritätsfeldern zur Authentizität. Die Zulassung der Verwendung dieser Algorithmen kann einigen Anwendungen (z. B. solchen, die zuvor [RFC3230] verwendet haben, auf diese Spezifikation migrieren (Anhang E) und über vorhandene gespeicherte Sammlungen berechneter Digest-Werte verfügen) helfen, unnötigen Betriebsaufwand zu vermeiden, der durch Neuberechnung mit anderen, sichereren Algorithmen verursacht wird. Solche Anwendungen sind nicht von den Anforderungen in diesem Abschnitt befreit. Darüber hinaus sollten Anwendungen ohne ein solches Erbe oder eine solche Geschichte den Leitlinien für die Verwendung von Algorithmen mit dem Statuswert "Active" folgen.
Eine Diskussion über die Agilität von Algorithmen wird in Abschnitt 6.6 vorgestellt.
Registrierungsanfragen für das Register "Hash Algorithms for HTTP Digest Fields" verwenden die Richtlinie Specification Required (Abschnitt 4.6 von [RFC8126]). Anfragen sollten die folgende Vorlage verwenden:
-
Algorithm Key (Algorithmus-Schlüssel): Der Schlüsselwert für strukturierte Felder, der in den Schlüsseln der Wörterbuchmitglieder der Felder Content-Digest, Repr-Digest, Want-Content-Digest oder Want-Repr-Digest verwendet wird.
-
Status: Der Status des Algorithmus. Die Optionen sind:
- "Active": Algorithmen ohne bekannte Probleme
- "Provisional": Unbewiesene Algorithmen
- "Deprecated": Veraltete oder unsichere Algorithmen
-
Description (Beschreibung): Eine kurze Beschreibung des Algorithmus.
-
Reference(s) (Referenz(en)): Verweis(e) auf das/die primäre(n) Dokument(e), das/die den Algorithmus-Schlüssel und die technischen Details des Algorithmus definiert/definieren.
Bei der Prüfung von Registrierungsanfragen sollten der/die benannte(n) Experte(n) auf den angeforderten Status achten. Der Statuswert sollte den Standardisierungsstatus und die breite Meinung relevanter Interessengruppen wie der IETF oder sicherheitsbezogener Standards Development Organizations (SDOs) widerspiegeln. Der Status "Active" ist nicht geeignet für einen Algorithmus, der bekanntermaßen schwach, defekt oder experimentell ist. Wenn eine Registrierungsanfrage versucht, einen solchen Algorithmus als "Active" zu registrieren, sollten der/die benannte(n) Experte(n) einen alternativen Status von "Deprecated" oder "Provisional" vorschlagen.
Bei der Prüfung von Registrierungsanfragen können der/die benannte(n) Experte(n) einen Status von "Deprecated" oder "Provisional" nicht als Ablehnungsgrund verwenden.
Anfragen zur Aktualisierung oder Änderung der Felder in einer bestehenden Registrierung sind zulässig. Dies könnte beispielsweise den Übergang eines Algorithmusstatus von "Active" zu "Deprecated" ermöglichen, wenn sich die Sicherheitsumgebung weiterentwickelt.