FairPlay เป็นเทคโนโลยี DRM ที่เป็นกรรมสิทธิ์ของ Apple ซึ่งพัฒนาขึ้นเพื่อป้องกันเนื้อหาวิดีโอในระบบนิเวศ iOS, tvOS และ macOS ระบบใช้ Secure Enclave และการเข้ารหัสฮาร์ดแวร์เพื่อจัดเก็บคีย์อย่างปลอดภัย ทำให้บริการสตรีมมิ่งสามารถนำเสนอเนื้อหาใน คุณภาพ 4K HDR ตามเอกสารของ Apple Developer (2025) FairPlay Streaming รองรับบนอุปกรณ์ Apple ทุกเครื่องที่มีชิป A8 ขึ้นไป
สาระสำคัญ
FairPlay เป็นเทคโนโลยี DRM ที่สร้างโดย Apple และนำไปใช้ในระบบปฏิบัติการ iOS, tvOS, iPadOS และ macOS เพื่อป้องกันเนื้อหาเสียงและวิดีโอจากการใช้งานที่ไม่ได้รับอนุญาต เดิมพัฒนาสำหรับ iTunes และ iPod มันได้พัฒนาเป็นระบบป้องกันเนื้อหาสตรีมมิ่งที่สมบูรณ์ผ่านโปรโตคอล FairPlay Streaming
แตกต่างจากโซลูชัน DRM อื่น ๆ FairPlay ถูกรวมเข้ากับ สถาปัตยกรรมฮาร์ดแวร์ ของอุปกรณ์ Apple อย่างสมบูรณ์ คีย์ถอดรหัสถูกเก็บไว้ใน Secure Enclave — โปรเซสเซอร์ร่วมที่ปลอดภัย แยกจากระบบปฏิบัติการหลัก ทำให้การดึงคีย์แทบเป็นไปไม่ได้แม้จะมีการเจลเบรก
ประวัติของ FairPlay เริ่มต้นในปี 2003 กับ iTunes Store ที่ใช้การเข้ารหัสไฟล์ AAC ด้วยรูปแบบ M4P ที่เป็นกรรมสิทธิ์ ในปี 2009 Apple เปิดตัว FairPlay Streaming — โปรโตคอลป้องกันวิดีโอสตรีมมิ่งบนพื้นฐาน HLS ซึ่งต่อมากลายเป็นข้อบังคับสำหรับ Apple TV และแอป iOS
ตั้งแต่ iOS 10 และ tvOS 10 Apple เปิดให้ FairPlay Streaming แก่นักพัฒนาบุคคลที่สามผ่าน เฟรมเวิร์ก AVFoundation ปัจจุบัน Netflix, Amazon Prime Video และ Disney+ ใช้ FairPlay เพื่อป้องกันเนื้อหาบนอุปกรณ์ Apple สูงสุดถึงความละเอียด 4K HDR พร้อม Dolby Vision
การทำงานของ FairPlay ขึ้นอยู่กับกระบวนการสามขั้นตอน: การบรรจุเนื้อหา การกระจายผ่าน CDN และการถอดรหัสบนอุปกรณ์ ในขั้นตอนการบรรจุ วิดีโอจะถูกเข้ารหัสด้วย AES-128 หรือ AES-256 และคีย์การเข้ารหัสจะเชื่อมโยงกับอุปกรณ์เฉพาะผ่านกลไก Key Envelope
เมื่อขอเนื้อหา เครื่องเล่นจะเริ่มเซสชัน FairPlay ผ่าน AVContentKeySession ซึ่งส่งคำขอไปยังเซิร์ฟเวอร์ลิขสิทธิ์ของผู้ให้บริการเนื้อหา เซิร์ฟเวอร์ตรวจสอบสิทธิ์การเข้าถึงและส่งคืนคีย์ถอดรหัสที่เข้ารหัสด้วยคีย์สาธารณะของใบรับรองอุปกรณ์
ไคลเอนต์สร้างอินสแตนซ์ AVContentKeySession และเพิ่มแทร็กเนื้อหาเข้าไป ระบบสร้าง คำขอ SPC (Server Playback Context) ซึ่งประกอบด้วยตัวระบุอุปกรณ์และใบรับรองแอปที่รับรองโดย Apple คำขอนี้ถูกส่งไปยังเซิร์ฟเวอร์ลิขสิทธิ์ผ่าน HTTPS
เซิร์ฟเวอร์ลิขสิทธิ์ตรวจสอบ SPC ดึง คีย์เนื้อหา จากฐานข้อมูลและเข้ารหัสด้วยคีย์สาธารณะของอุปกรณ์ สร้าง CKC (Content Key Context) CKC ถูกส่งกลับไปยังไคลเอนต์ ซึ่ง AVContentKeySession ถอดรหัสด้วยคีย์ส่วนตัวของ Secure Enclave
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)
สถาปัตยกรรม FairPlay ประกอบด้วยส่วนประกอบที่เชื่อมโยงกันหลายส่วน: ใบรับรองแอป, Key Envelope, Secure Enclave และโมดูลถอดรหัสเนื้อหา แต่ละส่วนประกอบมีบทบาทในห่วงโซ่การป้องกันตั้งแต่เซิร์ฟเวอร์ไปจนถึงหน้าจอผู้ใช้
| ส่วนประกอบ | หน้าที่ | ตำแหน่งที่ทำงาน |
|---|---|---|
| ใบรับรองแอป | ระบุตัวตนแอปต่อเซิร์ฟเวอร์ลิขสิทธิ์ | เก็บในบันเดิลแอป |
| SPC | Server Playback Context — คำขอลิขสิทธิ์ | สร้างโดย AVContentKeySession |
| CKC | Content Key Context — การตอบกลับพร้อมคีย์ | ประมวลผลโดย Secure Enclave |
| Secure Enclave | จัดเก็บและถอดรหัสคีย์ในระดับฮาร์ดแวร์ | โปรเซสเซอร์ร่วมฮาร์ดแวร์ของ SoC |
| Key Envelope | คอนเทนเนอร์สำหรับคีย์พร้อมข้อมูลเมตาลิขสิทธิ์ | สร้างโดยเซิร์ฟเวอร์ลิขสิทธิ์ |
ในการทำงานกับ FairPlay นักพัฒนาต้องได้รับ ใบรับรอง FPS จาก Apple ผ่านโปรแกรม Apple Developer ใบรับรองประกอบด้วยคีย์สาธารณะของคู่อสมมาตร ซึ่งส่วนคีย์ส่วนตัวใช้โดย Secure Enclave ในการถอดรหัส CKC
ใบรับรองแอปถูกเพิ่มในบันเดิลโครงการและลงนามโดยอัตโนมัติเมื่อ build ผ่าน Xcode เมื่อเล่นเนื้อหาที่ป้องกันครั้งแรก ระบบจะตรวจสอบความถูกต้องของใบรับรองและขอรับลิขสิทธิ์
Secure Enclave — โปรเซสเซอร์ร่วมเฉพาะบนชิป Apple A-series และ M-series ที่ทำงานบนระบบปฏิบัติการ L4 ที่แยกออกมา มันรับผิดชอบในการสร้างและจัดเก็บคีย์ส่วนตัว ถอดรหัส CKC และส่งคีย์เนื้อหาไปยังโมดูลถอดรหัสวิดีโอ
การดำเนินการเข้ารหัสทั้งหมดจะดำเนินการภายใน Secure Enclave เท่านั้น และคีย์จะไม่ออกจากพื้นที่ป้องกัน การโจมตีช่องทางด้านข้าง บนบัสข้อมูลระหว่าง Secure Enclave และโปรเซสเซอร์หลักถูกป้องกันโดยการตรวจสอบความสมบูรณ์ของฮาร์ดแวร์
การผสาน FairPlay ในแอป iOS และ tvOS ทำผ่าน AVFoundation และต้องใช้โปรโตคอล AVContentKeySessionDelegate และ AVAssetResourceLoaderDelegate นักพัฒนาต้องจัดการเหตุการณ์สำคัญสี่อย่าง: การรับ SPC การส่งไปยังเซิร์ฟเวอร์ การรับ CKC และการส่งไปยังเครื่องเล่น
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)
)
}
}
ก่อนเริ่มเล่น ต้องโหลด ใบรับรองแอป จากบันเดิลและเตรียมตัวระบุเนื้อหา (ส่วนใหญ่เป็น URL สตรีมหรือรหัสภาพยนตร์) ใบรับรองต้องมีอายุอย่างน้อยเท่ากับระยะเวลาเช่าเนื้อหา มิฉะนั้นการให้ลิขสิทธิ์จะเกิดข้อผิดพลาด
ตัวระบุเนื้อหาถูกส่งไปยัง ระบบลิขสิทธิ์ ในขั้นตอนการสร้าง SPC เซิร์ฟเวอร์ลิขสิทธิ์ใช้ตัวระบุนี้เพื่อค้นหาคีย์และนโยบายการเล่นที่เกี่ยวข้อง รวมถึงข้อจำกัดด้านเวลาและอุปกรณ์
ในกระบวนการให้ลิขสิทธิ์อาจเกิดข้อผิดพลาด: ใบรับรองหมดอายุ, ตัวระบุเนื้อหาไม่ถูกต้อง, ผู้ใช้ไม่มีสิทธิ์เข้าถึง ข้อผิดพลาด FairPlay จะถูกส่งกลับผ่าน delegate contentKeySession:didFailWithError และควรจัดการพร้อมแสดง UI ที่เหมาะสมแก่ผู้ใช้
รหัสข้อผิดพลาดทั่วไปรวมถึง FP_NO_ENTITLEMENT เมื่อไม่มีสมาชิกภาพและ FP_REQUEST_TIMEOUT เมื่อมีปัญหาเครือข่าย แนะนำให้ใช้ตรรกะลองซ้ำด้วยการหน่วงเวลาแบบเอกซ์โปเนนเชียลสำหรับข้อผิดพลาดเครือข่ายชั่วคราว
FairPlay Streaming — โปรโตคอลป้องกันวิดีโอสตรีมมิ่งบนพื้นฐาน HLS ที่ใช้การเข้ารหัสเซกเมนต์และกลไกคีย์ที่มีอายุจำกัด ผู้ให้บริการเนื้อหาติดตั้งเซิร์ฟเวอร์ลิขสิทธิ์ของตนเองซึ่งผสานรวมกับระบบยืนยันตัวตนผู้ใช้
เซิร์ฟเวอร์ลิขสิทธิ์รับ คำขอ SPC จากไคลเอนต์ ดึงตัวระบุอุปกรณ์และเนื้อหาออกมา ตรวจสอบสิทธิ์ผู้ใช้ในแบ็กเอนด์ และสร้างการตอบกลับ CKC คีย์เนื้อหาถูกเข้ารหัสด้วยคีย์สาธารณะของอุปกรณ์จากใบรับรอง FPS
ลิขสิทธิ์ FairPlay สามารถมี ข้อจำกัดด้านเวลา (เช่า 48 ชั่วโมง), จำนวนอุปกรณ์ (สูงสุด 5 เครื่องที่ได้รับอนุญาต) และคุณภาพการเล่น (จำกัดที่ 1080p สำหรับแพ็กเกจพื้นฐาน) นโยบายถูกกำหนดที่ฝั่งเซิร์ฟเวอร์และบรรจุใน Key Envelope
สำคัญที่ต้องทราบว่า นโยบาย FairPlay ถูกบังคับใช้ในระดับ Secure Enclave และไม่สามารถเลี่ยงได้ด้วยวิธีการทางซอฟต์แวร์ในระดับ OS แม้จะมีการเจลเบรก การป้องกันฮาร์ดแวร์ก็ป้องกันการดึงคีย์หรือการเปลี่ยนแปลงพารามิเตอร์ลิขสิทธิ์
| พารามิเตอร์ | FairPlay | Widevine | PlayReady |
|---|---|---|---|
| ระบบนิเวศ | Apple (iOS, tvOS, macOS) | Google (Android, Chrome) | Microsoft (Windows, Xbox) |
| คุณภาพสูงสุด | 4K HDR Dolby Vision | 4K UHD | 4K UHD |
| การป้องกันฮาร์ดแวร์ | Secure Enclave | TEE | TPM + TEE |
| ข้อกำหนดสำหรับนักพัฒนา | ใบรับรอง FPS ของ Apple | ไม่จำเป็น | ลิขสิทธิ์ Microsoft |
การรองรับ FairPlay Streaming ขึ้นอยู่กับเวอร์ชันของระบบปฏิบัติการและประเภทอุปกรณ์ ตั้งแต่ iOS 10 และ tvOS 10 API AVContentKeySession พร้อมใช้งานสำหรับทุกแอป แต่การเร่งด้วยฮาร์ดแวร์ผ่าน Secure Enclave จำเป็นสำหรับเนื้อหาใน คุณภาพ 4K HDR เท่านั้น บนอุปกรณ์ที่มีชิป A8–A10 รองรับเฉพาะความละเอียดสูงสุด 1080p
ใน iOS 14 Apple เพิ่มการรองรับหลายเซสชัน FairPlay ซึ่งช่วยให้แอปเล่นสตรีมที่ป้องกันหลายรายการพร้อมกัน — เช่น ภาพซ้อนภาพ พร้อมลิขสิทธิ์ที่แตกต่างกัน iOS 15 ขยายโปรโตคอลด้วยการรองรับการอัปเดตคีย์ในพื้นหลังสำหรับการรับชมเป็นเวลานาน
สำหรับบริการสตรีมมิ่งข้ามแพลตฟอร์ม FairPlay ถูกใช้เป็นส่วนหนึ่งของสถาปัตยกรรม Multi-DRM ร่วมกับ Widevine และ PlayReady ตัวรวบรวมลิขสิทธิ์ เช่น Axinom และ EZDRM ให้ API เดียวที่แปลงคำขอเป็นรูปแบบ SPC สำหรับ FairPlay และรูปแบบ MediaDrm สำหรับ Widevine ทำให้การผสานรวมง่ายขึ้นบนทุกแพลตฟอร์ม
คำถามที่พบบ่อย
FairPlay เป็นเทคโนโลยี DRM ของ Apple ที่รวมอยู่ใน iOS, tvOS และ macOS สำหรับป้องกันเนื้อหาวิดีโอ มันใช้การเข้ารหัสฮาร์ดแวร์ผ่าน Secure Enclave และโปรโตคอล FairPlay Streaming สำหรับการส่งคีย์ถอดรหัสอย่างปลอดภัยบนอุปกรณ์ Apple
ในการรับใบรับรอง FPS ต้องลงทะเบียนในโปรแกรม Apple Developer สร้างใบรับรองในส่วน Certificates, Identifiers & Profiles และดาวน์โหลดในรูปแบบ DER ใบรับรองถูกเพิ่มในบันเดิลโครงการ Xcode และลงนามเมื่อ build
ไม่ FairPlay ไม่พร้อมใช้งาน บน Android เนื่องจากเป็นเทคโนโลยีกรรมสิทธิ์ของ Apple ที่ผูกติดกับสถาปัตยกรรมฮาร์ดแวร์ Secure Enclave บนชิป A-series และ M-series สำหรับอุปกรณ์ Android ใช้ Widevine DRM ของ Google
FairPlay เป็นชื่อทั่วไปของเทคโนโลยี DRM ของ Apple ส่วน FairPlay Streaming (FPS) เป็นโปรโตคอลเฉพาะสำหรับป้องกันสตรีม HLS FPS ใช้กลไกของ FairPlay สำหรับการเข้ารหัสเซกเมนต์วิดีโอและจัดการลิขสิทธิ์ผ่าน AVContentKeySession
ลิขสิทธิ์ FairPlay สามารถกำหนด ข้อจำกัด ด้านเวลาในการรับชม คุณภาพวิดีโอสูงสุด (720p, 1080p, 4K) จำนวนอุปกรณ์ และระยะเวลาของคีย์ นโยบายทั้งหมดถูกบังคับใช้ในระดับฮาร์ดแวร์ใน Secure Enclave และไม่สามารถเลี่ยงได้
สรุป
เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร
IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ