在 HDCP 2.2 身份验证过程 – 简介中,我们讨论了为什么需要 HDCP,以及 HDCP 身份验证过程的基本步骤。我们注意到,RSA 的高级版本是身份验证和密钥交换期间使用的基础加密标准。在 HDCP 2.2 身份验证:RSA 加密中,我们讨论了 RSA 加密的基础知识。在这篇博文中,我们将深入探讨身份验证和密钥交换 (AKE) 的详细信息,这是身份验证协议的第一步。
HDCP 发射器可以随时启动,甚至在之前的身份验证完成之前。HDCP 接收器的公钥证书由 HDCP 发射器验证,然后设备共享主密钥 Km。这个存储的主密钥公里加速了HDCP发射器和接收器之间的后续通信。即使发射器没有与 HDCP 接收器对应的存储主密钥,也会进行身份验证。这些密钥信息以消息的形式发送。如果我们使用HDMI,那么这些消息将以大端格式通过基于I2C的控制总线。
1024 位宽接收方的公钥存储在证书中,证书具有以下内容:
下图显示了身份验证和密钥交换的流程:
身份验证和密钥交换流(未存储 Km)
发射器将自己的信息发送给接收器,接收器又在 100ms 时间范围内发送包含公钥的自己的证书。发射器验证签名。如下图所示,签名验证失败将导致身份验证中止:
AKE 期间的签名验证
签名验证成功后,如果发射器没有存储的主密钥 Km 距离上一个会话,发射器将生成一个随机的 128 位主密钥,使用 RSAES-OAESP 加密和接收器的公钥对其进行加密,并将其发送给接收器。
除了签名验证外,发送器还会检查接收方的接收方 ID 是否不在吊销列表中。这是一个确保在身份验证期间跟踪已泄露和识别的接收方的过程。如果在吊销列表中找到接收方 ID,则 AKE 将中止。
收到加密的 Km,接收方使用接收方私钥对其进行解密(HDCP2.2 建议使用中文余数定理来减少工作量,因为这是整个认证流程中计算最密集的步骤)。整个解密和随后的哈希值计算的时间限制为 1s。
接收器成功解密 km 后,会将主密钥 Km 的哈希值H_Prime HMAC-SHA-256(有关详细信息,请参阅以下部分)发送回发射器。这是为了向发射器提供确认,即接收器确实已成功解密主密钥 Km。
从接收器接收到哈希值 (H_prime) 后,发射器会根据自己的计算值进行检查。成功比较H_Prime后,身份验证和密钥交换完成,否则 AKE 将中止。
HMAC SHA-256
为了提高消息的真实性,HDCP2.2 使用基于哈希的消息真实性代码 (HMAC)。HMAC-SHA256 是一种消息身份验证方法,它使用底层哈希函数作为 SHA-256。HMAC-SHA256 的输入是一个密钥(可以是消息)。输出是消息访问代码,可以发送回消息的发起者,该消息的发起者可以根据自己的代码检查HMAC代码,并验证消息是否已被接收方正确接收。
配对
在解释身份验证流程中的下一步之前,请务必解释称为配对的过程。在上面的 AKE 流程中,解释了如果发射器没有存储的密钥 Km,它如何生成主密钥 Km。现在,发射器可以存储接收到的 Km 值供下一个会话使用并重复使用,而不是生成新的 Km,从而加快 AKE 的整个流程。在接收机向发射机发送H_Prime信息的AKE流中,它会将AES加密的主密钥发送给发射机。发射器存储加密的主密钥和主密钥本身。对于后续会话,下图显示了存储了 Km 的 AKE 流:
身份验证和密钥交换(使用存储的公里)
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !