SuperMan-Lfj / blog

Apache License 2.0
1 stars 0 forks source link

DRM系列 3 —— Apple FairPlay #24

Open SuperMan-Lfj opened 3 years ago

SuperMan-Lfj commented 3 years ago

FairPlay Streaming(FPS)是Apple的DRM解决方案,必须先使用HTTP Live Streaming(HLS)协议对它们进行打包。 HLS是Apple的一种流协议,用于ABR流,可以支持MPEG-TS(ts)或分段mp4(fmp4)容器格式的文件存储。

以下平台支持FairPlay Streaming:

Apple FairPlay Streaming使用SAMPLE-AES 或 加密视频 AES-128。这两种技术使用AES-128位加密 。

SAMPLE-AES

在这种技术中,只有音频数据包和视频帧的样本才使用带有密码块链接(CBC)的AES-128进行加密。您不必对整个视频片段进行加密,因此可以节省加密和解密过程的功耗 (尤其是随着视频分辨率的提高)。

例如,根据FairPlay规范, 在H.264 / AVC比特流中,如果NAL单元类型为 1 或5,则对该NAL单元进行加密;否则 ,将其加密。否则,它不会被加密。

为什么?因为类型为1 和的 NAL单元分别 5 包含有关非IDR和IDR帧的信息。视频编解码器比特流中的IDR(即时解码器刷新)帧表示视频段的开始。如果没有IDR帧,则无法解码其余帧(直到到达下一个IDR或I帧)。

这说明的目标 SAMPLE-AES 是对有价值的音频和视频内容的一小部分进行加密, 以节省处理资源和电池电量。

AES-128

在此技术中, 使用128位密钥,密码块链接(CBC)和公共密钥密码学标准(PKCS7)填充对 片段(音频和视频)进行了完全加密。

密钥安全模块 Key Security Module(KSM)

从播放器接收并解密许可证请求。来自播放器的请求称为 Server Playback Context(SPC)。 将内容密钥(由密钥服务器返回)包装 到 内容密钥上下文Content Key Context(CKC) 消息中,并将其发送回播放器。

AVFoundation 和 App Delegate

在FairPlay Streaming中,Delegate负责播放器,AVFoundation框架和密钥服务器之间的协调和通信。


详细原文:https://ottverse.com/apple-fairplay-drm-how-does-it-work/