Widevine: ما هي، DRM ومستويات الأمان

المؤلف: IT Sectr نُشر: 2026-05-24 وقت القراءة: 8 دق

Widevine هي تقنية DRM طورتها Google لحماية محتوى الفيديو من النسخ غير المصرح به على الأجهزة المحمولة وأجهزة التلفاز الذكية والمنصات الويب. يتم تشفير المحتوى من خلال وحدة CDM، المدعومة على 4 مليارات جهاز حول العالم. تقنية Widevine تضمن التوافق مع Android و iOS و Chrome و Smart TV، مما يسمح لخدمات البث بحماية المحتوى المتميز على أي منصة.

أهم النقاط

  • Widevine — حل DRM من Google لحماية الفيديو في تطبيقات الجوال والويب.
  • ثلاثة مستويات أمان: L1 (تشفير عتادي)، L2 (برمجي)، L3 (آمن فقط في السحابة).
  • CDM — وحدة فك تشفير المحتوى، المكون الرئيسي لفك تشفير المحتوى.
  • الترخيص يُدار عبر خادم تراخيص 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 من ثلاثة مكونات رئيسية: وحدة فك تشفير المحتوى (CDM)، وخادم التراخيص، وأداة تشفير المحتوى. CDM تقوم بفك التشفير من جانب العميل وتتفاعل مع بيئة التنفيذ الموثوقة (TEE) العتادية للتخزين الآمن للمفاتيح.

يدير خادم تراخيص Google إصدار المفاتيح بناءً على سياسات مزود المحتوى، والتي تحدد قيوداً على الوقت وعدد الأجهزة وجودة التشغيل. أداة التشفير تحضر المحتوى من جانب المزود، وتعبئته بتنسيق MPEG-DASH أو HLS مع تشفير CENC.

كيف يعمل Widevine DRM؟

عملية الحماية تبدأ في مرحلة تعبئة المحتوى، عندما يتم تشفير ملف الوسائط باستخدام مفتاح محتوى على خادم المزود. يُنقل التدفق المشفر إلى جهاز المستخدم عبر CDN، حيث تطلب CDM ترخيصاً من خادم التراخيص.

يتحقق خادم التراخيص من صحة الجهاز وحق الوصول إلى المحتوى. إذا نجح التحقق، يصدر الخادم ترخيصاً بمفتاح تستخدمه CDM لفك التشفير. قد يحتوي الترخيص على قيود على وقت المشاهدة والدقة.

بروتوكول تبادل التراخيص

يتم تبادل التراخيص في Widevine عبر بروتوكول EME (Encrypted Media Extensions) في المتصفحات أو عبر SDK على المنصات المحمولة. طلب الترخيص يتم إنشاؤه بواسطة CDM وإرساله إلى خادم التراخيص عبر HTTPS، مما يضمن الحماية ضد اعتراض المفاتيح أثناء النقل.

يعالج الخادم الطلب ويعيد ترخيصاً مشفراً أيضاً لا يمكن فك تشفيره إلا بواسطة CDM الجهاز. الربط العتادي للمفتاح بجهاز معين يمنع نقله إلى منصات أخرى.

دعم معايير التشفير

تستخدم Widevine معايير التشفير المشترك (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 يتطلب بيئة تنفيذ موثوقة (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.

يُوصى بتنفيذ آلية إعادة محاولة مع تأخير تصاعدي للأخطاء الشبكية المؤقتة وعرض رسالة واضحة للمستخدم عند فشل التراخيص الدائم. تسجيل أخطاء جلسات 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 ولا يتطلب رسوم ترخيص إضافية.

للمشاريع عبر المنصات، غالباً ما يُستخدم نهج multi-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، مما يجعل نهج multi-DRM ضرورياً للمشاريع عبر المنصات.
  • Widevine Modular يدعم تشفير CENC ومتوافق مع تنسيقي MPEG-DASH و HLS.
  • خادم تراخيص Google يدير الوصول إلى المحتوى بناءً على سياسات يحددها مزود المحتوى.

سنقوم بتطوير تطبيق جوال جاهز

تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.

مناقشة المشروع

اقرأ أيضًا