Widevine: nó là gì, DRM và các cấp độ bảo mật được giải thích

Tác giả: IT Sectr Đã đăng: 2026-05-24 Thời gian đọc: 8 phút

Widevine là công nghệ DRM do Google phát triển để bảo vệ nội dung video khỏi sao chép trái phép trên thiết bị di động, Smart TV và nền tảng web. Việc mã hóa nội dung được thực hiện thông qua mô-đun CDM, được hỗ trợ trên 4 tỷ thiết bị trên toàn thế giới. Công nghệ Widevine đảm bảo tương thích với Android, iOS, Chrome và Smart TV, cho phép các dịch vụ phát trực tuyến bảo vệ nội dung cao cấp trên mọi nền tảng.

Những điểm chính

  • Widevine — giải pháp DRM của Google để bảo vệ video trong ứng dụng di động và web.
  • Ba cấp độ bảo mật: L1 (mã hóa phần cứng), L2 (phần mềm), L3 (chỉ an toàn trên đám mây).
  • CDM — Content Decryption Module, thành phần chính để giải mã nội dung.
  • Cấp phép được quản lý thông qua máy chủ cấp phép của Google, nơi phát hành khóa để giải mã.
  • Tương thích với EME (Encrypted Media Extensions) cho phép hoạt động trên mọi trình duyệt.

Widevine là gì?

Widevine là công nghệ DRM độc quyền được Google mua lại vào năm 2010 và đã trở thành tiêu chuẩn thực tế để bảo vệ nội dung video trong hệ sinh thái Android. Nó được sử dụng bởi các dịch vụ phát trực tuyến lớn, bao gồm Netflix, Amazon Prime Video, Disney+ và Hulu, để ngăn chặn sao chép và phân phối trái phép nội dung.

Widevine hỗ trợ mã hóa AES-128 CBC sử dụng khóa nội dung chỉ được truyền đến các thiết bị được ủy quyền thông qua kênh cấp phép an toàn. Hệ thống cung cấp bảo vệ đầu cuối từ mã hóa trên máy chủ đến giải mã trên thiết bị của người dùng.

Lịch sử và phát triển của Widevine

Widevine Technologies được thành lập năm 1999 và ban đầu phát triển các giải pháp bảo vệ nội dung trên nền tảng truyền hình cáp. Sau khi được Google mua lại vào năm 2010, công nghệ này đã được điều chỉnh cho nền tảng di động và tích hợp vào hệ điều hành Android từ phiên bản 4.4 KitKat. Từ năm 2015, Widevine đã trở thành thành phần bắt buộc của chứng nhận Google Mobile Services.

Năm 2018, Google giới thiệu Widevine Modular DRM, cho phép các nhà sản xuất thiết bị triển khai các cấp độ bảo vệ khác nhau bằng phần cứng mà không cần sửa đổi mã hệ điều hành. Ngày nay, Widevine Modular được hỗ trợ trên hơn 4 tỷ thiết bị và là cơ chế DRM chính trên Android.

Kiến trúc Widevine

Kiến trúc Widevine bao gồm ba thành phần chính: Content Decryption Module (CDM), máy chủ cấp phép và công cụ mã hóa nội dung. CDM thực hiện giải mã phía máy khách và tương tác với Trusted Execution Environment (TEE) phần cứng để lưu trữ khóa an toàn.

Máy chủ cấp phép của Google quản lý việc phát hành khóa dựa trên chính sách của nhà cung cấp nội dung, xác định các giới hạn về thời gian, số lượng thiết bị và chất lượng phát lại. Công cụ mã hóa chuẩn bị nội dung phía nhà cung cấp, đóng gói nó ở định dạng MPEG-DASH hoặc HLS với mã hóa CENC.

Widevine DRM hoạt động như thế nào?

Quy trình bảo vệ bắt đầu ở giai đoạn đóng gói nội dung, khi tệp phương tiện được mã hóa bằng khóa nội dung trên máy chủ của nhà cung cấp. Luồng mã hóa được truyền đến thiết bị của người dùng qua CDN, nơi CDM yêu cầu giấy phép từ máy chủ cấp phép.

Máy chủ cấp phép xác minh tính xác thực của thiết bị và quyền truy cập nội dung. Nếu xác minh thành công, máy chủ phát hành giấy phép kèm khóa mà CDM sử dụng để giải mã. Giấy phép có thể chứa các hạn chế về thời gian xem và độ phân giải.

Giao thức trao đổi giấy phép

Trao đổi giấy phép trong Widevine được triển khai thông qua giao thức EME (Encrypted Media Extensions) trong trình duyệt hoặc qua SDK trên nền tảng di động. Yêu cầu giấy phép được tạo bởi CDM và gửi đến máy chủ cấp phép qua HTTPS, đảm bảo bảo vệ khỏi việc đánh cắp khóa khi truyền.

Máy chủ xử lý yêu cầu và trả về giấy phép cũng được mã hóa và chỉ có thể được giải mã bởi CDM của thiết bị. Liên kết phần cứng khóa với một thiết bị cụ thể ngăn chặn việc chuyển sang nền tảng khác.

Hỗ trợ tiêu chuẩn mã hóa

Widevine sử dụng các tiêu chuẩn Common Encryption (CENC) được định nghĩa trong ISO/IEC 23001-7, đảm bảo tương thích với các định dạng MPEG-DASH và HLS. Mã hóa AES-128 ở chế độ CTR hoặc CBC được sử dụng để bảo vệ luồng phương tiện.

Để dẫn xuất khóa, HKDF (HMAC-based Key Derivation Function) được sử dụng, cho phép tạo khóa duy nhất cho mỗi phân đoạn nội dung. Hỗ trợ HLS trong Widevine được thêm vào với phiên bản Modular 2.0, mở rộng khả năng tương thích với các nền tảng Apple.

Ví dụ yêu cầu giấy phép trên Android

kotlin
@Throws
fun requestLicense(): ByteArray {
    val drmSessionManager = mediaDrm.createSession(
        sessionId,
        List("keyRequestType", "init")
    )
    val request = mediaDrm.getKeyRequest(
        sessionId,
        schemeData.get("mimeType"),
        KeyType.STREAMING,
        mutableMapOf()
    )
    return licenseService.acquire(request.data)
}

Các cấp độ bảo mật của Widevine: L1, L2, L3

Widevine xác định ba cấp độ bảo mật khác nhau về cách thức thực hiện các hoạt động mã hóa và xử lý nội dung. Cấp độ L1 cung cấp bảo vệ tối đa, L3 cung cấp bảo vệ tối thiểu và L2 ở vị trí trung gian.

Cấp độLoại bảo vệYêu cầu thiết bịĐộ phân giải tối đa
L1Phần cứngTEE ở cấp SoC4K Ultra HD
L2Kết hợpTEE cho khóa, phần mềm cho video1080p
L3Phần mềmChỉ CDM phần mềm720p

Cấp độ L1 — mã hóa phần cứng

Cấp độ L1 yêu cầu Trusted Execution Environment (TEE) ở cấp phần cứng, nơi tất cả các hoạt động mã hóa được thực hiện. Khóa nội dung không bao giờ rời khỏi TEE, ngăn chặn việc trích xuất ngay cả khi hệ điều hành chính bị xâm phạm.

Thiết bị có chứng nhận L1 có thể phát nội dung ở chất lượng 4K và HDR, vì luồng video đã giải mã được gửi trực tiếp đến đầu ra video được bảo vệ mà không có quyền truy cập từ các tiến trình người dùng.

Cấp độ L3 — mã hóa phần mềm

Cấp độ L3 thực hiện tất cả các hoạt động mã hóa bằng phần mềm trong không gian người dùng thông thường. Đây là chế độ ít an toàn nhất, nơi khóa có thể bị trích xuất từ RAM của thiết bị.

Widevine L3 giới hạn chất lượng phát lại ở 720p, phù hợp để xem trên các thiết bị cấp thấp hoặc trình duyệt máy tính để bàn không có bảo vệ phần cứng.

Kiểm tra cấp độ bảo mật trên thiết bị

kotlin
fun getSecurityLevel(): String {
    val mediaDrm = MediaDrm(UUID.fromString(
        "edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"
    ))
    val level = mediaDrm.getPropertyString(
        "securityLevel"
    )
    return level.ifEmpty { "L3" }
}

Tích hợp Widevine vào ứng dụng di động

Tích hợp Widevine vào ứng dụng di động được thực hiện thông qua các API tiêu chuẩn MediaDrm (Android) và AVContentKeySession (iOS). Trong hầu hết các trường hợp, nhà phát triển không cần làm việc trực tiếp với DRM — các thư viện trình phát như ExoPlayer và AVPlayer xử lý cấp phép tự động.

Tích hợp trên Android

Trên Android, Widevine được tích hợp thông qua lớp MediaDrm, cung cấp quyền truy cập trực tiếp vào CDM. Đối với ứng dụng phát trực tuyến, nên sử dụng ExoPlayer với mô-đun DrmSessionManager, tự động quản lý các yêu cầu giấy phép.

Khi khởi tạo trình phát, bạn cần chỉ định UUID lược đồ Widevine (`edef8ba9-79d6-4ace-a3c8-27dcd51d21ed`) và URL máy chủ cấp phép do nhà cung cấp nội dung cung cấp. ExoPlayer tự động xử lý chu trình yêu cầu và gia hạn giấy phép.

Cấu hình ExoPlayer cho Widevine

kotlin
val drmLicenseUrl = "https://license.service.com/wv"
val mediaItem = MediaItem.Builder()
    .setUri(Uri.parse(streamUrl))
    .setDrmKeyRequestUrl(drmLicenseUrl)
    .setDrmKeyRequestHeaders(
        mapOf("Authorization" to token)
    )
    .build()

val exoPlayer = ExoPlayer.Builder(context)
    .build()
exoPlayer.setMediaItem(mediaItem)
exoPlayer.prepare()

Tích hợp với trình phát web

Trên nền tảng web, Widevine hoạt động thông qua Media Source Extensions (MSE) và Encrypted Media Extensions (EME). Trình duyệt dựa trên Chromium có Widevine CDM tích hợp sẵn và nhà phát triển chỉ cần khởi tạo phiên EME với cấu hình chính xác.

Để sử dụng Widevine trong trình duyệt, bạn cần chỉ định bộ khởi tạo giấy phép với loại keySystem `com.widevine.alpha`. Sau khi tạo phiên bản MediaKeys, trình duyệt tự động xử lý các yêu cầu giấy phép.

Xử lý lỗi cấp phép

Khi tích hợp Widevine, điều quan trọng là phải xử lý chính xác các lỗi cấp phép xảy ra do thiếu quyền truy cập, hết hạn đăng ký hoặc không tương thích thiết bị. Lỗi TYPE_EXPIRED_LICENSE yêu cầu cập nhật giấy phép thông qua yêu cầu lại tới máy chủ, trong khi TYPE_OUTPUT_NOT_ALLOWED cho biết đầu ra video không tương thích với chính sách DRM.

Nên triển khai cơ chế thử lại với backoff theo cấp số nhân cho lỗi mạng tạm thời và hiển thị thông báo rõ ràng cho người dùng khi lỗi cấp phép vĩnh viễn. Ghi nhật ký lỗi phiên DRM giúp nhà cung cấp nội dung xác định sự cố thiết bị và tối ưu hóa chính sách.

Widevine và các DRM thay thế

Widevine cạnh tranh với FairPlay của Apple và PlayReady của Microsoft, tạo thành ba giải pháp DRM chính trên thị trường nền tảng di động. Mỗi công nghệ đều có ưu điểm và hạn chế riêng liên quan đến hệ sinh thái nền tảng.

So sánh các giải pháp DRM

Đặc điểmWidevineFairPlayPlayReady
Nhà phát triểnGoogleAppleMicrosoft
Nền tảng chínhAndroid, ChromeiOS, tvOS, SafariWindows, Xbox, UWP
Cấp độ tối đaL1 (4K)Tương đương L1 (4K)SL3000 (4K)
Bảo vệ phần cứngTEESecure EnclaveTPM + TEE

Chọn DRM cho dự án

Việc chọn DRM phụ thuộc vào nền tảng mục tiêu của ứng dụng. Đối với các dự án ưu tiên Android, Widevine là lựa chọn tự nhiên vì nó được cài đặt sẵn trên tất cả các thiết bị được chứng nhận với Google Mobile Services và không yêu cầu phí cấp phép bổ sung.

Đối với các dự án đa nền tảng, phương pháp đa DRM thường được sử dụng với các bộ tổng hợp giấy phép như Axinom, EZDRM và Vualto, cung cấp API thống nhất để làm việc với cả ba hệ thống DRM. Điều này giảm độ phức tạp tích hợp và tập trung hóa quản lý giấy phép.

Câu hỏi thường gặp

Widevine DRM là gì?

Widevine là công nghệ DRM của Google được thiết kế để bảo vệ nội dung video kỹ thuật số khỏi sao chép trái phép. Nó được các dịch vụ phát trực tuyến sử dụng để mã hóa video và quản lý quyền truy cập thông qua hệ thống cấp phép.

Widevine có những cấp độ bảo mật nào?

Widevine hỗ trợ ba cấp độ bảo mật: L1 với mã hóa phần cứng trong TEE, L2 với phương pháp kết hợp và L3 với triển khai hoàn toàn bằng phần mềm. L1 cho phép phát nội dung 4K, L3 bị giới hạn ở chất lượng 720p.

Làm thế nào để kiểm tra cấp độ Widevine trên Android?

Bạn có thể kiểm tra cấp độ Widevine trên Android thông qua lớp MediaDrm bằng cách yêu cầu thuộc tính securityLevel. Để thực hiện, hãy tạo phiên bản MediaDrm với UUID Widevine và gọi getPropertyString, hoặc sử dụng ứng dụng bên thứ ba như DRM Info.

Widevine khác FairPlay như thế nào?

Widevine được Google phát triển cho Android và Chrome, trong khi FairPlay dành cho iOS, tvOS và Safari. Cả hai đều hỗ trợ mã hóa phần cứng và 4K, nhưng Widevine phổ biến hơn trên thiết bị Android, trong khi FairPlay là tiêu chuẩn thực tế trong hệ sinh thái Apple.

Có cần giấy phép để sử dụng Widevine không?

Để sử dụng Widevine trong ứng dụng di động, không cần giấy phép riêng — công nghệ này được tích hợp sẵn trong các thiết bị Android được chứng nhận và Chrome. Phí chỉ được tính cho các nhà cung cấp nội dung khi sử dụng máy chủ cấp phép.

Tổng kết

  • Widevine là cơ chế DRM chính trên Android, cung cấp bảo vệ nội dung video thông qua mã hóa phần cứng hoặc phần mềm.
  • Ba cấp độ bảo mật L1, L2, L3 xác định chất lượng phát lại tối đa và mức độ bảo vệ khóa.
  • CDM (Content Decryption Module) thực hiện giải mã nội dung phía máy khách bằng khóa giấy phép.
  • Tích hợp được thực hiện thông qua ExoPlayer, MediaDrm trên Android và EME trên nền tảng web.
  • Đối với iOS cần FairPlay, khiến phương pháp đa DRM trở nên cần thiết cho các dự án đa nền tảng.
  • Widevine Modular hỗ trợ mã hóa CENC và tương thích với các định dạng MPEG-DASH và HLS.
  • Máy chủ cấp phép của Google quản lý quyền truy cập nội dung dựa trên chính sách do nhà cung cấp nội dung đặt ra.

Chúng tôi sẽ phát triển ứng dụng di động chìa khóa trao tay

IT Sectr tạo các ứng dụng iOS và Android cho các công ty khởi nghiệp và doanh nghiệp từ năm 2017. Chúng tôi sẽ tư vấn và đề xuất giải pháp tốt nhất cho bạn.

Thảo luận dự án

Đọc thêm