Granite River Labs, GRL
Peter Lee 李清宇
HDCP(High-Bandwidth Digital Content Protection)とは、インテルが開発した暗号化技術で、HDMI®やDisplayPort™などのデジタルインターフェースで高解像度映像や音声を伝送する際にデジタルコンテンツを暗号化し、映像・音声情報の盗聴を防止することができるものです。 マルチメディアチップに上記機能を持たせたい場合、メーカーはまず、インテルの子会社であるDCP LLCからHDCPキーライセンスを購入した上で、この技術をチップに導入する必要があります。 ブルーレイディスクやNetflixの映像など、HDCPで保護された映像・音声情報を視聴する場合、プレーヤー(ブルーレイプレーヤー)とレシーバー(テレビ)の両方でHDCPライセンス製品を購入し、最高解像度の画質を視聴することになります。いずれかの機器が対応していない場合、映像の画質が劣化したり、映像が再生できなくなったりします。
現在、HDMIインターフェースで、サポートされているHDCPプロトコルは、HDCP1.4と最新のHDCP2.3(注1)で、FHD(1920x1080p)およびUHD 4K(3840x2160または4096x2160)の解像度の映像および音声保護に対応します。 現在のコンシューマー市場の動向として、4K映像やディスプレイの普及が進んでいます。 最近では、8K解像度に対応したHDMI2.1民生機器も各社から発売されています。 今後、HDCP2.3プロトコルを採用する製品が増えることが予想されるため、本稿ではHDCP2.3プロトコルに焦点を当てます。
HDCP 2.3概要
図1 HDCPシステム ツリーダイアグラム(出典:HDMI規格HDCP2.3)
まず、HDCP2.3の物理アーキテクチャを紹介します(図1)。 HDCPトランスミッタは出力ポートを介して下流機器と接続します。下流機器はHDCPレシーバーまたはHDCPリピーターとなります。 HDCPリピーターの場合は、さらに下流出力ポートを通じて他の機器と接続し、ツリーダイアグラムを構成します。ただし、このツリーダイアグラムは無限に広がるわけではなく、HDCP2.3では、下流のHDCP リピーターは、最大4層までの接続とされ、下流のデバイスは最大32台までに制限されます。
次に、HDCP2.3のプロトコル層ですが、そのコアコンセプトは3つに分けられます。まず、「認証(Authentication)」です。 送信側の機器は、認証プロトコルにより、下流側の機器が正規のHDCP受信機器であるかどうかを確認します。 2つ目は、両機器の正当性が確認された後、音声や映像の情報が盗まれないように、両機器で共有する秘密鍵によって、音声や映像を暗号化/復号化します。 第3に、HDCP機器内の秘密鍵が解読される可能性があるため、送信装置は、暗号化されたHDCP情報が不正な機器に送信されないように、失効したHDCP機器のリストを更新(Renewability)します。
HDCP 2.3プロトコル
先に述べた認証(Authentication)について、いくつかのプロセスに分けて説明します。 プロトコルの用語や概念については以下でセル名しますが、暗号化アルゴリズムについてはここでは触れません。
-認証と鍵交換(AKE)
このプロセス(図2および3)は、Txが、RxがHDCP対応機器であるかどうかを確認するためのもので、HDMIのI2Cインターフェースで全ての情報が伝送されます。 以下にそのプロセスを紹介します。
- 機器が接続されると、Txは64ビットの疑似ランダムコード群rtxとTxCaps(Tx HDCPバージョン情報)を含むAKE_InitをRxに送信し、HDCP認証処理の開始を指示する。
- Tx が AKE_Init を送信した後、Rx は 100ms 以内に AKE_Send_Cert を返す必要があり、この時間を超えると認証は失敗する。AKE_Send_Cert の内容は、certrx(Receiver ID、公開鍵、DCP LLC Signature を含む)、64 ビットの疑似ランダムコード群 rrx、RxCaps(Rx HDCP バージョン情報と Repeater bit)から構成される。
- Tx がReceiver ID(Rx の ID カードに相当)を certrx で確認した後、2 種類の処理が行われる。
- Receiver ID に対応するマスターキー(km)が Tx 端末に保存されていない場合は、(図 2)「km が保存されていない場合」の処理を行う。
- Receiver ID に対応するマスターキー(km)が保存されている場合は、(図3) の処理を行う。 - 両者の機器が初めてリンクされた場合は、(図2)の処理が行われる。 Receiver ID の確認に加え、Tx の公開鍵を用いて certrx 内の DCP LLC 署名が正当なものかどうかを確認し、不正なものであれば認証は失敗とする。
- Txは128ビットの疑似ランダム符号をMaster Key(km)として生成し、RxのPublic Keyで暗号化してEkpub(km)を生成し、Ekpub(km)を含むAKE_No_Stored_kmをRxに送信する。
- Rxは自身の秘密鍵(kprivrx)を用いてEkpub(km)を復号し、kmを復元する。
- TxはSystem Renewability Messageの正当性を確認し(注2)、Txの公開鍵によりSRMのSignatureが正当であるかどうかを確認する。
- SRMの正当性を確認した後、ダウンストリーム機器のReceiver IDが正当であるか否かを確認する。(上記のSRMとReceiver IDの確認は、最上流のTxのみが実施する)
- Tx と Rx はキーの導出を行い、得られたマスターキー(km)を計算して、KD を求める。
- TxとRxは交換した情報(rtx、RxCaps、TxCaps)とkdを再計算し、それぞれHとH'を得る。
- TxはRx端末から送信されたAKE_Send_H_Primeを読み込み、HとH'の値が等しくないか、指定時間(1s)以内に受信できなければ、認証は失敗とする。
-ペアリング
- 以上の手順で、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、Eke(km)をメモリに格納する。
- 双方のペアリング機器が再認証され、TxがReceiver IDに対応するMaster Key(km)を記憶している場合、直接(図3)の処理に入ることになる。図2の処理と比較すると、一部のステップ(Master Keyの算出など)が省略されるため、HDCP認証にかかる時間を短縮することができる。
図2 Kmが保存されていない場合(出典:HDMI規格HDCP2.3)
図3 Kmが保存されている場合(出典:HDMI規格HDCP2.3)
-ロカリティチェック
このプロセスは、HDCP2.3で新たに導入された仕組みで、機器間の距離が正規の範囲内にあることを確認するためのものです。リンク距離が遠すぎる場合、制限時間内にメッセージを受信できず、認証に失敗します。 認証の流れは以下の通りです。
- Tx は LC_Init(64 ビット擬似乱数符号 rn を含む)を Rx に送信する。
- TxとRxはそれぞれLとL'を計算する。
- LとL'が異なる場合、またはTxが20ms以内にL'を受信しなかった場合、認証は失敗とする。
- 認証に失敗した場合、Txは新しいrnを生成し、最大1023回まで再試行できる。
図4 HDCPトランスミッターとHDCPレシーバー間のロカリティチェック(出典:HDMI規格HDCP2.3)
-セッションキー交換
AKE と Locality check が完了すると、送信デバイスは合法であり、画像暗号化送信を開始できることを意味します。 このプロセスで、機器間で暗号化/復号化キーが交換されます。 SKE のプロセスを以下に示します。
- Txは128ビットの疑似ランダムコードSession Key(ks)と64ビットの疑似ランダムコードrivを生成する。
- Txはキー導出を行い128ビットのdkey2を生成し、ksを暗号化してEdkey(ks)を生成する。
- TxはSKE_Send_Eks(Edkey(ks), riv)をRxに送信する。
- Rxはキー導出を行って128ビットdkey2を生成し、Edkey(ks)からksを得る。
- Session KeyとSecretグローバル定数(lc128、全デバイス共通)を用いて、ビデオとオーディオの暗号化/復号化を開始する。
-リピーターデバイスの認証
AKEプロセスでは、Rxから返されるRxcappsのRepeaterビットが1の場合のみ、この処理が行われます。
- リピーターは、機器の台数、階層、バージョン、Receiver IDなどの下流情報を照合し、最上流のTxに返送する。 下流機器の台数や階層が仕様(31台、4階層)を超えていたり、Receiver IDがリボケーションリストに載っているなど、不正な情報があれば、認証は不合格となる。
- リピーターは、Txが送信するHDCPコンテンツタイプ(注3)情報をダウンストリームに送信する。
注 1:HDCP2.3はHDCP1.4と設計思想が異なるため、下位互換性はありませんが、HDCP2.3→HDCP1.4変換器を使用することで、プレーヤー側のHDCP2.3コンテンツをHDCP1.4のみ対応のレシーバーで表示することが可能です。
注 2:システム更新可能性メッセージ(System Renewability Message)はTxによって保存され、その内容には取り消されたReceiver IDが含まれます。 そのため、TxはSRMの正当性を確認した上で、下流機のReceiver IDを確認する必要があります。
注 3:HDCPは伝送時にType0とType1のコンテンツに分けられます。Type0のコンテンツはリピーターを通すとほとんどのHDCPデバイスに伝送でき、受信できますが、Type1のコンテンツはリピーターを通すと下流のHDCP 1.x と2.xデバイスで受信できません。
参考文献
- HDCP on HDMI Specification Rev2_3
著者
Peter Lee, GRL Taiwan Technical Engineer
国立成功大学材料学部を卒業し、修士号を取得。2年間のHDMIテスト経験を持ち、HDMI2.1およびHDCP技術テストに精通。
このブログに関してご質問やご相談は以下よりどうぞ。