View a markdown version of this page

SPEKE API v2.0 — Anpassungen und Einschränkungen der Spezifikation DASH-IF - Secure Packager and Encoder Key Exchange API-Spezifikation

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

SPEKE API v2.0 — Anpassungen und Einschränkungen der Spezifikation DASH-IF

Die CPIX 2.3-Spezifikation des DASH Industry Forum unterstützt eine Reihe von Anwendungsfällen und Topologien. Die SPEKE API v2.0-Spezifikation definiert sowohl ein CPIX-Profil als auch eine API für CPIX. Um diese beiden Ziele zu erreichen, entspricht sie der CPIX-Spezifikation mit den folgenden Anpassungen und Einschränkungen:

CPIX-Profil
  • SPEKE folgt dem Encryptor Consumer-Workflow.

  • Für verschlüsselte Inhaltsschlüssel wendet SPEKE die folgenden Einschränkungen an:

    • SPEKE unterstützt keine Überprüfung digitaler Signaturen (XMLDSIG) für Nutzdaten von Anfragen oder Antworten.

    • SPEKE benötigt 2048 Zertifikate. RSA-based

  • SPEKE nutzt nur einen Teil der CPIX-Funktionen:

    • SPEKE lässt die Funktionalität weg. UpdateHistoryItemList Wenn die Liste in der Antwort vorhanden ist, ignoriert SPEKE sie.

    • SPEKE lässt die wichtigsten Funktionen aus. root/leaf Wenn das ContentKey@dependsOnKey Attribut in der Antwort vorhanden ist, ignoriert SPEKE es.

    • SPEKE lässt das BitrateFilter Element und das Attribut weg. VideoFilter@wcg Wenn diese Elemente oder Attribute in der CPIX-Payload vorhanden sind, ignoriert SPEKE sie.

  • In CPIX-Dokumenten, die mit SPEKE v2 ausgetauscht werden, können nur die Elemente oder Attribute verwendet werden, auf die auf der Seite „Standard-Payload-Komponenten“ oder auf der Seite „Verschlüsselungsvertrag“ als „Unterstützt“ verwiesen wird.

  • Wenn sie vom Verschlüsseler in einer CPIX-Anfrage enthalten sind, müssen alle Elemente und Attribute einen gültigen Wert in der CPIX-Antwort des Schlüsselanbieters enthalten. Ist dies nicht der Fall, stoppt der Verschlüsseler und gibt einen Fehler aus.

  • SPEKE unterstützt die Schlüsselrotation mit KeyPeriodFilter Elementen. SPEKE verwendet nur dieContentKeyPeriod@index, um den Schlüsselzeitraum zu verfolgen.

  • Für die HLS-Signalisierung müssen mehrere DRMSystem.HLSSignalingData Elemente verwendet werden: eines mit dem DRMSystem.HLSSignalingData@playlist Attributwert „media“ und ein weiteres mit dem DRMSystem.HLSSignalingData@playlist Attributwert „master“.

  • Beim Anfordern von Schlüsseln verwendet der Verschlüsseler möglicherweise das optionale Attribut @explicitIV des Elements ContentKey. Der Schlüsselanbieter kann mit einem IV unter Verwendung von @explicitIV antworten, auch wenn das Attribut nicht in der Anforderung enthalten ist.

  • Die Verschlüsseler erstellt die Schlüssel-ID (KID), die für alle Inhalts-IDs und Schlüsselzeiträume gleich bleibt. Der Schlüsselanbieter schließt KID in seiner Antwort auf das Anforderungsdokument ein.

  • Der Verschlüsseler muss einen Wert für das Attribut enthalten. CPIX@contentId Wenn der Schlüsselanbieter einen leeren Wert für dieses Attribut erhält, gibt er einen Fehler mit der Beschreibung 'Missing CPIX @contentId 'zurück. CPIX@contentIdDer Wert kann vom Schlüsselanbieter nicht überschrieben werden.

    CPIX@idEin Wert, wenn er nicht Null ist, wird vom Schlüsselanbieter ignoriert.

  • Der Verschlüsseler muss einen Wert für das CPIX@version Attribut enthalten. Wenn der Schlüsselanbieter einen leeren Wert für dieses Attribut erhält, gibt er einen Fehler mit der Beschreibung 'Missing CPIX @version 'zurück. Beim Empfang einer Anfrage mit einer nicht unterstützten Version lautet die vom Schlüsselanbieter zurückgegebene Fehlerbeschreibung „Nicht unterstützter CPIX @version“.

    CPIX@versionDer Wert kann vom Schlüsselanbieter nicht überschrieben werden.

  • Der Verschlüsseler muss für jeden angeforderten Schlüssel einen Wert für das ContentKey@commonEncryptionScheme Attribut enthalten. Wenn der Schlüsselanbieter einen leeren Wert für dieses Attribut erhält, gibt er einen Fehler mit der Beschreibung „Missing ContentKey @common EncryptionScheme for KIDid“ zurück.

    Ein eindeutiges CPIX-Dokument kann nicht mehrere Werte für verschiedene Attribute mischen. ContentKey@commonEncryptionScheme Wenn der Schlüsselanbieter eine solche Kombination erhält, gibt er eine Fehlermeldung mit der Beschreibung „Nicht konforme ContentKey @common -Kombination“ zurück. EncryptionScheme

    Nicht alle ContentKey@commonEncryptionScheme Werte sind mit allen DRM-Technologien kompatibel. Wenn der Schlüsselanbieter eine solche Kombination erhält, gibt er einen Fehler mit der Beschreibung 'ContentKey@common EncryptionScheme non compatible with id DRMSystem' zurück.

    ContentKey@commonEncryptionSchemeDer Wert kann vom Schlüsselanbieter nicht überschrieben werden.

  • Wenn im CPIX-Antworttext unterschiedliche Werte für ein DRMSystem.ContentProtectionData <pssh> InnerXML-Element empfangen werden, stoppt der Verschlüsseler DRMSystem@PSSH und gibt einen Fehler aus.

API für CPIX
  • Der Schlüsselanbieter muss einen Wert für den X-Speke-User-Agent HTTP-Antwort-Header angeben.

  • Ein SPEKE-compliant Verschlüsseler fungiert als Client und sendet POST-Operationen an den Endpunkt des Schlüsselanbieters.

  • Der Verschlüsseler muss einen Wert für den X-Speke-Version HTTP-Request-Header enthalten, wobei die für die Anfrage verwendete SPEKE-Version wie '2.0' für SPEKE v2.0 formuliert ist. MajorVersion.MinorVersion Wenn der Schlüsselanbieter die vom Verschlüsseler für die aktuelle Anfrage verwendete SPEKE-Version nicht unterstützt, gibt der Schlüsselanbieter eine Fehlermeldung mit der Beschreibung „Nicht unterstützte SPEKE-Version“ zurück und versucht nicht, das CPIX-Dokument nach besten Kräften zu verarbeiten.

    Der vom Verschlüsseler definierte X-Speke-Version Header-Wert kann vom Schlüsselanbieter in der Antwort auf die Anfrage nicht geändert werden.

  • Beim Empfang von Fehlern im Antworttext gibt der Verschlüsseler einen Fehler aus und versucht nicht, die Anfrage mit einer SPEKE v1.0-Versionierung zu wiederholen.

    Wenn der Schlüsselanbieter keinen Fehler zurückgibt, aber kein CPIX-Dokument zurückgibt, das die obligatorischen Informationen enthält, sollte der Verschlüsseler anhalten und einen Fehler ausgeben.

Die folgende Tabelle fasst die Standardnachrichten zusammen, die vom Schlüsselanbieter im Nachrichtentext zurückgegeben werden müssen. Der HTTP-Antwortcode in Fehlerfällen muss 4XX oder 5XX sein, niemals 200. Der 422-Fehlercode kann für alle Fehler verwendet werden, die sich auf Folgendes beziehen. SPEKE/CPIX

Fehlerfall Fehlermeldung

CPIX @contentId ist nicht definiert

CPIX @contentId fehlt

CPIX @version ist nicht definiert

CPIX @version fehlt

CPIX @version wird nicht unterstützt

CPIX @version wird nicht unterstützt

ContentKey@common ist EncryptionScheme nicht definiert

ContentKey@common fehlt EncryptionScheme für KID id (wobei id gleich ContentKey @kid -Wert ist)

In einem einzigen CPIX-Dokument werden mehrere ContentKey @common EncryptionScheme -Werte verwendet

Nicht konforme @common -Kombination ContentKey EncryptionScheme

ContentKey@common EncryptionScheme ist nicht mit der DRM-Technologie kompatibel

ContentKey@common EncryptionScheme nicht kompatibel mit DRMSystem id (wobei id gleich dem DRMSystem @systemId -Wert ist)

X-Speke-Version Der Header-Wert ist keine unterstützte SPEKE-Version

Nicht unterstützte SPEKE-Version

Der Verschlüsselungsvertrag ist falsch formatiert

Der Verschlüsselungsvertrag ist falsch formatiert

Der Verschlüsselungsvertrag widerspricht den Einschränkungen der DRM-Sicherheitsstufen

Der angeforderte CPIX-Verschlüsselungsvertrag wird nicht unterstützt

Der Verschlüsselungsvertrag enthält keines der ODER-Elemente VideoFilter AudioFilter

Fehlender CPIX-Verschlüsselungsvertrag