Widevine: τι είναι, DRM και επίπεδα ασφαλείας

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-05-24 Χρόνος ανάγνωσης: 8 λεπ

Widevine — μια τεχνολογία DRM που αναπτύχθηκε από την Google για την προστασία περιεχομένου βίντεο από μη εξουσιοδοτημένη αντιγραφή σε κινητές συσκευές, Smart TV και διαδικτυακές πλατφόρμες. Η κρυπτογράφηση περιεχομένου πραγματοποιείται μέσω της μονάδας CDM, η οποία υποστηρίζεται σε 4 δισεκατομμύρια συσκευές παγκοσμίως. Η τεχνολογία Widevine εξασφαλίζει συμβατότητα με Android, iOS, Chrome και Smart TV, επιτρέποντας στις υπηρεσίες ροής να προστατεύουν περιεχόμενο premium σε οποιαδήποτε πλατφόρμα.

Κύρια σημεία

  • Widevine — λύση DRM από την Google για προστασία βίντεο σε εφαρμογές κινητών και στον ιστό.
  • Τρία επίπεδα ασφαλείας: L1 (κρυπτογράφηση υλικού), L2 (λογισμικού), L3 (ασφαλές μόνο στο cloud).
  • CDM — Content Decryption Module, το βασικό στοιχείο για την αποκρυπτογράφηση περιεχομένου.
  • Αδειοδότηση διαχειρίζεται μέσω του διακομιστή αδειών Google που εκδίδει κλειδιά για αποκωδικοποίηση.
  • Συμβατότητα με EME (Encrypted Media Extensions) επιτρέπει τη λειτουργία σε οποιοδήποτε πρόγραμμα περιήγησης.

Τι είναι το Widevine;

Widevine — μια ιδιόκτητη τεχνολογία DRM που εξαγοράστηκε από την Google το 2010 και έγινε το de facto πρότυπο για την προστασία περιεχομένου βίντεο στο οικοσύστημα 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;

Η διαδικασία προστασίας ξεκινά με το στάδιο συσκευασίας περιεχομένου, όταν το αρχείο πολυμέσων κρυπτογραφείται χρησιμοποιώντας το κλειδί περιεχομένου στον διακομιστή του παρόχου. Η κρυπτογραφημένη ροή μεταδίδεται στη συσκευή του χρήστη μέσω CDN, όπου το 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ΛογισμικούΜόνο λογισμικό CDM720p

Επίπεδο 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.

Συνιστάται η υλοποίηση μηχανισμού επανάληψης με εκθετική καθυστέρηση για προσωρινά σφάλματα δικτύου και η εμφάνιση κατανοητού μηνύματος στον χρήστη για μόνιμες απορρίψεις αδειοδότησης. Η καταγραφή σφαλμάτων των συνεδριών 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-first, το 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 αποτελεί το de facto πρότυπο στο οικοσύστημα 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. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης