Widevine: คืออะไร, DRM และระดับความปลอดภัย

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-05-24 เวลาอ่าน: 8 นาที

Widevine เป็นเทคโนโลยี DRM ที่พัฒนาโดย Google เพื่อปกป้องเนื้อหาวิดีโอจากการคัดลอกโดยไม่ได้รับอนุญาตบนอุปกรณ์มือถือ Smart TV และแพลตฟอร์มเว็บ การเข้ารหัสเนื้อหาจะดำเนินการผ่าน โมดูล CDM ซึ่งรองรับบนอุปกรณ์ 4 พันล้านเครื่องทั่วโลก เทคโนโลยี Widevine ช่วยให้มั่นใจในความเข้ากันได้กับ Android, iOS, Chrome และ Smart TV ทำให้บริการสตรีมมิ่งสามารถปกป้องเนื้อหาพรีเมียมบนทุกแพลตฟอร์ม

ประเด็นสำคัญ

  • Widevine — โซลูชัน DRM ของ Google สำหรับปกป้องวิดีโอในแอปพลิเคชันมือถือและเว็บ
  • สามระดับความปลอดภัย: L1 (การเข้ารหัสฮาร์ดแวร์), L2 (ซอฟต์แวร์), L3 (ปลอดภัยเฉพาะในคลาวด์)
  • CDM — Content Decryption Module, องค์ประกอบหลักสำหรับถอดรหัสเนื้อหา
  • การอนุญาตใช้สิทธิ์ จัดการผ่านเซิร์ฟเวอร์ใบอนุญาตของ Google ซึ่งออกคีย์สำหรับถอดรหัส
  • ความเข้ากันได้ กับ EME (Encrypted Media Extensions) ช่วยให้ทำงานในเบราว์เซอร์ใดก็ได้

Widevine คืออะไร?

Widevine เป็นเทคโนโลยี DRM ที่เป็นกรรมสิทธิ์ซึ่ง Google ซื้อกิจการในปี 2010 และได้กลายเป็นมาตรฐานโดยพฤตินัยสำหรับการปกป้องเนื้อหาวิดีโอในระบบนิเวศ Android บริการสตรีมมิ่งรายใหญ่ รวมถึง Netflix, Amazon Prime Video, Disney+ และ Hulu ใช้เพื่อป้องกันการคัดลอกและแจกจ่ายเนื้อหาโดยไม่ได้รับอนุญาต

Widevine รองรับการเข้ารหัส AES-128 CBC โดยใช้ คีย์เนื้อหา ที่ส่งไปยังอุปกรณ์ที่ได้รับอนุญาตผ่านช่องทางการอนุญาตใช้สิทธิ์ที่ปลอดภัยเท่านั้น ระบบให้การปกครองแบบครบวงจรตั้งแต่การเข้ารหัสบนเซิร์ฟเวอร์ไปจนถึงการถอดรหัสบนอุปกรณ์ของผู้ใช้

ประวัติและการพัฒนาของ Widevine

Widevine Technologies ก่อตั้งขึ้นในปี 1999 และเริ่มต้นพัฒนาโซลูชันสำหรับการปกป้องเนื้อหาบนแพลตฟอร์มโทรทัศน์เคเบิล หลังจากถูกซื้อกิจการโดย Google ในปี 2010 เทคโนโลยีได้รับการปรับให้เหมาะสมสำหรับ แพลตฟอร์มมือถือ และรวมเข้ากับระบบปฏิบัติการ Android ตั้งแต่เวอร์ชัน 4.4 KitKat ตั้งแต่ปี 2015 Widevine ได้กลายเป็นองค์ประกอบบังคับของการรับรอง Google Mobile Services

ในปี 2018 Google ได้เปิดตัว Widevine Modular DRM ซึ่งช่วยให้ผู้ผลิตอุปกรณ์สามารถใช้งานระดับการปกป้องที่แตกต่างกันด้วยฮาร์ดแวร์โดยไม่ต้องแก้ไขโค้ดระบบปฏิบัติการ ปัจจุบัน Widevine Modular รองรับบนอุปกรณ์มากกว่า 4 พันล้านเครื่องและเป็นกลไก DRM หลักบน Android

สถาปัตยกรรมของ Widevine

สถาปัตยกรรมของ Widevine ประกอบด้วยสามองค์ประกอบหลัก: Content Decryption Module (CDM), เซิร์ฟเวอร์ใบอนุญาต และเครื่องมือเข้ารหัสเนื้อหา CDM ดำเนินการถอดรหัสฝั่งไคลเอ็นต์และโต้ตอบกับ Trusted Execution Environment (TEE) ของฮาร์ดแวร์เพื่อจัดเก็บคีย์อย่างปลอดภัย

เซิร์ฟเวอร์ใบอนุญาตของ Google จัดการการออกคีย์ตามนโยบายของผู้ให้บริการเนื้อหา ซึ่งกำหนดข้อจำกัดด้านเวลา จำนวนอุปกรณ์ และคุณภาพการเล่น เครื่องมือเข้ารหัส เตรียมเนื้อหาฝั่งผู้ให้บริการ โดยบรรจุในรูปแบบ MPEG-DASH หรือ HLS ด้วยการเข้ารหัส CENC

Widevine DRM ทำงานอย่างไร?

กระบวนการปกป้อง เริ่มต้นในขั้นตอนการบรรจุเนื้อหา เมื่อไฟล์สื่อถูกเข้ารหัสโดยใช้คีย์เนื้อหาบนเซิร์ฟเวอร์ของผู้ให้บริการ สตรีมที่เข้ารหัสจะถูกส่งไปยังอุปกรณ์ของผู้ใช้ผ่าน CDM ซึ่ง CDM ขอใบอนุญาตจากเซิร์ฟเวอร์ใบอนุญาต

เซิร์ฟเวอร์ใบอนุญาตตรวจสอบความถูกต้องของอุปกรณ์และสิทธิ์ในการเข้าถึงเนื้อหา หากการตรวจสอบสำเร็จ เซิร์ฟเวอร์จะออก ใบอนุญาตพร้อมคีย์ ที่ CDM ใช้สำหรับการถอดรหัส ใบอนุญาตอาจมีข้อจำกัดเกี่ยวกับเวลาในการรับชมและความละเอียด

โปรโตคอลการแลกเปลี่ยนใบอนุญาต

การแลกเปลี่ยนใบอนุญาตใน Widevine ถูกใช้งานผ่านโปรโตคอล EME (Encrypted Media Extensions) ในเบราว์เซอร์หรือผ่าน SDK บนแพลตฟอร์มมือถือ คำขอใบอนุญาต ถูกสร้างโดย CDM และส่งไปยังเซิร์ฟเวอร์ใบอนุญาตผ่าน HTTPS ซึ่งให้การปกป้องจากการสกัดกั้นคีย์ระหว่างการส่ง

เซิร์ฟเวอร์ประมวลผลคำขอและส่งคืนใบอนุญาตที่เข้ารหัสซึ่งสามารถถอดรหัสได้โดย CDM ของอุปกรณ์เท่านั้น การผูกฮาร์ดแวร์ ของคีย์กับอุปกรณ์เฉพาะป้องกันการถ่ายโอนไปยังแพลตฟอร์มอื่น

การรองรับมาตรฐานการเข้ารหัส

Widevine ใช้มาตรฐาน Common Encryption (CENC) ที่กำหนดใน ISO/IEC 23001-7 เพื่อให้มั่นใจในความเข้ากันได้กับรูปแบบ MPEG-DASH และ HLS การเข้ารหัส AES-128 ในโหมด CTR หรือ CBC ใช้สำหรับปกป้องสตรีมสื่อ

สำหรับการสร้างคีย์ ใช้ HKDF (HMAC-based Key Derivation Function) ซึ่งช่วยให้สร้างคีย์ที่ไม่ซ้ำกันสำหรับแต่ละเซกเมนต์ของเนื้อหา การรองรับ HLS ใน Widevine ถูกเพิ่มในเวอร์ชัน Modular 2.0 ซึ่งขยายความเข้ากันได้กับแพลตฟอร์ม Apple

ตัวอย่างคำขอใบอนุญาตบน 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)
}

ระดับความปลอดภัยของ Widevine: L1, L2, L3

Widevine กำหนด สามระดับความปลอดภัยที่แตกต่างกันในวิธีการดำเนินการเข้ารหัสและการประมวลผลเนื้อหา ระดับ L1 ให้การปกป้องสูงสุด L3 ให้การปกป้องต่ำสุด และ L2 อยู่ในตำแหน่งกึ่งกลาง

ระดับประเภทการปกป้องข้อกำหนดของอุปกรณ์ความละเอียดสูงสุด
L1ฮาร์ดแวร์TEE ในระดับ SoC4K Ultra HD
L2ไฮบริดTEE สำหรับคีย์, ซอฟต์แวร์สำหรับวิดีโอ1080p
L3ซอฟต์แวร์CDM ซอฟต์แวร์เท่านั้น720p

ระดับ L1 — การเข้ารหัสฮาร์ดแวร์

ระดับ L1 ต้องการ Trusted Execution Environment (TEE) ในระดับฮาร์ดแวร์ ซึ่งดำเนินการเข้ารหัสทั้งหมด คีย์เนื้อหาไม่ออกจาก TEE เลย ป้องกันการสกัดแม้ว่าระบบปฏิบัติการหลักจะถูกบุกรุก

อุปกรณ์ที่ได้รับการรับรอง L1 สามารถเล่นเนื้อหาใน คุณภาพ 4K และ HDR เนื่องจากสตรีมวิดีโอที่ถอดรหัสแล้วถูกส่งไปยังเอาต์พุตวิดีโอที่ได้รับการปกป้องโดยตรงโดยไม่มีการเข้าถึงจากกระบวนการของผู้ใช้

ระดับ L3 — การเข้ารหัสซอฟต์แวร์

ระดับ L3 ดำเนินการเข้ารหัสทั้งหมดด้วยซอฟต์แวร์ภายในพื้นที่ผู้ใช้ปกติ นี่เป็นโหมดที่ปลอดภัยน้อยที่สุด ซึ่งคีย์สามารถถูกสกัดจาก RAM ของอุปกรณ์ได้

Widevine L3 จำกัดคุณภาพการเล่นที่ 720p ทำให้เหมาะสำหรับการรับชมบนอุปกรณ์ระดับล่างหรือเบราว์เซอร์เดสก์ท็อปที่ไม่มีการปกป้องฮาร์ดแวร์

การตรวจสอบระดับความปลอดภัยบนอุปกรณ์

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

การรวม Widevine ในแอปพลิเคชันมือถือ

การรวม Widevine ในแอปพลิเคชันมือถือดำเนินการผ่าน API มาตรฐาน MediaDrm (Android) และ AVContentKeySession (iOS) ในกรณีส่วนใหญ่ นักพัฒนาไม่จำเป็นต้องทำงานกับ DRM โดยตรง — ไลบรารีของผู้เล่นเช่น ExoPlayer และ AVPlayer จัดการการอนุญาตใช้สิทธิ์โดยอัตโนมัติ

การรวมบน Android

บน Android Widevine ถูกรวมผ่าน คลาส MediaDrm ซึ่งให้การเข้าถึง CDM โดยตรง สำหรับแอปพลิเคชันสตรีมมิ่ง แนะนำให้ใช้ ExoPlayer กับโมดูล DrmSessionManager ซึ่งจัดการคำขอใบอนุญาตโดยอัตโนมัติ

เมื่อเริ่มต้นผู้เล่น คุณต้องระบุ UUID สคีมา Widevine (`edef8ba9-79d6-4ace-a3c8-27dcd51d21ed`) และ URL เซิร์ฟเวอร์ใบอนุญาต ที่ผู้ให้บริการเนื้อหาให้ไว้ ExoPlayer จัดการวงจรการขอและต่ออายุใบอนุญาตโดยอัตโนมัติ

การกำหนดค่า ExoPlayer สำหรับ 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()

การรวมกับผู้เล่นเว็บ

บนแพลตฟอร์มเว็บ Widevine ทำงานผ่าน Media Source Extensions (MSE) และ Encrypted Media Extensions (EME) เบราว์เซอร์ที่ใช้ Chromium มี Widevine CDM ในตัว และนักพัฒนาเพียงแค่เริ่มต้นเซสชัน EME ด้วยการกำหนดค่าที่ถูกต้อง

ในการใช้ Widevine ในเบราว์เซอร์ คุณต้องระบุตัวเริ่มต้นใบอนุญาตด้วย ประเภท keySystem `com.widevine.alpha` หลังจากสร้างอินสแตนซ์ MediaKeys เบราว์เซอร์จะจัดการคำขอใบอนุญาตโดยอัตโนมัติ

การจัดการข้อผิดพลาดใบอนุญาต

เมื่อรวม Widevine สิ่งสำคัญคือต้องจัดการข้อผิดพลาดใบอนุญาตที่เกิดขึ้นเนื่องจากการขาดสิทธิ์เข้าถึง การหมดอายุการสมัครสมาชิก หรือความไม่เข้ากันของอุปกรณ์อย่างถูกต้อง ข้อผิดพลาด TYPE_EXPIRED_LICENSE ต้องการการอัปเดตใบอนุญาตผ่านการขอใหม่ไปยังเซิร์ฟเวอร์ ในขณะที่ TYPE_OUTPUT_NOT_ALLOWED บ่งชี้ถึงความไม่เข้ากันของเอาต์พุตวิดีโอกับนโยบาย DRM

แนะนำให้ใช้กลไกการลองใหม่ด้วย backoff แบบเอกซ์โพเนนเชียลสำหรับข้อผิดพลาดเครือข่ายชั่วคราวและแสดงข้อความที่ชัดเจนแก่ผู้ใช้เมื่อใบอนุญาตล้มเหลวถาวร การบันทึกข้อผิดพลาดเซสชัน DRM ช่วยให้ผู้ให้บริการเนื้อหาระบุปัญหาของอุปกรณ์และปรับนโยบายให้เหมาะสม

Widevine และ DRM ทางเลือก

Widevine แข่งขัน กับ FairPlay ของ Apple และ PlayReady ของ Microsoft โดยเป็นสามโซลูชัน DRM หลักในตลาดแพลตฟอร์มมือถือ แต่ละเทคโนโลยีมีข้อดีและข้อจำกัดของตนเองที่เกี่ยวข้องกับระบบนิเวศของแพลตฟอร์ม

การเปรียบเทียบโซลูชัน DRM

คุณลักษณะWidevineFairPlayPlayReady
ผู้พัฒนาGoogleAppleMicrosoft
แพลตฟอร์มหลักAndroid, ChromeiOS, tvOS, SafariWindows, Xbox, UWP
ระดับสูงสุดL1 (4K)เทียบเท่า L1 (4K)SL3000 (4K)
การปกป้องฮาร์ดแวร์TEESecure EnclaveTPM + TEE

การเลือก DRM สำหรับโปรเจกต์

การเลือก DRM ขึ้นอยู่กับแพลตฟอร์มเป้าหมายของแอปพลิเคชัน สำหรับโปรเจกต์ที่เน้น Android เป็นหลัก Widevine เป็นตัวเลือกตามธรรมชาติเนื่องจากถูกติดตั้งไว้ล่วงหน้าบนอุปกรณ์ที่ได้รับการรับรองทั้งหมดที่มี Google Mobile Services และไม่ต้องเสียค่าธรรมเนียมใบอนุญาตเพิ่มเติม

สำหรับโปรเจกต์ข้ามแพลตฟอร์ม มักใช้ แนวทางหลาย DRM กับตัวรวบรวมใบอนุญาตเช่น Axinom, EZDRM และ Vualto ซึ่งให้ API ที่เป็นหนึ่งเดียวสำหรับทำงานกับทั้งสามระบบ DRM ซึ่งช่วยลดความซับซ้อนในการรวมและรวมศูนย์การจัดการใบอนุญาต

คำถามที่พบบ่อย

Widevine DRM คืออะไร?

Widevine เป็นเทคโนโลยี DRM ของ Google ที่ออกแบบมาเพื่อปกป้องเนื้อหาวิดีโอดิจิทัลจากการคัดลอกโดยไม่ได้รับอนุญาต บริการสตรีมมิ่งใช้เพื่อเข้ารหัสวิดีโอและจัดการการเข้าถึงผ่านระบบใบอนุญาต

Widevine มีระดับความปลอดภัยอะไรบ้าง?

Widevine รองรับ สามระดับความปลอดภัย: L1 ด้วยการเข้ารหัสฮาร์ดแวร์ใน TEE, L2 ด้วยแนวทางไฮบริด และ L3 ด้วยการใช้งานซอฟต์แวร์ทั้งหมด L1 อนุญาตให้เล่นเนื้อหา 4K, L3 จำกัดที่คุณภาพ 720p

วิธีตรวจสอบระดับ Widevine บน Android?

คุณสามารถตรวจสอบระดับ Widevine บน Android ผ่าน คลาส MediaDrm โดยขอคุณสมบัติ securityLevel โดยสร้างอินสแตนซ์ MediaDrm ด้วย UUID ของ Widevine และเรียก getPropertyString หรือใช้แอปของบุคคลที่สามเช่น DRM Info

Widevine แตกต่างจาก FairPlay อย่างไร?

Widevine พัฒนาโดย Google สำหรับ Android และ Chrome ในขณะที่ FairPlay สำหรับ iOS, tvOS และ Safari ทั้งคู่รองรับการเข้ารหัสฮาร์ดแวร์และ 4K แต่ Widevine แพร่หลายมากกว่าบนอุปกรณ์ Android ในขณะที่ FairPlay เป็นมาตรฐานโดยพฤตินัยในระบบนิเวศ Apple

ต้องมีใบอนุญาตในการใช้ Widevine หรือไม่?

ในการใช้ Widevine ในแอปพลิเคชันมือถือ ไม่จำเป็นต้องมีใบอนุญาตแยกต่างหาก — เทคโนโลยีนี้มีอยู่ในอุปกรณ์ Android ที่ได้รับการรับรองและ Chrome ค่าธรรมเนียมจะเรียกเก็บจากผู้ให้บริการเนื้อหาสำหรับการใช้เซิร์ฟเวอร์ใบอนุญาตเท่านั้น

สรุป

  • Widevine เป็นกลไก DRM หลักบน Android ที่ให้การปกป้องเนื้อหาวิดีโอผ่านการเข้ารหัสฮาร์ดแวร์หรือซอฟต์แวร์
  • สามระดับความปลอดภัย L1, L2, L3 กำหนดคุณภาพการเล่นสูงสุดและระดับการปกป้องคีย์
  • CDM (Content Decryption Module) ดำเนินการถอดรหัสเนื้อหาฝั่งไคลเอ็นต์โดยใช้คีย์ใบอนุญาต
  • การรวม ดำเนินการผ่าน ExoPlayer, MediaDrm บน Android และ EME บนแพลตฟอร์มเว็บ
  • สำหรับ iOS ต้องใช้ FairPlay ซึ่งทำให้แนวทางหลาย DRM จำเป็นสำหรับโปรเจกต์ข้ามแพลตฟอร์ม
  • Widevine Modular รองรับการเข้ารหัส CENC และเข้ากันได้กับรูปแบบ MPEG-DASH และ HLS
  • เซิร์ฟเวอร์ใบอนุญาตของ Google จัดการการเข้าถึงเนื้อหาตามนโยบายที่ผู้ให้บริการเนื้อหากำหนด

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม