Try Free
← กลับไปที่บล็อก

DRM ทำงานอย่างไร: ทำไมถึงดาวน์โหลดวิดีโอสตรีมมิ่งไม่ได้ (อธิบายเชิงเทคนิค)

คุณเคยเจอเหตุการณ์แบบนี้ไหม? เจอวิดีโอดีๆ บน Netflix, YouTube Premium หรือแพลตฟอร์มสตรีมมิ่งอื่น แล้วพยายามบันทึก — แต่ทุกวิธีล้มเหลวหมด yt-dlp ขึ้น error การบันทึกหน้าจอได้แต่หน้าจอดำ เว็บดาวน์โหลดออนไลน์ให้ไฟล์ที่เปิดไม่ได้เลย

นี่ไม่ใช่ bug แต่เป็นสิ่งที่ออกแบบมาให้เป็นอย่างนั้น

เทคโนโลยีที่อยู่เบื้องหลังเรียกว่า DRM หรือ Digital Rights Management (การจัดการสิทธิ์ดิจิทัล) การเข้าใจว่ามันทำงานอย่างไรจริงๆ จะอธิบายได้ว่าทำไมเครื่องมือดาวน์โหลดส่วนใหญ่ถึงล้มเหลว ทำไมการบันทึกหน้าจอถึงดำ และต้องใช้อะไรถึงจะจัดการเนื้อหาประเภทนี้ได้อย่างถูกต้อง

DRM คืออะไรกันแน่

DRM คือชุดเทคโนโลยีที่ควบคุมวิธีการเข้าถึง คัดลอก และเล่นเนื้อหาดิจิทัล มีมาในรูปแบบต่างๆ ตั้งแต่ปลายทศวรรษ 1990 แต่เวอร์ชันที่สำคัญต่อการสตรีมวิดีโอในปัจจุบันคือมาตรฐานที่ชื่อ Widevine ซึ่งพัฒนาโดยบริษัทที่ Google เข้าซื้อกิจการในปี 2010

Widevine ถูกฝังอยู่ใน Chrome, Firefox, Edge และอุปกรณ์ Android ส่วนใหญ่ เมื่อบริการสตรีมมิ่งอย่าง Netflix ต้องการปกป้องเนื้อหา พวกเขาไม่ได้ส่งกล่องล็อคให้คุณแล้วบอกว่าต้องใช้กุญแจ แต่กลไกนี้ dynamic กว่านั้น — และซับซ้อนกว่ามาก

ต่อไปนี้คือเวอร์ชันอธิบายแบบง่ายว่าเกิดอะไรขึ้นจริงๆ เมื่อคุณกดเล่นบนแพลตฟอร์มสตรีมมิ่ง

กระบวนการเล่นวิดีโอด้วย DRM ทีละขั้นตอน

ขั้นตอนที่ 1: คุณขอวิดีโอ

คุณกดเล่น เบราว์เซอร์ส่งคำขอไปยังเซิร์ฟเวอร์เนื้อหาของบริการสตรีมมิ่งเพื่อขอวิดีโอ

ขั้นตอนที่ 2: การขอใบอนุญาต

ก่อนที่ข้อมูลวิดีโอใดๆ จะถูกส่ง เบราว์เซอร์ของคุณจะส่งคำขอแยกต่างหากไปยัง เซิร์ฟเวอร์ใบอนุญาต ซึ่งดำเนินการโดยแพลตฟอร์มสตรีมมิ่ง (Netflix, YouTube, Disney+ ฯลฯ) คำขอนั้นบอกโดยสรุปว่า: "ฉันมีผู้ใช้ที่ต้องการเล่นวิดีโอนี้ พวกเขาใช้อุปกรณ์นี้ เบราว์เซอร์นี้ Widevine เวอร์ชันนี้ ได้ไหม?"

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

ขั้นตอนที่ 3: ใบอนุญาตถูกออก (หรือถูกปฏิเสธ)

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

  • ผูกกับอุปกรณ์และเซสชันเฉพาะของคุณ
  • มีระยะเวลาจำกัด (มักหมดอายุเมื่อเซสชันสิ้นสุด)
  • ไม่เคยเปิดเผยให้ JavaScript หรือโค้ดใดๆ ที่ทำงานบนหน้าเว็บเห็นโดยตรง

ขั้นตอนที่ 4: วิดีโอที่เข้ารหัสส่งมา

ตัววิดีโอเองเดินทางผ่านเครือข่ายในรูปแบบส่วนที่เข้ารหัส โดยปกติใช้โปรโตคอล DASH (Dynamic Adaptive Streaming over HTTP) หรือ HLS ที่มีการเข้ารหัส AES-128 ทุกส่วนของวิดีโอที่คุณได้รับถูกทำให้ยุ่งเหยิง — เล่นไม่ได้หากไม่มีกุญแจ

ขั้นตอนที่ 5: การถอดรหัสเกิดขึ้นในสภาพแวดล้อมที่ได้รับการปกป้อง

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

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

ทำไมเครื่องมือดาวน์โหลดส่วนใหญ่ถึงล้มเหลว

เมื่อ yt-dlp, extension เบราว์เซอร์ หรือเว็บดาวน์โหลดออนไลน์พยายามดึงวิดีโอสตรีมมิ่ง มันกำลังพยายามดักจับสตรีมวิดีโอที่จุดใดจุดหนึ่งในห่วงโซ่นี้ มาดูกันว่าแต่ละแนวทางล้มเหลวที่ไหน

ดักจับสตรีมเครือข่าย

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

นี่คือรูปแบบความล้มเหลวที่พบบ่อยที่สุด คุณได้ไฟล์มา — แต่มันไม่เล่นอะไรเลย

ดักจับ element วิดีโอ

เครื่องมือบางตัวพยายามดึงวิดีโอจาก HTML element <video> โดยใช้ JavaScript สำหรับเนื้อหา DRM วิธีนี้ไม่ทำงาน แหล่ง media คือ object MediaKeySession — ไบต์วิดีโอจริงๆ ไม่เคยถูกเปิดเผยให้ JavaScript เห็นเลย ไม่มีอะไรให้ script ดักจับ

ใช้ CDM โดยตรง

Content Decryption Module (CDM) — ซอฟต์แวร์ Widevine ตัวจริง — คือกล่องดำ บน Windows มันถูก implement เป็นไฟล์ .dll (widevinecdm.dll) ที่ลงนามด้วย cryptographic โดย Google มันไม่ทำงานในสภาพแวดล้อมที่ถูกแก้ไข ตรวจสอบความสมบูรณ์ของตัวเองเมื่อเริ่มต้น และออกแบบมาเป็นพิเศษเพื่อต้านทานการทำ reverse engineering

กุญแจที่มันประมวลผลไม่เคยปรากฏในหน่วยความจำในรูปแบบที่ซอฟต์แวร์ภายนอกอ่านได้ — มันเข้าไปใน TEE โดยตรง

ทำไมการบันทึกหน้าจอถึงได้หน้าจอดำ

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

คำตอบคือ Widevine Security Level L1

Widevine กำหนด 3 ระดับความปลอดภัย:

ระดับ สถานที่ถอดรหัส บล็อกการจับภาพหน้าจอ?
L1 ฮาร์ดแวร์ TEE (CPU/GPU secure enclave) ใช่ — เส้นทางเอาต์พุตได้รับการปกป้อง
L2 ฮาร์ดแวร์ TEE สำหรับ crypto, ซอฟต์แวร์สำหรับประมวลผล บางส่วน
L3 ซอฟต์แวร์เท่านั้น ไม่มีการปกป้องฮาร์ดแวร์

ในระบบ L1 — ซึ่งรวมถึง Windows PC สมัยใหม่และ Mac ที่รัน Chrome ส่วนใหญ่ — เฟรมวิดีโอที่ถอดรหัสแล้วถูกส่งตรงไปยัง display controller ผ่านเส้นทางเอาต์พุตที่ได้รับการปกป้อง API การจับภาพหน้าจอของระบบปฏิบัติการ (ที่ OBS, Bandicam หรือโปรแกรมบันทึกในตัวของ Windows ใช้) จับ composited display buffer แต่วิดีโอ DRM แสดงผลในชั้นที่ได้รับการปกป้องแยกต่างหากซึ่งไม่ปรากฏใน buffer นั้น

สิ่งที่คุณเห็นในการบันทึก: สี่เหลี่ยมผืนผ้าสีดำตรงที่วิดีโออยู่ ส่วนที่เหลือของหน้าจอบันทึกได้ปกติ

Netflix, Disney+ และ YouTube Premium กำหนดให้เล่นในระดับ L1 บน Chrome บนเดสก์ท็อปอย่างชัดเจน นั่นคือเหตุผลที่วิธีแก้ปัญหาด้วยการบันทึกหน้าจอที่อาจเคยใช้ได้เมื่อไม่กี่ปีที่แล้ว โดยทั่วไปไม่ได้ผลอีกต่อไปกับฮาร์ดแวร์สมัยใหม่

(หมายเหตุ: ฮาร์ดแวร์รุ่นเก่าบางตัวรัน Widevine ในโหมดซอฟต์แวร์ L3 ซึ่งไม่มีการปกป้องเส้นทางเอาต์พุตฮาร์ดแวร์ แต่กรณีนี้กำลังหายากขึ้นเรื่อยๆ เมื่อเครื่องรุ่นเก่าหมดอายุ)

VidBrowser จัดการเนื้อหา DRM อย่างไร

VidBrowser ใช้แนวทางที่แตกต่างจากเครื่องมือทั้งหมดที่กล่าวมาข้างต้น แทนที่จะพยายามดักจับสตรีมจากภายนอก มันทำงานในฐานะ เบราว์เซอร์ที่ได้รับอนุญาตเต็มรูปแบบ ที่เข้าร่วมกระบวนการ DRM อย่างถูกกฎหมาย

เมื่อคุณเล่นวิดีโอ YouTube Premium หรือตอนของ Netflix ใน VidBrowser วงจรการขอใบอนุญาตทั้งหมดจะเสร็จสมบูรณ์ตามปกติ บัญชีของคุณได้รับการตรวจสอบ ใบอนุญาตถูกออก การถอดรหัสเกิดขึ้นใน TEE VidBrowser ไม่พยายามดักจับสตรีมที่เข้ารหัสหรือทำลาย CDM

การบันทึกเนื้อหาเกิดขึ้นในขั้นตอนหนึ่งใน pipeline การเล่นที่ได้รับอนุญาต ซึ่ง VidBrowser ในฐานะตัวเบราว์เซอร์เอง มีสิทธิ์เข้าถึง output ที่แสดงผลอย่างถูกต้อง — ไม่ใช่โดยการเลี่ยง DRM แต่โดยเป็น endpoint ที่ได้รับอนุญาตในการเล่น

ผลในทางปฏิบัติ: เนื้อหาที่ได้รับการปกป้องด้วย DRM จาก Netflix, Disney+, Amazon Prime Video, YouTube Premium, OnlyFans และแพลตฟอร์มอื่นๆ สามารถบันทึกในเครื่อง เล่นได้ในโปรแกรมเล่นวิดีโอมาตรฐาน โดยไม่ต้องใช้เครื่องมือภายนอก กุญแจ หรือซอฟต์แวร์ที่ถูกดัดแปลงใดๆ

ดาวน์โหลด VidBrowser ฟรี เพื่อลองใช้กับแพลตฟอร์มที่เครื่องมืออื่นทุกตัวล้มเหลว

สิ่งที่ DRM ป้องกันไม่ได้

เพื่อความครบถ้วน: DRM ออกแบบมาเป็นพิเศษเพื่อป้องกันการคัดลอกดิจิทัลของสตรีมเนื้อหา แต่มันป้องกันไม่ได้:

  • การถ่ายภาพหน้าจอ ด้วยกล้องโทรศัพท์ (คุณภาพต่ำชัดเจน)
  • การจับภาพแบบ analog — การ์ด HDMI capture ที่จับก่อนการเข้ารหัส HDCP (แม้ว่าแพลตฟอร์มอาจตรวจจับและบล็อกได้ในบางการตั้งค่า)
  • การจำว่าคุณดูอะไร (ยังถูกกฎหมายในเขตอำนาจส่วนใหญ่)

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

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

ทุกบริการสตรีมมิ่งใช้ Widevine หรือไม่?

ส่วนใหญ่บนเดสก์ท็อปใช้ Netflix, YouTube, Disney+, Amazon Prime, HBO Max/Max และ Hulu ใช้ Widevine บนเบราว์เซอร์ที่ใช้ Chrome แพลตฟอร์มของ Apple ใช้ระบบอื่นที่เรียกว่า FairPlay แพลตฟอร์มบางส่วนใช้ PlayReady ของ Microsoft VidBrowser รองรับแพลตฟอร์มที่ใช้ Widevine ซึ่งเป็นตัวแทนเนื้อหาสตรีมมิ่งส่วนใหญ่

VPN ช่วยเลี่ยง DRM ได้ไหม?

VPN ส่งทราฟฟิกของคุณผ่านตำแหน่งอื่น ซึ่งช่วยกับข้อจำกัดการอนุญาตสิทธิ์ทางภูมิศาสตร์ได้ (เนื้อหาที่มีในประเทศหนึ่งแต่ไม่มีในอีกประเทศ) แต่ไม่มีผลต่อการเข้ารหัส DRM เอง — เนื้อหายังคงเข้ารหัสอยู่ไม่ว่าทราฟฟิกของคุณจะดูเหมือนมาจากที่ไหน

ถ้าวิดีโออยู่บนหน้าจอฉันแล้ว ทำไมจับภาพไม่ได้?

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

yt-dlp ผิดกฎหมายไหม?

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

Netflix รู้ได้อย่างไรว่าจะส่ง L1 หรือ L3?

เบราว์เซอร์ของคุณส่ง capabilities handshake ระหว่างการขอใบอนุญาตซึ่งรวมถึงระดับความปลอดภัย Widevine ของคุณ เซิร์ฟเวอร์ใบอนุญาตสามารถเลือกออกใบอนุญาตที่กำหนดระดับความปลอดภัยขั้นต่ำ — และสามารถปฏิเสธการเล่นทั้งหมดบนอุปกรณ์ที่ไม่ตรงตามข้อกำหนด นี่คือเหตุผลที่คุณภาพวิดีโอ Netflix ถูกจำกัดที่ 720p ใน Firefox (ซึ่งไม่รองรับ Widevine L1) แต่เล่นที่ 1080p หรือ 4K ใน Chrome

บล็อกเพิ่มเติม