FairPlay — DRM của Apple và nguyên lý hoạt động

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

FairPlay là công nghệ DRM độc quyền do Apple phát triển để bảo vệ nội dung video trong hệ sinh thái iOS, tvOS và macOS. Hệ thống sử dụng Secure Enclave và mã hóa phần cứng để lưu trữ khóa an toàn, cho phép các dịch vụ phát trực tuyến cung cấp nội dung ở chất lượng 4K HDR. Theo tài liệu Apple Developer (2025), FairPlay Streaming được hỗ trợ trên tất cả thiết bị Apple có chip A8 trở lên.

Điểm chính

  • FairPlay — giải pháp DRM của Apple để bảo vệ video trong ứng dụng iOS, tvOS và macOS.
  • Secure Enclave cung cấp lưu trữ khóa giải mã ở cấp độ phần cứng trên chip.
  • FairPlay Streaming (FPS) — giao thức bảo vệ luồng HLS theo thời gian thực.
  • SCM (Server Certificate Module) — mô-đun xác thực máy chủ cấp phép.
  • Tích hợp yêu cầu đăng ký chương trình Apple Developer và nhận chứng chỉ FPS.

FairPlay là gì?

FairPlay là công nghệ DRM do Apple tạo ra và tích hợp vào các hệ điều hành iOS, tvOS, iPadOS và macOS để bảo vệ nội dung âm thanh và video khỏi sử dụng trái phép. Ban đầu được phát triển cho iTunes và iPod, nó đã phát triển thành một hệ thống bảo vệ nội dung phát trực tuyến hoàn chỉnh thông qua giao thức FairPlay Streaming.

Không giống các giải pháp DRM khác, FairPlay được tích hợp hoàn toàn vào kiến trúc phần cứng của thiết bị Apple. Các khóa giải mã được lưu trữ trong Secure Enclave — một bộ đồng xử lý được bảo vệ, cách ly khỏi hệ điều hành chính, khiến việc trích xuất khóa gần như không thể thực hiện được ngay cả khi có jailbreak.

Sự phát triển của FairPlay

Lịch sử của FairPlay bắt đầu vào năm 2003 với iTunes Store, nơi áp dụng mã hóa tệp AAC ở định dạng M4P độc quyền. Năm 2009, Apple giới thiệu FairPlay Streaming — một giao thức bảo vệ video phát trực tuyến dựa trên HLS, sau này trở thành bắt buộc đối với Apple TV và ứng dụng iOS.

Bắt đầu từ iOS 10 và tvOS 10, Apple đã mở FairPlay Streaming cho các nhà phát triển bên thứ ba thông qua framework AVFoundation. Ngày nay, Netflix, Amazon Prime Video và Disney+ sử dụng FairPlay để bảo vệ nội dung trên thiết bị Apple ở độ phân giải 4K HDR với Dolby Vision.

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

Cách FairPlay hoạt động dựa trên quy trình ba bước: đóng gói nội dung, phân phối qua CDN và giải mã trên thiết bị. Ở giai đoạn đóng gói, video được mã hóa bằng AES-128 hoặc AES-256, và các khóa mã hóa được liên kết với một thiết bị cụ thể thông qua cơ chế Key Envelope.

Khi yêu cầu nội dung, trình phát khởi tạo phiên FairPlay thông qua AVContentKeySession, gửi yêu cầu đến máy chủ cấp phép của nhà cung cấp nội dung. Máy chủ xác minh quyền truy cập và trả về khóa giải mã được mã hóa bằng khóa công khai của chứng chỉ thiết bị.

Quy trình lấy giấy phép

Máy khách tạo một thể hiện của AVContentKeySession và thêm rành nội dung vào đó. Hệ thống tạo một yêu cầu SPC (Server Playback Context) chứa định danh thiết bị và chứng chỉ ứng dụng được Apple ký. Yêu cầu này được gửi đến máy chủ cấp phép qua HTTPS.

Máy chủ cấp phép xác thực SPC, lấy khóa nội dung từ cơ sở dữ liệu và mã hóa nó bằng khóa công khai của thiết bị, tạo thành CKC (Content Key Context). CKC được trả về máy khách, nơi AVContentKeySession giải mã nó bằng khóa riêng của Secure Enclave.

Sơ đồ hoạt động FairPlay Streaming

swift
let contentKeySession = AVContentKeySession(keySystem: .fairPlayStreaming)
contentKeySession.setDelegate(self, queue: .main)

let asset = AVURLAsset(url: streamURL)
asset.resourceLoader.setDelegate(self, queue: .main)
contentKeySession.addContentKeyRecipient(asset)

let playerItem = AVPlayerItem(asset: asset)
let player = AVPlayer(playerItem: playerItem)

Các thành phần chính của FairPlay

Kiến trúc FairPlay bao gồm một số thành phần kết nối với nhau: chứng chỉ ứng dụng, Key Envelope, Secure Enclave và mô-đun giải mã nội dung. Mỗi thành phần đóng vai trò trong chuỗi bảo vệ từ máy chủ đến màn hình người dùng.

Thành phầnChức năngNơi thực hiện
Chứng chỉ ứng dụngĐịnh danh ứng dụng với máy chủ cấp phépLưu trong bundle ứng dụng
SPCServer Playback Context — yêu cầu cấp phépDo AVContentKeySession tạo
CKCContent Key Context — phản hồi có khóaDo Secure Enclave xử lý
Secure EnclaveLưu trữ và giải mã khóa phần cứngBộ đồng xử lý phần cứng trên SoC
Key EnvelopeVỏ chứa khóa với siêu dữ liệu cấp phépDo máy chủ cấp phép tạo

Chứng chỉ ứng dụng FairPlay

Để làm việc với FairPlay, nhà phát triển phải nhận chứng chỉ FPS từ Apple thông qua chương trình Apple Developer. Chứng chỉ bao gồm khóa công khai của cặp bất đối xứng, phần khóa riêng được Secure Enclave sử dụng để giải mã CKC.

Chứng chỉ ứng dụng được thêm vào bundle dự án và tự động được ký khi biên dịch thông qua Xcode. Khi phát nội dung được bảo vệ lần đầu, hệ thống sẽ xác minh tính hợp lệ của chứng chỉ và yêu cầu giấy phép.

Secure Enclave và bảo vệ phần cứng

Secure Enclave là bộ đồng xử lý chuyên dụng trên chip Apple dòng A và M, chạy trên hệ điều hành L4 biệt lập. Nó chịu trách nhiệm tạo và lưu trữ khóa riêng, giải mã CKC và chuyển khóa nội dung cho mô-đun giải mã video.

Tất cả các hoạt động mật mã được thực hiện hoàn toàn trong Secure Enclave và các khóa không bao giờ rời khỏi khu vực được bảo vệ. Các cuộc tấn công kênh phụ trên bus dữ liệu giữa Secure Enclave và bộ xử lý chính bị chặn bởi giám sát tính toàn vẹn phần cứng.

Tích hợp FairPlay trong iOS và tvOS

Tích hợp FairPlay trong ứng dụng iOS và tvOS được thực hiện thông qua AVFoundation và yêu cầu triển khai các giao thức AVContentKeySessionDelegate và AVAssetResourceLoaderDelegate. Nhà phát triển cần xử lý bốn sự kiện chính: nhận SPC, gửi đến máy chủ, nhận CKC và chuyển cho trình phát.

Triển khai ủy quyền AVContentKeySession

swift
func contentKeySession(
    _ session: AVContentKeySession,
    didProvide keyRequest: AVContentKeyRequest
) {
    guard let identifier = keyRequest.identifier
    else { return }

    let spc: Data = keyRequest.makeStreamingContentKeyRequestData(
        appCertificate: certificate,
        contentIdentifier: identifier,
        options: nil
    )

    licenseService.requestCKC(spc) { ckc in
        keyRequest.processContentKeyResponse(
            AVContentKeyResponse(fairPlayStreamingKeyResponseData: ckc)
        )
    }
}

Chuẩn bị chứng chỉ và định danh nội dung

Trước khi bắt đầu phát, bạn cần tải chứng chỉ ứng dụng từ bundle và chuẩn bị định danh nội dung (thường là URL luồng hoặc ID phim). Chứng chỉ phải có hiệu lực ít nhất trong suốt thời gian thuê nội dung, nếu không việc cấp phép sẽ thất bại.

Định danh nội dung được chuyển đến hệ thống cấp phép ở giai đoạn hình thành SPC. Máy chủ cấp phép sử dụng định danh này để tìm khóa tương ứng và các chính sách phát, bao gồm các hạn chế về thời gian và thiết bị.

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

Có thể xảy ra lỗi trong quá trình cấp phép: hết hạn chứng chỉ, định danh nội dung không hợp lệ, thiếu quyền truy cập của người dùng. Lỗi FairPlay được trả về thông qua ủy quyền contentKeySession:didFailWithError và cần được xử lý với giao diện người dùng thích hợp.

Các mã lỗi điển hình bao gồm FP_NO_ENTITLEMENT khi không có đăng ký và FP_REQUEST_TIMEOUT khi có sự cố mạng. Bạn nên triển khai logic thử lại với backoff lũy thừa cho các lỗi mạng tạm thời.

FairPlay Streaming và cấp phép

FairPlay Streaming là giao thức bảo vệ video phát trực tuyến dựa trên HLS sử dụng mã hóa phân đoạn và cơ chế khóa có thời hạn. Nhà cung cấp nội dung triển khai máy chủ cấp phép riêng, tích hợp với hệ thống xác thực người dùng.

Máy chủ cấp phép nhận yêu cầu SPC từ máy khách, trích xuất định danh thiết bị và nội dung, xác minh quyền của người dùng trong back-end và tạo phản hồi CKC. Khóa nội dung được mã hóa bằng khóa công khai của thiết bị từ chứng chỉ FPS.

Chính sách cấp phép FairPlay

Giấy phép FairPlay có thể chứa hạn chế thời gian (thuê 48 giờ), giới hạn thiết bị (tối đa 5 thiết bị được ủy quyền) và hạn chế chất lượng phát (giới hạn ở 1080p cho gói cơ bản). Các chính sách được đặt ở phía máy chủ và đóng gói trong Key Envelope.

Điều quan trọng cần lưu ý là các chính sách FairPlay được thực thi ở cấp Secure Enclave và không thể bị vượt qua bằng phương pháp phần mềm ở cấp hệ điều hành. Ngay cả khi có jailbreak, bảo vệ phần cứng ngăn chặn việc trích xuất khóa hoặc sửa đổi thông số giấy phép.

So sánh FairPlay với các DRM khác

Thông sốFairPlayWidevinePlayReady
Hệ sinh tháiApple (iOS, tvOS, macOS)Google (Android, Chrome)Microsoft (Windows, Xbox)
Chất lượng tối đa4K HDR Dolby Vision4K UHD4K UHD
Bảo vệ phần cứngSecure EnclaveTEETPM + TEE
Yêu cầu với nhà phát triểnChứng chỉ FPS AppleKhông yêu cầuGiấy phép Microsoft

Đặc điểm FairPlay trên các phiên bản iOS khác nhau

Hỗ trợ FairPlay Streaming phụ thuộc vào phiên bản hệ điều hành và loại thiết bị. Kể từ iOS 10 và tvOS 10, API AVContentKeySession có sẵn cho tất cả ứng dụng, nhưng tăng tốc phần cứng qua Secure Enclave chỉ cần thiết cho nội dung chất lượng 4K HDR. Trên thiết bị có chip A8–A10, độ phân giải tối đa là 1080p.

Trong iOS 14, Apple đã thêm hỗ trợ nhiều phiên FairPlay, cho phép một ứng dụng phát nhiều luồng được bảo vệ cùng lúc — ví dụ, hình trong hình với các giấy phép khác nhau. iOS 15 đã mở rộng giao thức với hỗ trợ làm mới khóa nền để xem kéo dài.

FairPlay trong kiến trúc đa DRM

Đối với các dịch vụ phát trực tuyến đa nền tảng, FairPlay được sử dụng như một phần của kiến trúc đa DRM cùng với Widevine và PlayReady. Các trình tổng hợp giấy phép, như Axinom và EZDRM, cung cấp API thống nhất dịch các yêu cầu sang định dạng SPC cho FairPlay và định dạng MediaDrm cho Widevine, đơn giản hóa tích hợp trên tất cả các nền tảng.

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

FairPlay DRM trong iOS là gì?

FairPlay là công nghệ DRM của Apple được tích hợp trong iOS, tvOS và macOS để bảo vệ nội dung video. Nó sử dụng mã hóa phần cứng qua Secure Enclave và giao thức FairPlay Streaming để truyền khóa giải mã an toàn trên thiết bị Apple.

Làm thế nào để có chứng chỉ FairPlay Streaming?

Để có chứng chỉ FPS, bạn cần đăng ký chương trình Apple Developer, tạo chứng chỉ trong mục Certificates, Identifiers & Profiles và tải xuống ở định dạng DER. Chứng chỉ được thêm vào bundle dự án Xcode và được ký khi biên dịch.

Có thể sử dụng FairPlay trên Android không?

Không, FairPlay không khả dụng trên Android, vì đây là công nghệ độc quyền của Apple gắn liền với kiến trúc phần cứng Secure Enclave trên chip dòng A và M. Thiết bị Android sử dụng Widevine DRM của Google.

Sự khác biệt giữa FairPlay và FairPlay Streaming là gì?

FairPlay là tên gọi chung của công nghệ DRM Apple, trong khi FairPlay Streaming (FPS) là giao thức cụ thể để bảo vệ luồng HLS. FPS sử dụng cơ chế FairPlay để mã hóa phân đoạn video và quản lý giấy phép thông qua AVContentKeySession.

Giấy phép FairPlay áp đặt những hạn chế nào?

Giấy phép FairPlay có thể đặt hạn chế về thời gian xem, chất lượng video tối đa (720p, 1080p, 4K), số lượng thiết bị và thời hạn hiệu lực của khóa. Tất cả các chính sách được thực thi bằng phần cứng trong Secure Enclave và không thể bị vượt qua.

Tổng kết

  • FairPlay — DRM độc quyền của Apple với bảo vệ phần cứng qua Secure Enclave và giao thức FairPlay Streaming cho HLS.
  • SPC và CKC — các thông điệp chính của giao thức: yêu cầu cấp phép từ máy khách và phản hồi có khóa từ máy chủ.
  • Chứng chỉ FPS bắt buộc đối với nhà phát triển, nhận được qua chương trình Apple Developer.
  • Tích hợp qua AVContentKeySession và AVAssetResourceLoaderDelegate trong AVFoundation.
  • Secure Enclave cung cấp lưu trữ và xử lý khóa cách ly ở cấp phần cứng.
  • Hạn chế giấy phép bao gồm khung thời gian, chất lượng và số lượng thiết bị.
  • Phương pháp đa DRM với FairPlay, Widevine và PlayReady cần thiết cho ứng dụng phát trực tuyến đa nền tảng.

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