By Peter Lee – Technical Engineer, GRL
온라인 스트리밍은 1980년대의 Home 비디오 붐 이후 엔터테인먼트 산업에서 가장 큰 발전을 이루었습니다. 그리고 다른 사람의 지적 재산으로 돈을 벌려는 사람들로부터 수백만 달러 상당의 영화, 음악 및 기타 콘텐츠를 보호하는 방법 같은 과제에 직면해 있습니다.
인텔(Intel)의 HDCP(High-Bandwidth Digital Content Protection,고대역폭 디지털 콘텐츠 보호) 암호화 기술은 HDMI® 또는 DisplayPort™와 같은 디지털 인터페이스를 통해 전송되는 고해상도 디지털 비디오 및 오디오 콘텐츠를 암호화하여 비디오 및 오디오 정보의 도난을 방지하도록 설계되었습니다.
멀티미디어 칩에 이러한 암호화 기능을 제공하려는 제조업체는 먼저 인텔의 자회사인 DCP LLC에서 HDCP 키 라이선스를 구매해야 합니다. 마찬가지로, 블루레이 디스크 및 넷플릭스 비디오와 같이 HDCP로 보호되는 비디오 및 오디오를 시청하려는 소비자는 플레이어(블루레이 플레이어)와 수신기(TV) 모두에 대해 HDCP 라이선스가 부여된 제품을 구매해야 합니다. 그래야 최고 해상도의 콘텐츠를 즐길 수 있습니다. 단일 장치에서 HDCP를 지원하지 않는 경우 비디오 화질이 저하되거나 비디오가 재생되지 않을 수도 있습니다.
현재 HDMI 인터페이스에는 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 사양의 HDCP 2.3)
HDCP2.3 프로토콜
인증에는 여러 단계가 포함됩니다. 프로토콜의 용어와 개념은 아래에 소개되어 있지만 암호화 알고리즘에 대해서는 이 문서에서 설명하지 않습니다.
인증 및 키 교환(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(수신자 ID, 공개 키 및 DCP LLC 서명 포함), 64비트 의사 난수 코드 그룹, rrx 및 RxCaps(Rx HDCP 버전 정보 및 리피터 비트)로 구성됩니다.
- Tx가 certrx에서 수신자 ID(Rx의 ID 카드에 해당)를 확인한 후 두 가지 프로세스가 진행됩니다. 수신자 ID에 해당하는 마스터 키(km)가 Tx 단말에 저장되어 있지 않으면 그림 2의 프로세스(즉, 저장된 km가 없는 경우)가 수행됩니다. 수신자 ID에 해당하는 마스터 키(km)가 Tx 단말에 저장되어 있으면 그림 3의 프로세스가 수행됩니다.
- 양 당사자의 장치가 처음으로 연결되면 그림 2의 프로세스가 수행됩니다. Tx는 수신자 ID를 확인하는 것 외에도 Tx의 공개 키를 사용하여 certrx의 DCP LLC 서명이 합법적인지 확인합니다. 불법인 경우 인증은 실패합니다.
- Tx는 128비트 의사 난수 코드 그룹을 마스터 키(km)로 생성하고 이를 Rx 공개 키로 암호화하여 Ekpub(km)를 생성하고 Ekpub(km)를 포함하는 AKE_No_Stored_km를 Rx로 전송합니다.
- Rx는 자체 개인 키(kprivrx)를 사용하여 Ekpub(km)를 디코딩하여 km를 복원합니다.
- Tx는 시스템 갱신 메시지의 적법성을 확인하고(참고 2 참조), Tx 공개 키를 통해 SRM의 서명이 적법한지 확인합니다.
- SRM의 적법성을 확인한 후, 다운스트림 디바이스의 수신자 ID가 적법한지 확인합니다. (위의 SRM 및 수신자 ID 확인은 최상위 Tx에서만 수행됩니다.)
- Tx와 Rx는 키 도출을 수행하고 획득한 마스터 키(km)를 계산하여 kd 를 얻습니다.
- Tx와 Rx는 교환된 정보(rtx, RxCaps, TxCaps)와 kd를 재계산하여 각각 H와 H' 를 얻습니다.
- Tx는 Rx 단말이 전송한 AKE_Send_H_Prime을 읽습니다. H와 H' 값이 같지 않거나 지정된 시간(1초) 내에 수신하지 못하면 인증에 실패합니다.
- 위의 단계에 따라 Rx는 kprivrx를 사용하여 128비트 kh를 계산한 다음, km를 kh로 암호화하여 Ekh(km)를 얻습니다.
- Rx는 Ekh(km)가 포함된 AKE_Send_Paring_Info를 Tx로 전송합니다.
Tx는 200ms의 제한 시간 내에 AKE_Send_Paring_Info를 읽고, 이 과정의 수신자 ID에 해당하는 m, km, Eke(km)를 메모리에 저장합니다. - 페어링 시 양측의 디바이스는 재인증됩니다. Tx는 수신기 ID에 해당하는 마스터 키(km)를 저장하고 있으며, 그림 3 프로세스의 일부로 직접 입력합니다. 그림 2 프로세스에 비해 일부 단계(마스터 키 계산 등)가 생략되므로 HDCP 인증 시간을 단축할 수 있습니다.
2: 인증 및 키 교환(출처: HDMI 사양의 DCP 2.3)
그림 3: 인증 및 키 교환(출처: HDMI 사양의 HDCP 2.3)
Locality check
이 단계는 HDCP2.3에 도입된 새로운 메커니즘으로 장치 간의 거리가 합법적인 범위 내에 있는지 확인합니다. 링크 거리가 너무 멀면 제한 시간 내에 메시지를 수신하지 못하여 인증에 실패하게 됩니다. 인증 절차는 다음과 같습니다:
- Tx는 LC_Init(64비트 의사 난수 코드 rn 포함)을 Rx로 전송합니다.
- Tx와 Rx는 각각 L과 L' 을 계산합니다.
- L과 L'이 다르거나 Tx가 20ms 이내에 L'을 수신하지 못하면 인증이 실패합니다.
- 인증에 실패하면 프로토콜은 Tx가 새로운 rn을 생성하고 최대 1,023회까지 재시도할 수 있도록 규정하고 있습니다.
4: HDCP 송신기와 HDCP 수신기 간의 로컬리티 확인(출처: HDMI 사양의 HDCP 2.3)
세션 키 교환
AKE 및 로컬리티 확인이 완료되면 전송 장치가 합법적이며 이미지 암호화 전송을 시작할 수 있음을 의미합니다. 이 단계의 목적은 장치 간에 암호화/복호화 키를 교환하는 것입니다. SKE 프로세스는 다음과 같습니다:
- Tx는 128비트 의사 난수 코드 세션 키(ks)와 64비트 의사 난수 코드 리브를 생성합니다.
- Tx는 키 도출을 수행하여 128비트 dkey2를 생성하고 ks를 암호화하여 Edkey(ks)를 생성합니다.
- Tx는 SKE_Send_Eks(Edkey(ks), riv)를 Rx로 전송합니다.
Rx는 키 도출을 수행하여 128비트 dkey2를 생성하고 Edkey(ks)를 해석하여 ks를 얻습니다. - 세션 키와 시크릿 글로벌 상수(lc128, 모든 장치에서 동일한 값)를 사용하여 비디오 및 오디오 암/복호화를 시작합니다.
리피터로 인증
AKE에서 이 프로세스는 Rx가 반환한 Rxcapps의 Repeater 비트가 1인 경우에만 수행됩니다. 여기에는 두 가지 이유가 있습니다:
- 리피터는 디바이스의 수, 계층 구조, 버전 및 수신기 ID와 같은 다운스트림 정보를 수집한 다음 이를 가장 상위의 Tx로 다시 보냅니다. 다운스트림 디바이스의 수와 계층 구조가 사양(4계층 계층 구조, 31대)을 초과하거나 수신기 ID가 해지 목록에 있는 등 정보가 유효하지 않은 경우 인증에 실패합니다.
- 리피터는 Tx에서 다운스트림 장치로 전송할 HDCP 콘텐츠 유형 정보(참고 3 참조)를 전송합니다.
Comments
- 참고 1: HDCP2.3은 설계 아키텍처가 HDCP1.4와 다르므로 하위 호환이 되지 않습니다. 그러나 HDCP2.3-HDCP1.4 변환기를 사용하면 플레이어의 HDCP2.3 콘텐츠를 HDCP1.4만 지원하는 리시버에 표시할 수 있습니다.
- 참고 2: 시스템 갱신 메시지는 Tx에 저장되며, 그 내용에는 해지된 수신기 ID가 포함되어 있습니다. 따라서 Tx는 다운스트림 장치의 수신기 ID를 확인하기 전에 SRM의 적법성을 확인해야 합니다.
- 참고 3: HDCP 콘텐츠는 전송 중에 Type0 및 Type1 콘텐츠로 구분될 수 있습니다. Type0 콘텐츠는 리피터를 통과한 후 대부분의 HDCP 장치에서 송수신할 수 있는 반면, Type1 콘텐츠는 리피터를 통과한 후 다운스트림 HDCP 1.x 및 2.x 장치에서 수신할 수 없습니다.
References
- HDCP on HDMI Specification Rev2_3
Author
By Peter Lee – Technical Engineer, GRL
국립 청쿵 대학교 재료학과를 졸업한 피터 리는 HDMI 테스트 분야에서 2년간의 경력을 쌓았으며 HDMI2.1 및 HDCP 기술 테스트에 익숙합니다. GRL의 기술 엔지니어로서 고객이 문제를 해결하고 성공적으로 인증을 획득할 수 있도록 돕고 있습니다.
본 문서의 사양 및 설명은 사전 통지 없이 GRL에 의해 변경될 수 있습니다.
Release date 2021/05/21 AN-210521-TW