Marlin BBTS DRM初探

Posted by

类似于MP4格式有Widevine/PlayReady/Fairplay加密,TS也有相应的DRM方案:Marlin BBTS。国内的视频站点中,优酷使用了自研的copyrightDRM和Widevine,腾讯使用的是Widevine,爱奇艺有Marlin BBTS和ChinaDRM(其中前者更为常见一些)。Widevine已经有相当成熟的方案,而Marlin BBTS就是我想要尝试的那个。

爱奇艺使用DRM的影片主要为超前点播内容,今天(2020/03/19)当天超前点播的内容有猎心者19-30集,使用猎心者第19集作为研究对象。首先查询了Marlin BBTS的一些信息。

https://www.intertrust.com/products/drm-system/developer/packaging-tools/
https://www.intertrust.com/products/drm-system/developer/packager-guide/

从以上的内容可以知道,Marlin BBTS使用Ts2Decrypt进行解密(类似于Mp4Decrypt一样的存在),使用方式为:

Ts2Decrypt
Description
Decrypts a Marlin BBTS file, producing essentially the same MPEG-2 TS file originally encrypted to create the BBTS file.
 
Usage
Ts2Decrypt [options] input output
 
Parameters
[options]:
--key <cid>::<k> – In this, <cid> is a content ID (see §3) and <k> is a 128-bit key in hex.
input – The BBTS file to decrypt.
output – The resulting MPEG-2 TS file.
 
Example
The following call results in the decryption of the content in bigbucksbunny.bbts, and the creation of an MPEG-2 TS file bigbucksbunny.ts containing the decrypted content, assuming that the specified content ID and key are correct.
Ts2Decrypt --key cid:marlin#Suniversal@deadbeef::4bd3eb6bd171595764ec2050a20382e1 bigbucksbunny.bbts bigbucksbunny.ts

这样的话,我们需要的东西是cid和key。

接下来抓包看看爱奇艺播放DRM内容时都做了什么。
1.请求内容时使用的是/dash接口,返回了marlin bbts加密的m3u8,经测试仅高清视频进行了加密,低清的视频没有加密。
注意到加密方式中,EXT-X-KEY:METHOD=MARLIN-BBTS,CID=\”cid:marlin#Purn:marlin:abcde:hms:bbts@08b5acf4\ “,已经给出了cid。
经过Ts2Info验证,cid没有问题。

E:\Widevine>Ts2Info.exe 6024e8cd379fa6dac4730ce669cbf875.bbts
Marlin Protected file:
Traffic Protection System: BBTS 2.0, TRUNCATED SHA1 KDF
Marlin content id is cid:marlin#Purn:marlin:abcde:hms:bbts@08b5acf4
 
es pid:  256
es type: 1B
 
es pid:  257
es type: F

(2020.6.28更新)这篇文章说错了很多东西,marlin-bbts的确是请求了License服务器的,大概步骤是:
2.GET http://drml.video.iqiyi.com/ws/ConfigurationToken.xml,请求时并未附加任何参数。
3.POST http://drml.video.iqiyi.com/ws/services/license-service,POST携带的内容是加密了的XML。
4.得到返回,也是加密XML。

3 comments

    1. 爱奇艺独播的剧只上手机端超前点播,加密方式为Marlin bbts,与其他平台联播的网页端才会上超前点播,加密方式为widevine。

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注