【发布时间】:2011-05-28 09:04:40
【问题描述】:
我正在尝试了解 Apple 在其 iOS 设备以及 Safari 上支持的 HTTP Live Streaming 协议如何保护解锁内容的密钥。
按照我的理解,.m3u8 文件将整个内容放在一起并引用内容(在 MPEG2 TS 容器中,AES 128 加密)和 TS 文件的密钥。
就像这个例子:
#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
假设基于浏览器的播放,其中<video> 元素在“src”属性中提供了一个 m3u8 文件。在这种情况下,即使密钥是通过 https 传递的,我如何确保用户不会简单地在浏览器中输入 https URL 并将密钥保存到他的硬盘中?我理解机制的方式,密钥下载是由<video> 标签完成的,因为它使用浏览器的 https 堆栈播放 m3u8 源 - 浏览器内的合法客户端如何与仅在地址栏中输入的用户区分开来?这一定很明显,但我只是没有看到它......
一切顺利,
舞蹈
【问题讨论】:
-
很好的问题,特别是因为在大多数情况下,HTTPS 只是基于服务器信任的实现,而不是客户端信任。在万维网上,这是可以理解的有用的,因为用户数据被传递到服务器而不是相反。所以用户需要确保他们将数据发送到受信任的站点。然而,在视频的情况下,内容几乎被泄露,服务器更需要信任用户,反之亦然。但是,客户端身份验证是不可行的,因为要为成千上万的用户提供服务。最终,我只是在泡菜
标签: ios http safari http-live-streaming live-streaming