Zum Hauptinhalt springen

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:

  1. 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.)

  2. In der Praxis werden kryptografische Hashes zur Identifikation über die DER-Kodierung berechnet.

  3. 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)