HDCP你听过吗?

1-前言

虽然一直搞安全,搞的也不怎么样,不过最近接触了一点新的东西。于是四处百度,哈哈,这里就边学边记录,感谢前辈的优秀博客。

之前你知道HDCP是什么?有没根据这个名字想到什么?HDMI

HDCP(High -bandwidth Digital Content Protection):高带宽数字内容保护技术HDTV(高清电视)时代即将来临,为了适应高清电视的高带宽,出现了HDMI。

HDMI是一种高清数字接口标准,它可以提供很高的带宽,无损地传输数字视频和音频信号为了保证HDMI或者DVI传输的高清晰信号不会被非法录制,就出现了HDCP技术。HDCP技术规范由Intel领头完成,当用户进行非法复制时,该技术会进行干扰,降低复制出来的影像的质量,从而对内容进行保护。

在这里插入图片描述

下面详细来瞅瞅

2-HDCP

在电脑平台上受到HDCP技术(简称DP)

保护的数据内容在输出时会由操作系统中的COPP驱动(认证输出保护协议)首先验证显卡,只有合法的显卡才能实现内容输出,随后要认证显示设备的密钥,只有符合HDCP要求的设备才可以最终显示显卡传送来的内容。

总的来说,HDCP就是一种加密技术,类似于一把锁,用来保障数字内容的传输和播放。HDCP的规格受到多项专利权保护,任何人欲实现HDCP都必须申请授权。例如想播放有HDCP保护的影音内容如Blu-rayDisc、PlayStation游戏(通过HDMI输出时),信号来源(播放机或电脑的显卡)和显示器(电视或投影机)双方都必须内置HDCP密钥芯片才能正常播放。若系统任何一者不配备此密匙芯片,图像质量有可能降低,甚至不能播放图像。

3-HDCP的技术原理

1

HDCP的主要目标是防止未加密的高清晰度影音内容被非法拷贝传送出去。为此HDCP当中设计了三套系统以达成此目标:

1、校验协议。一个验证流程以防止未经授权的装置接收到高清晰度内容。

2、像素加密。将通过HDMI、DVI等接口传输的数据加密以防止数据被窃取或破解。

3、可更新性。一个密匙撤销机制,以确保任何违反HDCP协议的装置可以相对容易地被排除。

HDCP传输过程中,发送端和接受端都存储一个可用密钥集,这些密钥都是秘密存储,发送端和接受端都根据密钥进行加密解密运算,这样的运算中还要加入一个特别的值KSV(视频加密密钥)。

同时HDCP的每个设备会有一个唯一的KSV序列号,发送端和接受端的密码处理单元会核对对方的KSV值,以确保连接是合法的。HDCP的加密过程会对每个像素进行处理,使得画面变得毫无规律、无法识别,只有确认同步后的发送端和接受端才可能进行逆向处理,完成数据的还原。

每个设备的密钥集KSV值都是唯一的,HDCP系统会在收到KSV值后在撤销列表中进行比较和查找,出现在列表中的KSV将被认做非法,导致认证过程的失败。这里的撤销密钥列表将包含在HDCP对应的多媒体数据中并将自动更新。

总得来说HDCP传输过程中,发送端和接受端都存储一个可用密钥集,这些密钥都是秘密存储,发送端和接受端都根据密钥进行加密解密运算,这样的运算中还要加入一个特别的值KSV(视频加密密钥)。同时HDCP的每个设备会有一个唯一的KSV序列号,发送端和接受端的密码处理单元会核对对方的KSV值,以确保连接是合法的。

2

①每个HDCP设备都有自己的身份证,先看看对方是谁

②检查输出端和接收端,发个数你猜猜,(计算)猜对了就下一步/猜错了就黑屏

③检查后随机生成一个128bit秘钥…视频加密传输(AES),配对的接收端才能解密(对称加密技术)

④解密后输出画面
在这里插入图片描述
⑤最恐怖的是,2秒一次验证,每128帧重新算一次确保同步…
在这里插入图片描述

而且需要软/硬件同时支持才能生效。比方说Windows中有OPM(保护性内容输出管理协议)和COPP驱动(认证输出保护协议)。

在这里插入图片描述

3

每个支持HDCP的设备都必须拥有一个独一无二的HDCP密钥(Secret Device Keys),密钥由40组56bit的数组密码组成。HDCP密钥可以放在单独的存储芯片中,也可以放在其他芯片的内部,例如,ATl和Nvdia(世界两大著名显卡主芯片供应商)完全可以将它们放入显示芯片中。

每一个有HDCP芯片的设备会拥有一组私钥(Device Private Key),一组私钥将会组成KSV(Key Selection Vector)。KSV相当于这台拥有HDCP芯片设备的ID号。

HDCP传输器在发送信号前,将会检查传输和接受数据的双方是否是HDCP设备,它利用HDCP密钥,让传输器与接收端交换,这时双方将会获得一组KSV并且开始进行运算,其运算的结果会让两方进行对照,若运算出来的数值相符,该传输器就可以确认该接收端为合法的一方。

传输器确定了接收端符合要求,传输器便会开始进行传输讯号,不过这时传输器会在信号上加入了一组密码,接收端必须实时进行解密才能够正确的显示影像。换句话说,HDCP并不是确认双方合法后就不管了,HDCP还在传输中加入了密码,以防止在传输过程中偷换设备。具体的实现方法是,HDCP系统会每2秒进行确认,同时每128帧画面进行一次发送端和接受端计算一次RI值,比较两个RI值来确认连接是否同步。

密码和算法泄密是厂家最头疼的事,为了应对这个问题,HDCP特别建立了“撤销密钥”机制。每个设备的密钥集KSV值都是唯一的,HDCP系统会在收到KSV值后在撤销列表中进行比较和查找,出现在列表中的KSV将被认作非法,导致认证过程的失败。这里的撤销密钥列表将包含在HDCP对应的多媒体数据中并将自动更新。简单的说,KSV是针对每一个设备制定了唯一的序号,比较自然的可用号码是每个设备的SN号。这样一来,即便是某个设备被破解了,也不会影响到整体的加密效果。总的来说,HDCP的规范相当严谨,除了内容本身加密外,传输过程也考虑的相当精细,双方设备都要内置HDCP才能实现播放。但是,最后需要指出的是,HDCP和HDMI或者DVI(DVI接口一般指DVI。 DVI的英文全名为Digital Visual Interface,中文称为“数字视频接口”。)接口之间并没有必然的联系,只是HDMI标准在制定之初就已经详细的考虑到了对HDCP的支持,并且在主控芯片中内置了HDCP编码引擎,因此,在版权保护方面,要大大领先于DVI技术。 [4]

4

1.授权认证(Authentic ation Protocol) 每一台支持HDCP技术的设备(发送端和接收端)都有一套由Digital Content Protection LLC公司统一分发的全球唯一的设备钥匙集(Device Key Set),它由一组设备私有 密钥(Device Private Keys,DPKs)和一个与之配套的密钥选择向量(Key Selection Vector,KSV)组成。其中前者由40个不同的56bit二进制 数组成(严格保密),后者是一个40bit的二进制数。
在两台HDCP设备传输数据前,根据授权认证协议,发射端和接收端先相互读取对方的KSV值.然后根据对方的KSV值在自己的DPKs值中选取一部分 密钥,经过特定算法计算出各自的共享密值(Shared Secret Value),根据HDCP的设计,如果双方都提交的是经过授权的KSV值,则计算出的共享密值应该相等,否则连接设备就是非法的。

  1. 数据加密/解密
    当设备合法性验证成功之后,设备之间开始传送数据,HDCP的密码模块(HDCP Cipher)根据在授权认证过程中产生的共享密值,通过特定算法算出一个24bit伪随机 加密数据,该数据与由HDMI(High Definition Multimedia Interface,高清晰 多媒体接口)三条TMDS(Transition Minimized Differential Signal,最小化传输差分信号)通道传输的24bit内容数据进行异或逻辑运算,结果再送往TMDS编码器生成TMDS信号,然后传送出去。而在接收端,由相同的机构和共享密值产生相应的24bit伪随机解密数据,来还原内容数据。

为了应对 密钥泄露的情况,HDCP特别建立了“撤销密钥”机制。如上所述,在HDCP系统工作前,首先会检查发送设备的KSV值(这个值实际上就是该设备的序列号,是唯一的),在HDCP系统收到KSV值以后,将会对比包含在视频数据中的撤销列表。如果该KSV值出现在撤销列表中,则HDCP系统就会把这个传输设备判定为非法设备而拒绝连接。值得一提的是,为防止授权设备的DPKs泄露后被用于制造非法设备、窃取数据,HDCP中的撤销列表将随着视频节目的更新而更新。 这样的设计就能够保证整个HDCP 系统的可靠性。即便是一台HDCP发送器或者接收器被破解,也不会影响到整个HDCP系统。而一旦该设备被破解,在播放随后更新的电影内容时也会因为KSV被加入撤销列表而无法正常播放。
HDCP通过专门的TMDS编/解码器完成信号的 加密/解密。 [5]

软硬件设备

前面说到,HDCP需要软硬件共同支持,凡是参与内容传输的设备缺一不可。微软在新一代操作系统Vista中将集成保护性内容输出管理协议(OPM)”,用来在输出内容前确认显示设备的性能及HDCP支持情况。同时作为高清视频的主要载体,蓝光和HD-DVD也会执行HDCP标准。

而视频源播放以及显示终端设备将通过内置转换芯片实现信号的二次编/解码,涉及产品包括显示卡、影碟机、电视、显示器、投影仪等。

HDCP通过数字接口DVI-D或新型HDMI实现,其中后者应用较为普遍,兼具音/视频传输,几乎成为支持HDCP的标志。不过HDMI+HDCP目前似乎只在家电领域声望较高,几乎成为新产品的标准配置,远远超前于实际应用,但迫于日后兼容性以及上游协议制定者的压力,设备生产商不敢怠慢。

而在PC领域,尽管微软一直“警告”Vista只能支持HDCP协议的显示卡及对应驱动,但一次次的跳票给了配件厂商更多的理由。HDCP协议是用来防止视频内容在传输的过程被完整的复制下来。这种技术并不是让数字讯号无法被不合法的录制下来,而是将数字讯号进行加密,让不合法的录制方法,无法达到原有的高分辨率画质。要支持HDCP协议,必须使用DVI、HDMI等数字视频接口,传统的VGA等模拟信号接口无法支持HDCP协议。但是并不是带DVI接口的液晶显示器都支持HDCP协议,必须经过带有相应硬件芯片,通过认证的显示器才行。

https://blog.csdn.net/liangxiaozhang/article/details/20637223
https://www.docin.com/p-2143784720.html
https://baike.baidu.com/item/HDCP/2654587?fr=aladdin#4
https://www.yywwg.com/6088.html
https://product.pconline.com.cn/itbk/diy/graphics/1107/2475791.html

猜你喜欢

转载自blog.csdn.net/weixin_45264425/article/details/130139166
今日推荐