Granite River Labs, GRL Peter Lee 李清宇
HDCP(High-Bandwidth Digital Content Protection)是由Intel制订的加密技术,可运用在HDMI®或是DisplayPort等数字接口传输高分辨率影音时,进行数字内容加密以防止影音信息被盗录。各家厂商如果要让多媒体芯片具有上述功能,则需先向Intel的子公司DCP LLC购卖HDCP密钥授权,之后才能将该技术实作于芯片上。而消费者如果要观赏具有HDCP保护的影音信息:如蓝光光盘、Netflix 影片,播放端(Blu-Ray Player)以及接受端(TV)均须购买有HDCP授权的产品,才能观赏到Max分辨率画质。如果有一方不支持,则会导致影片画质下降,或甚至无法拨放。
目前在于HDMI接口中,可支持的HDCP协议分为HDCP1.4以及新的HDCP 2.3(批注一),分别对应于FHD(1920x1080p), UHD 4K(3840×2160 or 4096×2160)不同分辨率的影音保护。以当前消费市场的趋势,4K影片以及显示器逐渐普及,甚至近期各家厂商推出的支持8K分辨率的HDMI 2.1消费性电子产品,可预期将有越来越多的产品将采用HDCP 2.3协议,因此本文将着重于HDCP 2.3协议的介绍。
HDCP 2.3 介绍
图1:HDCP系统树形图(取自HDCP 2.3 on HDMI Specification)
首先介绍HDCP 2.3实体架构,请参考图一,HDCP Transmitter 可透过输出口与下游装置连接:这些下游装置可为HDCP Receiver 或 HDCP Repeater,而该连接的HDCP Repeater 还能透过其下行输出口再连接其余装置,形成装置链接的树形图。但此树形图并非无限延伸,HDCP2.3规范顶多只能下接4层HDCP Repeater,且下接装置数量上限为32台。
接着再看HDCP2.3协议层,其核心理念可分为三个部分。一为认证(Authentication),传送装置会透过认证协议,确认下游是否为HDCP合法接受装置。第二,确认完双方的合法性后,再透过双方共享的密钥对影音进行加密/解密,避免外界被盗录。第三,由于HDCP装置中的密钥有可能被破解,因此传送装置会更新(Renewability)遭撤销的HDCP装置名单,确保不会传送HDCP加密信息给不合法的装置。
HDCP 2.3协议介绍
第二章节提到的认证(Authentication),将细分为几个步骤进行介绍,以下内容仅介绍协议的名词以及概念,加密算法并不在本文讨论范围。
–Authentication and key exchange (AKE)
此流程(可参考图2、图2)目的是Tx确认Rx是否为合格HDCP装置,其中信息皆使用HDMI中的I2C接口传输,以下为流程介绍:
- 当双方装置链接后,Tx 会传送AKE_Init,内容包含一组64bit的伪随机码 rtx 以及 TxCaps (Tx HDCP 版本信息)给Rx,代表开始进行HDCP认证流程。
- Tx在发送完AKE_Init后,Rx需在100ms内回传AKE_Send_Cert,如果超出时间则认证失败。AKE_Send_Cert 内容由certrx (包含Receiver ID, Public Key, DCP LLC Signature)、一组64bit的伪随机码 rrx 、RxCaps(Rx HDCP 版本信息、Repeater bit)组成。
- Tx 确认certrx 内的Receiver ID(相当于Rx的身分证)后,会产生两种分歧流程:如果Tx端没有储存对应该 Receiver ID 的 Master Key(km),则进行 (图1)流程-AKE Without stored km,若有则进行 (图2.2)流程。
- 如果双方装置为第1次链接,会进行 (图1)流程,Tx 除了检查Receiver ID外,还会使用 Tx 的Public Key确认certrx内DCP LLC Signature是否合法,如为非法将导致认证失败。
- Tx 产生一组128bit的伪随机码作为Master Key(km),使用Rx的Public Key对其加密产生Ekpub(km),并传送包含Ekpub(km)的AKE_No_Stored_km给Rx。
- Rx 使用自己的private key (kprivrx)对Ekpub(km)解碼还原出km。
- Tx 检查 System Renewability Message (批注二)的合法性,同样是藉由Tx 的Public Key确认SRM 内的Signature是否合法。
- 确认完SRM合法性后,再确认下游装置的Receiver ID 是否合法。(以上SRM、Receiver ID确认只会由上游Tx 进行)
- Tx 与 Rx 进行Key derivation,将获得的Master Key(km) 运算后得到 kd。
- Tx 与 Rx 将双方交换过的信息(rtx、RxCaps、TxCaps) 以及kd再次运算后分别得到 H与H’。
- Tx 读取Rx端发送的AKE_Send_H_Prime,如果H与H’值不相等,或是未在规定时间(1秒)内收到,将会导致认证失败。
–Pairing
- 接续上述步骤,Rx 利用 kprivrx 计算出128bit kh, 再将 km 使用 kh 加密得到Ekh(km)
- Rx 将包含 Ekh(km) 的 AKE_Send_Paring_Info 传给 Tx
- Tx在200ms的时间限制内读取 AKE_Send_Paring_Info, 并将对应该次流程的 Receiver ID 的 m, km, Ekh(km)储存于内存内。
- 经过Pairing的双方设备再次认证时,因为Tx有储存对应该 Receiver ID 的 Master Key(km),会直接进入(图2)流程,相较于(图2.1)流程省略部分步骤(如Master Key计算),因此可减少HDCP认证时间。
图2(取自HDCP 2.3 on HDMI Specification)
图3(取自HDCP 2.3 on HDMI Specification)
–Locality check
此步骤是在 HDCP2.3引入的新机制,目的为确保双方装置距离在合法范围内,若链接距离太远,讯息将不会于时限内收到而导致认证失败,认证流程如下:
- Tx 传送 LC_Init (包含 64bit伪随机码 rn) 给 Rx。
- Tx 与 Rx 分别计算L、L’。
- 如果 L 与 L’不相同, 或是Tx在 20ms内未收到 L’,则导致认证失败。
- 认证失败,协议中规定 Tx 可再产生新的 rn, 并在重新尝试顶多1023次。
图4(取自HDCP 2.3 on HDMI Specification)
–Session key exchange
完成AKE以及Locality check后,代表传输设备双方均为合法装置,可以开始进行影像加密传输,此步骤目的为双方加密/解密钥匙交换,SKE流程如下:
- Tx 产生一个128bit 的伪随机码Session Key(ks), 64bit 伪随机码 riv。
- Tx进行 Key derivation 产生 128bit dkey2,并对ks 加密产生Edkey(ks)。
- Tx 传送SKE_Send_Eks(Edkey(ks)、riv)给Rx。
- Rx进行 Key derivation 产生 128bit dkey2,并将Edkey(ks) 解译得到ks。
- 使用Session Key 以及 Secret global constant(lc128,所有设备均为相同值)开始进行影音加密/解密。
–Authentication with repeater
在AKE流程中,如果Rx回传的RxCaps内的Repeater bit为1时才会进行此流程。目的有两个:
- Repeater将下游信息,如设备数目、阶层、版本、Receiver ID整理后回传给上游Tx,如果有信息不合法,如下接设备数目、阶层超过规范(31台、四阶),或是Receiver ID 在撤销名单中,会导致认证失败。
- Repeater将Tx要传送的HDCP Content type(批注三)信息传给下游。
批注
- 批注一:3设计架构与HDCP1.4不同,因此并不向下兼容,但可透过使用 HDCP2.3 to HDCP1.4 转换器,将播放端的HDCP2.3内容显示于只支持HDCP1.4的接收端。
- 批注二:System Renewability Message由Tx端储存,内容包含已被撤销的Receiver ID。因此Tx需确认SRM的合法性后,才能检查下游装置的 Receiver ID。
- 批注三:HDCP传输时可分为 Type0 & Type1 content,Type0的内容可透过repeater传送给大部分HDCP装置接收,而Type1的内容透过Repeater后,无法被下游HDCP 1.x、x设备接收。
参考文献
- HDCP on HDMI Specification Rev2_3
作者
GRL 中国台湾技术工程师 李清宇 Peter Lee
国立成功大学材料系硕士毕业。两年 HDMI 测试经验,熟悉 HDMI2.1 与 HDCP 技术测试。GRL 技术文章作者及演讲讲师。
本文件中规格特性及其說明若有修改恕不另行通知。
发布日期 2021/05/21 AN-210521-TW