Widevine Google द्वारा विकसित एक DRM तकनीक है जो मोबाइल डिवाइस, स्मार्ट TV और वेब प्लेटफ़ॉर्म पर वीडियो सामग्री को अनधिकृत कॉपी से बचाती है। सामग्री एन्क्रिप्शन CDM मॉड्यूल के माध्यम से किया जाता है, जो दुनिया भर में 4 बिलियन उपकरणों पर समर्थित है। Widevine तकनीक Android, iOS, Chrome और स्मार्ट TV के साथ संगतता सुनिश्चित करती है, जिससे स्ट्रीमिंग सेवाएँ किसी भी प्लेटफ़ॉर्म पर प्रीमियम सामग्री की रक्षा कर सकती हैं।
मुख्य बिंदु
Widevine एक मालिकाना DRM तकनीक है जिसे Google ने 2010 में अधिग्रहित किया और यह Android इकोसिस्टम में वीडियो सामग्री की सुरक्षा के लिए डी-फैक्टो मानक बन गई है। इसका उपयोग प्रमुख स्ट्रीमिंग सेवाओं, जिनमें Netflix, Amazon Prime Video, Disney+ और Hulu शामिल हैं, द्वारा सामग्री की अनधिकृत कॉपी और वितरण को रोकने के लिए किया जाता है।
Widevine सामग्री कुंजियों का उपयोग करके AES-128 CBC एन्क्रिप्शन का समर्थन करती है जो केवल अधिकृत उपकरणों को एक सुरक्षित लाइसेंसिंग चैनल के माध्यम से प्रेषित की जाती हैं। सिस्टम सर्वर पर एन्क्रिप्शन से लेकर उपयोगकर्ता के डिवाइस पर डिकोडिंग तक एंड-टू-एंड सुरक्षा प्रदान करता है।
Widevine Technologies की स्थापना 1999 में हुई थी और इसने मूल रूप से केबल टेलीविज़न प्लेटफ़ॉर्म पर सामग्री सुरक्षा के लिए समाधान विकसित किए। 2010 में Google द्वारा अधिग्रहण के बाद, तकनीक को मोबाइल प्लेटफ़ॉर्म के लिए अनुकूलित किया गया और संस्करण 4.4 KitKat से शुरू करके Android OS में एकीकृत किया गया। 2015 से, Widevine Google Mobile Services प्रमाणन का एक अनिवार्य घटक बन गया है।
2018 में, Google ने Widevine Modular DRM पेश किया, जिसने डिवाइस निर्माताओं को OS कोड को संशोधित किए बिना हार्डवेयर में विभिन्न सुरक्षा स्तरों को लागू करने की अनुमति दी। आज, Widevine Modular 4 बिलियन से अधिक उपकरणों पर समर्थित है और Android पर प्राथमिक DRM तंत्र है।
Widevine आर्किटेक्चर में तीन प्रमुख घटक शामिल हैं: Content Decryption Module (CDM), लाइसेंस सर्वर, और सामग्री एन्क्रिप्शन टूल। CDM क्लाइंट पक्ष पर डिक्रिप्शन करता है और सुरक्षित कुंजी भंडारण के लिए हार्डवेयर Trusted Execution Environment (TEE) के साथ इंटरैक्ट करता है।
Google लाइसेंस सर्वर सामग्री प्रदाता की नीतियों के आधार पर कुंजी जारी करने का प्रबंधन करता है, जो समय, उपकरणों की संख्या और प्लेबैक गुणवत्ता पर प्रतिबंध निर्धारित करती हैं। एन्क्रिप्शन टूल प्रदाता पक्ष पर सामग्री तैयार करता है, इसे CENC एन्क्रिप्शन के साथ MPEG-DASH या HLS प्रारूप में पैकेज करता है।
सुरक्षा प्रक्रिया सामग्री पैकेजिंग चरण से शुरू होती है, जब मीडिया फ़ाइल को प्रदाता के सर्वर पर एक सामग्री कुंजी का उपयोग करके एन्क्रिप्ट किया जाता है। एन्क्रिप्टेड स्ट्रीम CDN के माध्यम से उपयोगकर्ता के डिवाइस पर प्रेषित की जाती है, जहाँ CDM लाइसेंस सर्वर से लाइसेंस का अनुरोध करता है।
लाइसेंस सर्वर डिवाइस की प्रामाणिकता और सामग्री तक पहुँच के अधिकार को सत्यापित करता है। यदि जाँच सफल होती है, तो सर्वर एक कुंजी के साथ लाइसेंस जारी करता है जिसका उपयोग CDM डिक्रिप्शन के लिए करता है। लाइसेंस में देखने के समय और रिज़ॉल्यूशन पर प्रतिबंध हो सकते हैं।
Widevine में लाइसेंस विनिमय ब्राउज़रों में EME (Encrypted Media Extensions) प्रोटोकॉल या मोबाइल प्लेटफ़ॉर्म पर SDK के माध्यम से कार्यान्वित किया जाता है। लाइसेंस अनुरोध CDM द्वारा उत्पन्न किया जाता है और HTTPS के माध्यम से लाइसेंस सर्वर को भेजा जाता है, जो ट्रांज़िट में कुंजी अवरोधन से सुरक्षा सुनिश्चित करता है।
सर्वर अनुरोध को संसाधित करता है और एक लाइसेंस लौटाता है जो भी एन्क्रिप्टेड होता है और केवल डिवाइस के CDM द्वारा ही डिक्रिप्ट किया जा सकता है। किसी विशिष्ट डिवाइस के साथ कुंजी का हार्डवेयर बंधन इसे अन्य प्लेटफ़ॉर्म पर स्थानांतरित होने से रोकता है।
Widevine ISO/IEC 23001-7 में परिभाषित Common Encryption (CENC) मानकों का उपयोग करता है, जो MPEG-DASH और HLS प्रारूपों के साथ संगतता सुनिश्चित करता है। मीडिया स्ट्रीम की सुरक्षा के लिए CTR या CBC मोड में AES-128 एन्क्रिप्शन का उपयोग किया जाता है।
कुंजी व्युत्पत्ति के लिए HKDF (HMAC-based Key Derivation Function) का उपयोग किया जाता है, जो सामग्री के प्रत्येक खंड के लिए अद्वितीय कुंजी उत्पन्न करने की अनुमति देता है। HLS समर्थन Modular संस्करण 2.0 के साथ Widevine में जोड़ा गया, जिसने Apple प्लेटफ़ॉर्म के साथ संगतता का विस्तार किया।
@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 अधिकतम सुरक्षा प्रदान करता है, L3 न्यूनतम, और L2 मध्यवर्ती स्थान रखता है।
| स्तर | सुरक्षा प्रकार | डिवाइस आवश्यकताएँ | अधिकतम रिज़ॉल्यूशन |
|---|---|---|---|
| L1 | हार्डवेयर | SoC स्तर पर TEE | 4K Ultra HD |
| L2 | हाइब्रिड | कुंजियों के लिए TEE, वीडियो के लिए सॉफ़्टवेयर | 1080p |
| L3 | सॉफ़्टवेयर | केवल सॉफ़्टवेयर CDM | 720p |
स्तर L1 के लिए हार्डवेयर स्तर पर Trusted Execution Environment (TEE) की आवश्यकता होती है, जहाँ सभी क्रिप्टोग्राफ़िक संचालन किए जाते हैं। सामग्री कुंजियाँ कभी TEE नहीं छोड़ती हैं, जो मुख्य OS से समझौता होने पर भी उनके निष्कर्षण को रोकती हैं।
L1 प्रमाणन वाले उपकरण 4K गुणवत्ता और HDR में सामग्री चला सकते हैं, क्योंकि डिक्रिप्टेड वीडियो स्ट्रीम उपयोगकर्ता प्रक्रियाओं की पहुँच के बिना सीधे संरक्षित वीडियो आउटपुट पर भेजी जाती है।
स्तर L3 सामान्य उपयोगकर्ता स्पेस में सभी क्रिप्टोग्राफ़िक संचालन सॉफ़्टवेयर में करता है। यह सबसे कम सुरक्षित मोड है, जहाँ कुंजियाँ डिवाइस की RAM से निकाली जा सकती हैं।
Widevine L3 प्लेबैक गुणवत्ता को 720p तक सीमित करता है, जो इसे निम्न-स्तरीय उपकरणों या हार्डवेयर सुरक्षा के बिना डेस्कटॉप ब्राउज़रों पर देखने के लिए उपयुक्त बनाता है।
fun getSecurityLevel(): String {
val mediaDrm = MediaDrm(UUID.fromString(
"edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"
))
val level = mediaDrm.getPropertyString(
"securityLevel"
)
return level.ifEmpty { "L3" }
}
मोबाइल एप्लिकेशन में Widevine का एकीकरण मानक MediaDrm (Android) और AVContentKeySession (iOS) API के माध्यम से किया जाता है। अधिकांश मामलों में, डेवलपर को सीधे DRM के साथ काम करने की आवश्यकता नहीं होती — ExoPlayer और AVPlayer जैसी प्लेयर लाइब्रेरीज़ स्वचालित रूप से लाइसेंसिंग संभालती हैं।
Android पर, Widevine MediaDrm क्लास के माध्यम से एकीकृत होता है, जो CDM तक सीधी पहुँच प्रदान करता है। स्ट्रीमिंग एप्लिकेशन के लिए, DrmSessionManager मॉड्यूल के साथ ExoPlayer का उपयोग करने की अनुशंसा की जाती है, जो स्वचालित रूप से लाइसेंस अनुरोधों का प्रबंधन करता है।
प्लेयर को आरंभ करते समय, Widevine स्कीम UUID (`edef8ba9-79d6-4ace-a3c8-27dcd51d21ed`) और सामग्री प्रदाता द्वारा प्रदान किया गया लाइसेंस सर्वर URL निर्दिष्ट करना आवश्यक है। ExoPlayer स्वचालित रूप से लाइसेंस अनुरोध और नवीनीकरण चक्र को संभालता है।
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 प्रतिस्पर्धा करता है Apple के FairPlay और Microsoft के PlayReady से, मोबाइल प्लेटफ़ॉर्म बाज़ार में तीन मुख्य DRM समाधान बनाते हुए। प्रत्येक तकनीक के अपने फायदे और सीमाएँ हैं जो प्लेटफ़ॉर्म इकोसिस्टम से संबंधित हैं।
| विशेषता | Widevine | FairPlay | PlayReady |
|---|---|---|---|
| डेवलपर | Apple | Microsoft | |
| प्राथमिक प्लेटफ़ॉर्म | Android, Chrome | iOS, tvOS, Safari | Windows, Xbox, UWP |
| अधिकतम स्तर | L1 (4K) | L1 के समतुल्य (4K) | SL3000 (4K) |
| हार्डवेयर सुरक्षा | TEE | Secure Enclave | TPM + TEE |
DRM चयन एप्लिकेशन के लक्षित प्लेटफ़ॉर्म पर निर्भर करता है। Android-प्रथम परियोजनाओं के लिए, Widevine स्वाभाविक विकल्प है क्योंकि यह Google Mobile Services वाले सभी प्रमाणित उपकरणों पर पूर्व-स्थापित आता है और इसके लिए कोई अतिरिक्त लाइसेंस शुल्क नहीं लगता।
क्रॉस-प्लेटफ़ॉर्म परियोजनाओं के लिए, अक्सर मल्टी-DRM दृष्टिकोण का उपयोग किया जाता है जिसमें Axinom, EZDRM और Vualto जैसे लाइसेंस एग्रीगेटर का उपयोग होता है, जो तीनों DRM प्रणालियों के साथ काम करने के लिए एकीकृत API प्रदान करते हैं। यह एकीकरण जटिलता को कम करता है और लाइसेंस प्रबंधन को केंद्रीकृत करता है।
अक्सर पूछे जाने वाले प्रश्न
Widevine Google की एक DRM तकनीक है जो डिजिटल वीडियो सामग्री को अनधिकृत कॉपी से बचाने के लिए डिज़ाइन की गई है। इसका उपयोग स्ट्रीमिंग सेवाओं द्वारा वीडियो को एन्क्रिप्ट करने और लाइसेंसिंग प्रणाली के माध्यम से पहुँच प्रबंधित करने के लिए किया जाता है।
Widevine तीन सुरक्षा स्तरों का समर्थन करता है: TEE में हार्डवेयर एन्क्रिप्शन के साथ L1, हाइब्रिड दृष्टिकोण के साथ L2, और पूरी तरह से सॉफ़्टवेयर कार्यान्वयन के साथ L3। L1 4K सामग्री प्लेबैक की अनुमति देता है, L3 720p गुणवत्ता तक सीमित है।
आप MediaDrm क्लास के माध्यम से securityLevel प्रॉपर्टी का अनुरोध करके Android पर Widevine स्तर की जाँच कर सकते हैं। इसके लिए, Widevine UUID के साथ MediaDrm इंस्टेंस बनाएँ और getPropertyString कॉल करें, या DRM Info जैसे तृतीय-पक्ष एप्लिकेशन का उपयोग करें।
Widevine Google द्वारा Android और Chrome के लिए विकसित किया गया है, जबकि FairPlay iOS, tvOS और Safari के लिए है। दोनों हार्डवेयर एन्क्रिप्शन और 4K का समर्थन करते हैं, लेकिन Widevine Android उपकरणों पर अधिक व्यापक है, जबकि FairPlay Apple इकोसिस्टम में डी-फैक्टो मानक है।
मोबाइल एप्लिकेशन में Widevine का उपयोग करने के लिए कोई अलग लाइसेंस आवश्यक नहीं है — तकनीक प्रमाणित Android उपकरणों और Chrome में निर्मित होती है। शुल्क केवल सामग्री प्रदाताओं से लाइसेंस सर्वर के उपयोग के लिए लिया जाता है।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें