Granite River Labs, GRL Ray Yang杨昕叡
High-Bandwidth Digital Content Protection, 简称HDCP,为高清数字内容保护,是2003年由Intel所制订的一种针对数字内容保护机制的技术规范,主要用于防止透过DVI, HDMI®及DisplayPort等数字接口传输的高清影片内容被非法录制。这种技术是将影音内容进行加密,让非法录制者无法还原到原本的高清影音内容。
假设拨放器(Transmitter)、显示器(Receiver)或是中继器(Repeater)其中一端没有HDCP功能,即无法拨放高清的影音内容,画质就会降低为480p甚至无法拨放。随着高清传输内容的需求越发普遍,这种对数字内容加密的技术也越来越普及,目前市面上消费性多媒体影音与娱乐产品例如拨放器、屏幕或是电视游戏机等,大都将HDCP视为其基本支持的功能。
而厂商若要运用这样的保护技术,首先必须加入Digital Content Protection (DCP)成为会员,并缴纳年费(US$ 15,000),此外再向DCP协会购买内容加密所使用的密钥(Key),Key的费用端看购买的数量而决定。请参考表1。
表1:HDCP Key 费用表
这个购买的”KEY”包含一组特别的密钥Key Selection Vector(KSV),为HDCP加密里面重要的一个环节,为20个”0”以及20个”1”所组成二进制值,Transmitter以及Receiver会核对对方的KSV以确保联机为合法的,每一个设备都会有一组Unique的密钥,每一个key都会被记录在DCP协会里的一个清单里。
为了防范KEY被破解或是泄漏,HDCP建立了一个”撤销列表”,这个表会列上所有被破解过或是泄漏出去的KSV,Transmitter会检查Receiver的KSV是否在列表上,若在列表上则联机为非法会立即中止联机,无法正常拨放影音内容。
Transmitter, Receiver, Repeater是HDCP系统里的三大主角,根据HDCP1.x规格其系统层级顶多可以下接到7层Repeater,顶多可连接128个装置。各产品类型连接方式如图1所示。
图1:HDCP系统树形图(取自HDCP Specification Rev1_4)
授权认证协议(Authentication Protocol)是Transmitter以及Receiver进行密钥的交换,让Transmitter去确认Receiver是有被授权的装置,可以接收有HDCP加密的数字影音内容。这种认证协议密钥交换的方法,主要是双方使用由DCP协会所授权的Device Private Keys去做加密计算出一个shared secret value,有了这个值即可确认双方是否为授权的Device。授权认证主要会有三个步骤如下:
- First part of Authentication Protocol
- Second part of Authentication Protocol
- Third part of Authentication Protocol
First part of Authentication Protocol
此步骤是在Transmitter及Receiver/Repeater 间进行密钥Key交换并加以计算来确保双方联机为合法。
图2:1st part of authentication protocol
-步骤:- Transmitter可以在任何时间发起HDCP验证。
- Transmitter传送Aksv及An给Receiver。(AKsv: Transmitter的KSV, An:随机的64bit值)
- Receiver回应传送Bksv及REPEATER bit(Bksv : Receiver的KSV, REPEATER bit: 表示receiver是否为repeater)。
- Transmitter与下接装置回传的KSV对应的secrect device key,经由56 bit的二进制加法计算出Km(shared secret value)。下接装置亦使用相同的算法计算出Km’(shared secret value)。
HDCP 密码单元会用Km, repeater||An继续计算Ks, M0, R0。 Ks : Session key, 为HDCP密码单元里一个56-bit secret key
M0 : 是一个64-bit secret value,会在2nd part of authentication protocol使用。 R0 : 是一个16-bit的回传值,是receiver回传给transmitter说这次的authentication交换成功。
- 若R0= R0’则完成Authentication便会开始进行HDCP解密。
- Transmitter在完成写入Aksv100ms之后才可读取R0’。
Second part of Authentication Protocol
此步骤是当下级装置为Repeater时,搜集所有下接device的KSV并回报上游装置,只有当下接Device为Repeater才会进行此步骤。
图3:2nd part of authentication protocol
-步骤:
- Transmitter设5秒等待时间机制确保此步骤5秒内完成,并询问下级KSV清单及Ready bit状态。
- 下级Repeater传送Ready bit=1以及搜集到的KSV清单给Transmitter。
- 下级Repeater用搜集到的KSV 清单, Bstatus以及在1st part of authentication protocol所计算出的M0’,运用SHA-1的运算方式算出V’ 。
- 上级Repeater运用相同的方式计算出V,并且与下级Repeater回传的V’做比对,若V≠V’则无法传送READY status bit=1给Transmitter,表示KSV清单完整性有问题,结束前的5秒等待时间将会过时。
- 若V=V’,Transmitter再次检查KSV list以及V, V’,若:
- KSV list大小超过Transmitter的容量
- V≠V’
- Transmitter在五秒内没有收到Ready bit =1
则终止联机,并尝试重新1st part of authentication。
除了搜集KSV完整清单之外,Repeater也会回报Bstatus里的DEVICE_COUNT 和DEPTH给Transmitter,让Transmitter检查整个HDCP系统里的阶层数以及下接Device数量是否超过HDCP系统的上限。
Third part of Authentication Protocol
这步骤系统会确认两台HDCP 装置的加密频率、顺序是否一致与同步,并同时产生额外的验证机制。
图4:3rd part of authentication protocol-步骤:
- 双方计算Ki, Mi, Ri。
Ki : 56位的值去初始化HDCP密码单元的解密以及加密 Mi: 64位的值去初始化HDCP密码单元 Ri: 16位的值来确认Transmitter及Receiver是否合法
- i为frame number,当完成1st part of Authentication Protocol后1st encrypted frame开始后计算i,每一个frame或是每一个加密的frame往上递增。
- Ri及Ri’每128个frame会重新计算一次。
- Transmitter 每两秒会比对Ri和Ri’一次。
- Transmitter 需在1ms内读取Ri’ 。
- 若设备支持1_FEATURES则会检查Pj, 每16个frame检查一次Pj,若连续三个Pj检查错误则判定pixel transmission error。
消费者若想观看有HDCP保护的数字多媒体影音内容如蓝光光盘时,讯号发送端(DVD player)及接收端(TV、Monitor)都得具备内建密钥以及上述验证步骤的能力,否则将无法观赏高分辨率数字影像内容。除了HDCP1.4外,为了因应HDMI2.0的更新(现为HDMI2.1) ,DPC协会也在2013年发表了HDCP2.2的保护机制来保护更高分辨率的内容,并在2018年更新为HDCP2.3。
参考文献
- High-bandwidth Digital Content Protection System, Revision 1.4. 8 July, 2009
- High-bandwidth Digital Content Protection Specification Compliance Test Specification, Revision 1.2. November 18, 2009
作者
GRL中国台湾测试工程师 杨昕叡Ray Yang
毕业于国立中国台湾科技大学化学工程学系。在GRL累积三年多的HDMI相关测试经验,熟悉HDMI、MIPI、V by One等测试规范。目前在 GRL 中国台湾主要负责HDMI测试,乐于协助客户厘清HDMI方面的问题,以顺利取得认证。
本文件中规格特性及其說明若有修改恕不另行通知。
发布日期 2021/05/20 AN-210520-TW