在 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 流:
身份驗證和密鑰交換(使用存儲的公里)
審核編輯:郭婷
-
接收器
+關注
關注
14文章
2521瀏覽量
72963 -
發射器
+關注
關注
6文章
862瀏覽量
54006 -
HDCP
+關注
關注
0文章
36瀏覽量
17451
發布評論請先 登錄
相關推薦
評論