#Konzepte der kryptografischen Messaging Syntax von PKCS 7
Die CryptoAPI-Nachrichten Funktionen entsprechen dem CMS-Standard (Cryptographic Message Syntax)von PKCS # 7 . Entwickler müssen mit dieser Spezifikation vertraut sein, um die Nachrichten Funktionen auf niedriger Ebenezu verwenden. Hier werden einige der Definitionen hervorgehoben.
Der Standard "PKCS # 7" beschreibt eine allgemeine Syntax für Daten, auf die Kryptografie angewendet werden kann, z. b. digitale Signaturen und digitale Umschläge. Die Syntax gibt eine Rekursion aus, sodass z. b. ein Umschlag innerhalb eines anderen Umschlags geschachtelt werden kann, oder eine Partei kann digitale Daten signieren, die bereits in einem Umschlag abgelegt wurden. Außerdem können beliebige Attribute, z. b. die Signatur Zeit, zusammen mit dem Inhalt einer Nachricht authentifiziert werden. Außerdem ermöglicht es anderen Attributen, z. b. countersignaturen, eine Signatur zugeordnet zu werden.
Der Datentyp, der in einer PKCS # 7-Nachricht enthalten ist, wird als Inhaltstyp bezeichnet. Es gibt zwei Klassen von Inhaltstypen: Basis und erweitert.
- Basis-Inhaltstypen enthalten nur Daten ohne kryptografische Erweiterungen. Aktuell gibt es nur einen Inhaltstyp in dieser Klasse, den Daten Inhaltstyp.
- Erweiterte Inhaltstypen enthalten Daten eines Typs (möglicherweise verschlüsselt) und anderer kryptografischer Erweiterungen (z. b. Hashes oder Signaturen).
Der Inhalt in der erweiterten Klasse verwendet Kapselung und gibt dabei die Begriffe äußerer Inhalt (der, der die Erweiterungen enthält) und den inneren Inhalt (der, der erweitert wird) an. Eine erweiterte Klasse kann z. b. den Daten Inhaltstyp (Basisklasse) enthalten, in dem eine Signatur enthalten ist. In diesem Fall ist der Daten Inhaltstyp der innere Inhalt und die Kombination aus dem Daten Inhaltstyp und der Signatur bilden den äußeren Inhalt.
Die im PKCS 7-Standard definierten Inhaltstypen # lauten wie folgt.
| Inhaltstyp | Beschreibung |
|---|---|
| Daten | Eine Zeichenfolge des Oktetts (Byte). |
| Signierte Daten | Inhalt eines beliebigen Typs und verschlüsselter Nachrichtenhashes (Digests) des Inhalts für NULL oder mehr Signatur Geber. |
| Eingeschlossene Daten | Verschlüsselter Inhalt eines beliebigen Typs und verschlüsselter Inhalts Verschlüsselungsschlüssel für einen oder mehrere Empfänger. Die Kombination aus verschlüsseltem Inhalt und verschlüsseltem Inhalts Verschlüsselungsschlüssel für einen Empfänger ist ein digitaler Umschlag für diesen Empfänger. |
| Signierte und eingehüllte Daten | Verschlüsselter Inhalt eines beliebigen Typs, verschlüsselter Content-Encryption-Schlüssel für einen oder mehrere Empfänger und doppelt verschlüsselte Nachrichten Digests für einen oder mehrere Unterzeichner. Die doppelte Verschlüsselung besteht aus einer Verschlüsselung mit dem privaten Schlüssel eines Signatur Gebers, gefolgt von einer Verschlüsselung mit dem Inhalts Verschlüsselungsschlüssel. |
| Verdauliche Daten | Inhalt eines beliebigen Typs und ein Nachrichten Hash (Digest) des Inhalts. |
| Verschlüsselte Daten | Verschlüsselter Inhalt eines beliebigen Typs. Im Gegensatz zum Inhaltstyp"Enveloped-Data" weist der verschlüsselte Daten Inhaltstyp weder Empfänger noch verschlüsselte Inhalts Verschlüsselungsschlüssel auf. Es wird davon ausgegangen, dass Schlüssel auf andere Weise verwaltet werden. |
Hinweis
In der Spezifikation der PKCS # 7 beziehen sich die Begriffe Digest und Digest auf den Wert, der durch Anwenden eines Hash Algorithmus auf Daten erzeugt wird. In dieser Dokumentation werden die Begriffe Hash und thashed für denselben Zweck verwendet. Beispielsweise wird der Datentyp, der mit den Nachrichten Funktionen auf niedriger Ebene verwendet wird, als Hashwert bezeichnet und nicht als Fehler. Für den Zweck dieser Dokumentation können die beiden Sätze von Begriffen austauschbar verwendet werden.