HTTP-live-streaming mit Verschlüsselung
Ich versuche zu verstehen, wie das HTTP-Live-Streaming-Protokoll, das von Apple unterstützt auf Ihren iOS-Geräten als auch auf Safari schützt den Schlüssel, der entriegelt die Inhalte.
Die Art, wie ich es verstehe, das .m3u8-Datei hält die ganze Sache zusammen und verweist auf den Inhalt (in dem MPEG2-TS container, AES-128 verschlüsselt), und die Taste, um die TS-Datei.
Wie in diesem Beispiel:
#EXTM3U
#EXT-X-MEDIA-SEQUENCE:7794
#EXT-X-TARGETDURATION:15
#EXT-X-KEY:METHOD=AES-128,URI="https://priv.example.com/key.php?r=52"
#EXTINF:15,
http://media.example.com/fileSequence52-1.ts
#EXTINF:15,
http://media.example.com/fileSequence52-2.ts
#EXTINF:15,
http://media.example.com/fileSequence52-3.ts
#EXT-X-KEY:METHOD=AES-128,URI="https://priv.example.com/key.php?r=53"
#EXTINF:15,
http://media.example.com/fileSequence53-1.ts
Vorausgesetzt, eine browser-basierte Wiedergabe, wo die <video>
element zugeführt wird eine m3u8-Datei im "src" - Attribut. In diesem Fall, auch wenn der Schlüssel geliefert wird, über https, wie kann ich sicherstellen, dass der Benutzer nicht geben Sie einfach die https-URL in seinem browser auf und speichert die Schlüssel zu seiner Festplatte? Der Weg, ich verstehe den Mechanismus, der key download erfolgt durch die <video>
tag, wie es spielt die m3u8-Quelle über den browser https-stack -- wie wird den legitimen client in den browser-unterschieden vom Benutzer nur die Eingabe in die Adressleiste? Dies muss wirklich offensichtlich, aber ich sehe es nicht...
Alles gute,
dansch
InformationsquelleAutor der Frage dansch | 2010-12-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie ein SSL-client-Schlüssel/Zertifikat in die app, und damit authentifizieren "die app" für die Wiedergabe der Inhalte. Dann würden Sie vermeiden, leckt Ihre Inhalte auch auf anderen Geräten als app.
Aber das würde bedeuten, Sie müssten irgendwie verstecken Sie Ihre ssl-Schlüssel/passphrase innerhalb der app. Und es gibt leider auch die Probleme der video-player auf iOS zu verwenden, der ssl-key-Authentifizierung...
InformationsquelleAutor der Antwort janfrode
Apple ' s implementation von HTTP-live-streaming nicht unterstützt DRM.
Siehe FAQ Nummer 16 auf http://developer.apple.com/library/ios/#documentation/networkinginternet/conceptual/streamingmediaguide/FrequentlyAskedQuestions/FrequentlyAskedQuestions.html
InformationsquelleAutor der Antwort Ronan
Die Antwort ist nicht unbedingt offensichtlich. Sie sind im wesentlichen erforderlich, zu erfinden, Ihre eigenen Schlüssel Lieferung wenn Sie möchten, dass es auch sicher ist. Eine Möglichkeit ist, um ein cookie zu setzen, der für autorisierte Benutzer, und überprüfen Sie die cookie in den Schlüssel-server. Damit wird jemand in der Lage, Sie zu benutzen Sie einfach die Schlüssel-url zu umgehen, Ihre Sicherheit.
Beachten Sie, dass es noch dauert nur eine gültige client-zu-Leck-der Schlüssel für Ihre Sicherheit für ungültig erklärt werden.
InformationsquelleAutor der Antwort vipw
Der beste Weg ist, die Apple HLS-Verschlüsselung unterstützt.HLS-Unterstützung 128-bit-AES-Verschlüsselung und client-player braucht zum Dekodieren den Datenstrom.
InformationsquelleAutor der Antwort
Einige interessante Zeiger können hier gefunden werden: https://developer.apple.com/library/content/documentation/AudioVideo/Conceptual/AirPlayGuide/EncryptionandAuthentication/EncryptionandAuthentication.html
Dies erfordert Maßarbeit in iOS, sondern auch Android-und web-Player.
Für maximale Zuverlässigkeit, wenn das Verfallsdatum in Naher Zukunft, sollte der server-update mit dem Ablaufdatum des Cookies in Ihrer Antwort auf die Zukunft von GET-Anforderungen.
Wenn du nur auf iOS, dann sollten Sie Apple Fairplay DRM übernimmt die Authentifizierung der Schlüssel.
InformationsquelleAutor der Antwort pcoucke
Interessante Unterscheidung, der Vorschlag ist der browser der Benutzer verwendet, ist legitim, wenn die Wiedergabe der video-eingebettet in die web-Seite, und illegitim, wenn der Zugriff über die Adresszeile.
Aber es gibt keine wirkliche Unterscheidung gibt, ich glaube nicht, dass Ihnen etwas fehlt.
Wie würden Sie die Rechte, um ein Web-browser und nicht Nutzer? Kann ein Benutzer schreiben Ihre eigenen browser?
Ich weiß, es scheint unwahrscheinlich, dass ein user schreiben würde, ein browser, aber diese Art von Diskussionen sind immer über unwahrscheinliche Szenarien sowieso. Ein unwahrscheinlich Benutzer finden könnte, ein Weg, um den m3u8 als plain text, könnten Sie die download-keys direkt, Sie können diese Schlüssel zu entschlüsseln und eventuelle Stück zusammen die video-Segmente.
Oder, was weit wahrscheinlicher ist - die Verwendung von screen-recording-software zum kopieren von video, das Sie spielen können, im browser.
Meiner Meinung nach, wenn ein Benutzer berechtigt ist das video Abspielen, können Sie leider auch kopieren Sie die video - denn es gibt keine Möglichkeit zu verhindern, dass die Anzeige des video umgeleitet wird, in etwas, das ist nicht mehr verschlüsselt - zumindest in der Umgebung eines desktop-computer, der die Wiedergabe eines Videos in einem browser.
Jedenfalls mein Verständnis ist, dass Sie die Schlüssel schützen von denen eine Autorisierung erforderlich ist, um den Schlüssel, aber wenn der Benutzer hat die Berechtigung, dann - nun, Sie können Holen Sie sich den Schlüssel.
InformationsquelleAutor der Antwort Robert Dupuy
Haben einen Blick hier
https://tools.ietf.org/html/draft-pantos-http-live-streaming-13#section-6.3.6
die Wiedergabeliste, geben Sie einen key-tag für jedes segment. so ein Spieler wird in der Lage sein zu identifizieren, die einen erforderlichen Schlüssel zum entschlüsseln eines Segments.
Browser, die DRM nicht unterstützen out of the box. HTML5 angeben, dass es getan werden kann, über EME (Encrypted media extensions) wer nicht umgesetzt atm.
so sind Ihre Optionen:
Anbieter zur Unterstützung Ihrer DRM aka den Schutz von Inhalten und Schlüssel
Verteilung.
InformationsquelleAutor der Antwort Dorin