Appendix B. DER Expectations (DER-Erwartungen)
Dieser Anhang ist informativ. Konsultieren Sie die jeweiligen Standards für die normativen Regeln.
DER ist ein eingeschränktes Profil von BER [X.690]; daher sind alle DER-Kodierungen von Datenwerten BER-Kodierungen, aber nur eine der BER-Kodierungen ist die DER-Kodierung für einen Datenwert. Kanonische Kodierung ist wichtig bei der Durchführung kryptografischer Operationen; zusätzlich hat kanonische Kodierung bestimmte Effizienzvorteile für Parser. Es gibt drei Hauptgründe, mit DER zu kodieren:
-
Eine digitale Signatur soll (angeblich) über die DER-Kodierung des semantischen Inhalts berechnet werden, daher ist die Bereitstellung von etwas anderem als der DER-Kodierung sinnlos. (In der Praxis könnte ein Implementierer wählen, eine Implementierung die Daten parsen und hashen zu lassen, wie sie sind, aber diese Praxis ist gleichbedeutend mit Vermutungen.)
-
In der Praxis werden kryptografische Hashes zur Identifikation über die DER-Kodierung berechnet.
-
In der Praxis ist der Inhalt klein. DER kodiert Datenwerte immer in Definite-Length-Form (bei der die Länge am Anfang der Kodierung angegeben wird); daher kann ein Parser im Voraus die Speicher- oder Ressourcennutzung antizipieren.
Figure 20 ordnet die Strukturen in diesem Dokument den bestimmten Gründen für DER-Kodierung zu:
Sec. Label Reasons
----+----------------------+-------
5 CERTIFICATE 1 2 ~3
6 X509 CRL 1
7 CERTIFICATE REQUEST 1 ~3
8 PKCS7 *
9 CMS *
10 PRIVATE KEY 3
11 ENCRYPTED PRIVATE KEY 3
12 ATTRIBUTE CERTIFICATE 1 ~3
13 PUBLIC KEY 2 3
Figure 20: Guide for DER Encoding (Leitfaden für DER-Kodierung)
* Cryptographic Message Syntax ist für Inhalte jeder Länge konzipiert; Indefinite-Length-Kodierung ermöglicht Einzel-Pass-Verarbeitung (Streaming) beim Generieren der Kodierung. Nur bestimmte Teile -- nämlich signierte und authentifizierte Attribute -- müssen DER-kodiert sein.
~ Obwohl nicht immer "klein", sollten diese kodierten Strukturen nicht besonders "groß" sein (z.B. mehr als 16 Kilobyte). Der Parser sollte ohnehin über große Dinge im Voraus informiert werden; dies ist ein weiterer Grund, diese Dinge überhaupt DER zu kodieren.
Figure 20: Guide for DER Encoding (Leitfaden für DER-Kodierung)