Was ist DRM-Verschlüsselung?
DRM-Verschlüsselung wandelt codierte Medien in Geheimtext um, den ein Player nur mit dem passenden Inhaltsschlüssel entschlüsseln kann. Ein Lizenzsystem gibt diesen Schlüssel und die zugehörigen Nutzungsregeln an Clients heraus, die es autorisiert.
So funktioniert DRM-Verschlüsselung
Die Verschlüsselung erfolgt durch den Packager nach dem Encoding. Bei Common Encryption (ISO/IEC 23001-7), das fragmentierte MP4-Streams für DASH und HLS verwenden, werden verschlüsselte Samples mit einem AES-Schlüssel mit 128 Bit nach einem der vier Verfahren des Standards verschlüsselt. Die beiden Verfahren, die das W3C-Streamformat für Encrypted Media Extensions zulässt, sind cenc (Zählermodus) und cbcs (Cipher Block Chaining mit einem Muster, das nur einen Teil jedes Videosamples verschlüsselt). Ein geschützter Stream kann auch unverschlüsselte Samples enthalten, etwa einen unverschlüsselten Vorlauf am Anfang. Die Medien legen den Inhaltsschlüssel nicht im Klartext offen. Sie enthalten eine Schlüssel-ID, standardmäßig in der Track Encryption Box (tenc). Der Client eines DRM-Systems benötigt Initialisierungsdaten, um eine Lizenz anzufordern. Wo diese liegen, hängt vom Auslieferungsformat ab. Für DASH beschreibt DASH-IF einen schutzsystemspezifischen Header (pssh) für jedes System, der in den Medien, im Manifest als Element cenc:pssh oder in beiden enthalten ist; das Manifest gibt die Schlüssel-ID außerdem als cenc:default_KID an. Eine HLS-Playlist signalisiert Schlüssel in Tags des Typs EXT-X-KEY, deren URI-Attribut angibt, wie der Schlüssel abgerufen wird; Inhalte für FairPlay müssen in diesem Tag das Schlüsselformat com.apple.streamingkeydelivery verwenden. Der Player übergibt die Initialisierungsdaten an das Modul zur Inhaltsentschlüsselung des Geräts, leitet dessen Lizenzanfrage an den Lizenzdienst weiter und gibt die Lizenz an das Modul zurück; die Entschlüsselung erfolgt dann innerhalb des Moduls. Die Samples werden einmal verschlüsselt, und nur die Lizenz wird pro Client ausgestellt. Daher laden alle Zuschauer dieselben verschlüsselten Segmente herunter, die wie unverschlüsselte Segmente gemeinsam genutzt und zwischengespeichert werden können.
Wichtige Fakten
cencodercbcs? Die beiden Verfahren sind nicht austauschbar, und ein Gerät muss das Verfahren unterstützen, mit dem der Inhalt paketiert wurde. Inhalte für FairPlay müssen die HLS-MethodeSAMPLE-AESverwenden, die RFC 8216 für fragmentiertes MP4 als Verfahrencbcsdefiniert. Die Authoring-Spezifikation von Apple legt fest, dassSAMPLE-AES-CTRauf Apple-Geräten nicht verwendet werden darf. RFC 8216 definiert keine Methode im Zählermodus. Dennoch führt die Media3-Dokumentation von Android HLS in fragmentiertem MP4 als unterstütztes Format für Widevine mitcencund auf Android TV für PlayReady mitcencauf. Dieselbe Dokumentation nennt Widevine mitcencab Android 4.4, mitcbcsjedoch erst ab Android 7.1 (die Plattformtabelle von Widevine selbst nennt Android 7.x und neuer). PlayReady hatcbcsin der Client-Version 4.0 hinzugefügt, in der die Unterstützung weiterhin optional ist. Eine einzige Kopie mitcbcskann daher FairPlay-, Widevine- und PlayReady-Clients bedienen, die das Verfahren unterstützen. Die Versionsangabe PlayReady 4.0 allein garantiert diese Unterstützung nicht, und ältere Android- oder PlayReady-Clients benötigen eine zweite Kopie mitcenc. Wenn Sie beide Varianten paketieren, darf ein Dienst laut Microsoft denselben Inhalt nicht in beiden Modi mit derselben Schlüssel-ID und demselben Schlüssel verschlüsseln.- Ist die Schlüssel-ID geheim, und womit muss sie übereinstimmen? Nein, sie ist eine Kennzeichnung. Die Schlüssel-ID wird unverschlüsselt in der Box
tenc, in Daten des Typspsshund in DASH-Manifesten übertragen und teilt dem Client und dem Lizenzdienst mit, welcher Schlüssel benötigt wird. Nur der Schlüssel selbst ist geheim und wird innerhalb einer Lizenz ausgeliefert. Die Kennungen müssen auf jeder Ebene übereinstimmen: DASH-IF verlangt, dasscenc:default_KIDim Manifest mit dem Wert in der Boxtencübereinstimmt, der als maßgebliche Referenz gilt. Liefert eine Lizenz einen Schlüssel unter einer anderen ID, lassen sich die Samples nicht entschlüsseln, obwohl der Stream geladen wird. - Funktioniert eine verschlüsselte Kopie mit mehreren DRM-Systemen? Ja, sofern die Systeme das verwendete Verfahren unterstützen: Common Encryption ermöglicht es mehreren Schlüsselsystemen, dieselben Medien zu entschlüsseln. Jedes System benötigt weiterhin eine eigene Signalisierung und einen Lizenzdienst, der denselben Schlüssel zurückgeben kann. Packager erzeugen diese Signalisierung für jedes System; Shaka Packager kann beispielsweise für einen Satz von Schlüsseln Signalisierungen für Widevine, PlayReady und FairPlay ausgeben. Für Browser ist entscheidend, wo die Signalisierung liegt: DASH-IF rät von Boxen des Typs
psshin Initialisierungssegmenten ab, da jede Box, die ein Browser verarbeitet, eine weitere Lizenzanfrage auslösen kann, sofern der Player die Duplikate nicht erkennt und blockiert. DASH-IF weist außerdem darauf hin, dass sich ein DRM-System ohne Änderung der Inhalte hinzufügen lässt, wenn Daten des Typspsshim Manifest enthalten sind. - Wann lohnt sich die Komplexität einer Schlüsselrotation? DASH-IF beschreibt ihren Hauptzweck darin, bei fortlaufenden Live-Inhalten eine regelmäßige erneute Autorisierung zu erzwingen, etwa an Programmgrenzen, und erklärt ausdrücklich, dass sie die Verschlüsselung nicht stärker machen soll. Bei Common Encryption werden die wechselnden Schlüssel-IDs pro Sample über Sample-Gruppen des Typs
seigsignalisiert, optional mit Lizenzdaten in Boxen des Typspsshinnerhalb von Filmfragmenten. Bei HLS gilt jedes Tag des TypsEXT-X-KEYfür die folgenden Segmente bis zum nächsten Tag mit demselbenKEYFORMAToder bis zum Ende der Playlist. Die Rotation erfordert Unterstützung durch den Player (Media3 von Android benötigt für Streams mit wechselnden Schlüsseln den Mehrsitzungsmodus), Schlüsselwechsel an Segmentgrenzen und zeitlich verteilte Lizenzanfragen, damit nicht alle Clients gleichzeitig anfragen. DASH-IF beschreibt eine Möglichkeit zur zeitlichen Verteilung, bei der das DRM-System verantwortlich ist: Aktuelle und kommende Schlüssel werden in Daten des Typspsshangekündigt, und jeder Client wählt einen zufälligen Zeitpunkt für seine Lizenzanfrage.
Wann DRM-Verschlüsselung wichtig ist
Konfigurieren Sie die Verschlüsselung beim Paketieren von Streams, die für eine kontrollierte Wiedergabe vorgesehen sind, und schützen Sie die Schlüssel separat. Bei einer nicht passenden Schlüssel-ID, einem nicht passenden Verfahren oder einer nicht passenden Lizenzkonfiguration lassen sich korrekt codierte Medien nicht wiedergeben.
Quellen
- W3C: ISO-Common-Encryption-Schutzverfahren für das Streamformat des ISO Base Media File Format
- W3C: Initialisierungsdatenformat „cenc“ (pssh-Boxen)
- W3C Encrypted Media Extensions (Verschlüsselungsverfahren, Schlüssel-IDs, Module zur Inhaltsentschlüsselung)
- DASH-IF-Interoperabilitätspunkte v4.3, Kapitel 7: Inhaltsschutz und Sicherheit (Abschnitte 7.3, 7.5 und 7.7)
- RFC 8216 (HTTP Live Streaming), Abschnitt 4.3.2.4: EXT-X-KEY
- Apple: HLS-Authoring-Spezifikation für Apple-Geräte (Anforderungen an den Inhaltsschutz)
- Microsoft PlayReady: Modi zur Inhaltsverschlüsselung (Unterstützung von cenc und cbcs nach Client-Version)
- Android Media3 ExoPlayer: Verwaltung digitaler Rechte (unterstützte Verfahren, Schlüsselrotation)
- Google Widevine: DRM-Überblick (unterstützte Verschlüsselungsverfahren nach Plattform)
- Shaka-Packager-Dokumentation: DRM (Schutzverfahren und Schutzsysteme)