HDCP - Rào cản hay bảo mật?

Định nghĩa HDCP

Nguyên gốc, HDCP do bàn tay Intel nhào nặn, dưới dạng giao thức để bảo vệ nội

dung độ phân giải cao (HD) truyền qua ngõ DVI (Digital Visual Interface) và

HDMI (High Definition Multimedia Interface). Phiên bản chi tiết kỹ thuật đầu tiên

của giao thức này xuất hiện từ khá lâu, vào tháng 9/1999. Cho đến nay đã lên

phiên bản 1.2a vào ngày 10/5/2006.

Mục tiêu của HDCP là ngăn không cho người dùng xem hoặc chép nội dung HD

trên các thiết bị không được phép. Ta có thể quy nội dung HD dưới 3 hình thức:

1. Phim chứa trên đĩa HD DVD và Blu-ray.

2. TV độ nét cao được phát qua set-top box, qua cáp hoặc dạng phát sóng.

3. Nguồn độ phân giải cao qua card đồ hoạ máy tính (game, phim hoặc nội dung

video khác từ máy tính lên màn hình).

Phương thức bảo mật chung của HDCP là sử dụng kiến trúc trao đổi khoá (key-

exchange). Một trong những tính năng chính của HDCP là khả năng "thu hồi"

khoá mà nhà sản xuất (studio và nhà sản xuất thiết bị) đặt ra.

Ví dụ: nếu người dùng cố gắng chiếu một phim HD DVD hoặc Blu-ray trên máy

tính của họ sử dụng một phần mềm bẻ khoá (chẳng hạn như DVD Decrypter,

AnyDVD...) thì máy tính sẽ ghi nhận và thông báo việc này với cơ chế quản lý

khoá trung tâm (central key-authority), thu hồi và "liệt" khoá "giả” này vào "sổ

đen". Lúc ấy, người dùng sẽ không thể dùng máy tính đó (cấu hình máy tính sẽ

được lưu lại) để xem các phim HD nữa.

Nếu bạn dùng phần mềm nào đó để vượt qua HDCP thì màn hình sẽ chuyển sang

trắng, hoặc một hộp thoại "đáng yêu" sẽ hiện ra báo là bạn đang cố thực hiện điều

gì đó "bất hợp pháp". Hiện nay, cách bảo vệ kiểu phần cứng cộng tác với phần

mềm như vậy được nhiều nhà sản xuất thiết bị ủng hộ.

Dù vậy, chẳng có gì ngạc nhiên khi nhiều nhà sản xuất thiết bị phần cứng trong thế

giới máy tính lại khá e dè khi "đụng" đến HDCP. Bạn có thể vào địa chỉ này để

xem danh sách các công ty chấp nhận thỏa thuận bảo vệ bản quyền và sẽ ứng dụng

giao thức HDCP trong sản phẩm phần cứng của họ: http://www.digital-

cp.com/list. Danh sách này khá dài (khoảng 400 công ty). Hai công ty "nồng

nhiệt" nhất với HDCP là 2 hãng phim Warner Brothers và Walt Disney. Phim của

2 studio này (HD DVD hoặc Blu-ray) đều sẽ được bảo vệ nếu chiếu qua ngõ

HDMI hoặc DVI. Còn các studio khác thì sao? Lúc này họ vẫn chưa nhảy lên con

thuyền HDCP, có lẽ họ đang chờ phản ứng của dư luận trước khi quyết định có

đem HDCP vào đĩa phim của họ hay không.

Bên trong HDCP

Có thể nói lưu đồ làm việc nội tại của HDCP tương tự như nguyên tắc của một

giao thức theo nghĩa giao thức là phương pháp mà một hệ thống cụ thể sử dụng để

giao tiếp giữa các thành phần với nhau. Để hiểu được nó, ta phải có cái nhìn rõ

ràng về các đối tượng trong môi trường của HDCP. Trong hình 1, ta thấy 3 thành

phần cơ bản: Upstream control (U), HDCP Transmitter (T) và HDCP Receiver

(R). Chỉ khi nào có 3 thành phần cơ bản này thì mới có một môi trường HDCP

thực.

Trong môi trường này, giữa HDCP Transmitter và HDCP Receiver có một cơ chế

nhận diện trước khi các thiết bị có thể làm việc cùng nhau. Việc nhận diện này sẽ

xảy ra khi T gửi tín hiện giao tiếp đến R. Nếu thiết bị hiển thị tương thích, nó sẽ

gửi lại lệnh cho T bằng cách sử dụng tập khoá thiết bị do Digital Content

Protection LLC cấp.

Tiếp theo, T sẽ so sánh tập khoá này với khoá thiết bị của chính nó. Khi đó, hệ

thống sẽ tiến hành việc kiểm tra (tạo bảng checksum) tính tương thích giữa 2 thiết

bị qua bộ nhớ động và hoàn tất việc nhận diện.

Những điều đề cập trên nghe có vẻ rất tốt, suôn sẻ và đơn giản. Nhưng làm sao

chúng có thể chạy cùng 1 nhịp được?

HDCP hoạt động

Bất cứ thiết bị nào muốn tương thích HDCP phải có 40 tập khoá bí mật được mã

hóa ở 56-bit. Những khoá này được gọi chung một tên: Device Private Keys. Cách

dễ dàng nhất để bạn mường tượng ra các khoá này là chúng giống như tập dấu vân

tay. Không có thiết bị nào có cùng tập mã hoá, chí ít là theo lý thuyết. Digital

Content Protection cũng "chêm" vào mỗi tập khoá 1 header với tên là KSV (Key

Selection Vector). Đây là một giá trị nhị phân 40-bit. Quá trình trao đổi giữa các

thiết bị với những khoá tương tác này được minh hoạ trong hình 2.

Đầu tiên, để liên lạc giữa các thiết bị, T sẽ gửi một tin nhắn "chào hỏi" có chứa

một KSV của chính T (Aksv) cho R. Nếu liên lạc đầu tiên này "ok", hàm điều

khiển tính toán này là "hdcpBlkCipher" sẽ cho ra một giá trị là "An". Sau đó, R

gửi ngược lại KSV của nó (Bksv) cho T. Lúc đó, nếu việc nhận diện có nghi vấn,

T sẽ kiểm tra lại (có thể là kiểm tra số điện thoại nhà của người dùng) để chắc

chắn là các khoá của HDCP Receiver không bị thu hồi trước đó (hoặc nếu phát

hiện các khoá đó là giả thì hệ thống sẽ vô hiệu hoá khoá của thiết bị). Nếu qua

được quá trình nhận diện, bạn đã có thể "mở rào" cho nội dung số đi qua? Lúc này

vẫn chưa hoàn toàn thông suốt. Hệ thống sẽ phải kiểm tra bảng checksum vừa đề

cập phía trên. Theo chi tiết kỹ thuật của HDCP, bảng checksum thuộc dạng nhị

phân 56-bit dựa trên giá trị "An" của 2 KSV. Nếu giá trị R0 không hợp với R0' thì

quá trình nhận diện sẽ được thực hiện lại (hình 2).