Mã hóa video AES-128 — Cách HLS mã hóa từng phân đoạn

Mã hóa video AES-128

AES-128 (Advanced Encryption Standard với khóa 128-bit) là một mã khối đối xứng được NIST chuẩn hóa năm 2001. Nó được dùng trong ngân hàng trực tuyến, truyền thông chính phủ và hầu hết các nền tảng streaming để bảo vệ nội dung video.

Trong HLS, AES-128 được áp dụng ở mức phân đoạn: mỗi file phân đoạn được mã hóa bằng một khóa, và player giải mã trong lúc phát.

Cách HLS dùng AES-128

Đặc tả HLS định nghĩa hai chế độ mã hóa:

  • AES-128 — mã hóa ở mức phân đoạn, khóa được phục vụ riêng qua HTTP. Phổ biến nhất.
  • SAMPLE-AES — mã hóa ở mức sample (mã hóa từng frame video bên trong phân đoạn). Dùng với FairPlay DRM.

Đối với các trang “video hosting có mã hóa” — khóa học, nội dung trả phí, gói thành viên — AES-128 ở mức phân đoạn là chuẩn.

Phân phối khóa

Khóa mã hóa là chuỗi ngẫu nhiên 16 byte. Playlist HLS chỉ cho player biết nơi lấy khóa:

#EXT-X-KEY:METHOD=AES-128,URI="https://example.com/key/123",IV=0x1234...

Player lấy khóa qua HTTP (thường kèm thông tin xác thực), giải mã các phân đoạn trong bộ nhớ và đẩy vào video element.

Khóa đơn so với đa khóa

Khóa đơn: một video, một khóa, một URL. Đơn giản. Nếu URL bị bắt, toàn bộ video có thể bị giải mã.

Đa khóa (AVCaption): một video, nhiều khóa (mỗi khóa cho một lô phân đoạn). Mỗi khóa được lấy qua một URL ký riêng. Nếu một URL khóa bị bắt, chỉ lô đó (~60 giây) bị lộ. Việc trích xuất toàn bộ video đòi hỏi bắt mọi URL khóa, kết hợp với rate limit và token ký có thời hạn, làm tăng đáng kể chi phí cho hành vi sao chép tự động.

AES-128 so với DRM

AES-128 kèm phân phối khoá đôi khi được gọi là “DRM-lite” (cách gọi không chính thức trong ngành — chặt chẽ thì đó là mã hoá tầng truyền tải, không phải quản lý quyền). DRM thật (Widevine, PlayReady, FairPlay) bổ sung:

  • Giải mã gắn phần cứng (TEE, Secure Enclave)
  • License server thực thi quyền phát theo từng thiết bị, từng cửa sổ thời gian
  • Bảo vệ đầu ra (HDCP) chặn output màn hình bị capture

DRM bắt buộc với content cấp phép studio (phim chiếu rạp, series broadcast cao cấp, các deal có ràng buộc hợp đồng). Với content tự sản xuất (khoá học, tutorial, đào tạo B2B, membership trả phí), đánh đổi chuẩn là AES-128 đa khoá + signed URL + watermark per-viewer — rẻ hơn nhiều, mức kháng thực tế tương đương, dễ ship hơn. Decision matrix đầy đủ ở AES-128 vs DRM cho khoá học online.

Hỗ trợ trình duyệt

HLS gốc (Safari) hỗ trợ AES-128 sẵn. HLS.js (Chrome/Firefox/Edge) giải mã trong JavaScript qua Web Crypto API. Cả hai đều chạy trên iOS, Android và desktop mà không cần plugin.

Liên quan

← content.back_to_index