FairPlay — τι είναι, DRM της Apple και αρχές λειτουργίας

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

Το FairPlay είναι μια ιδιόκτητη τεχνολογία DRM που αναπτύχθηκε από την Apple για την προστασία περιεχομένου βίντεο στο οικοσύστημα iOS, tvOS και macOS. Το σύστημα χρησιμοποιεί το Secure Enclave και κρυπτογράφηση υλικού για ασφαλή αποθήκευση κλειδιών, επιτρέποντας στις υπηρεσίες ροής να παρέχουν περιεχόμενο σε ποιότητα 4K HDR. Σύμφωνα με την τεκμηρίωση του Apple Developer (2025), το FairPlay Streaming υποστηρίζεται σε όλες τις συσκευές Apple με τσιπ A8 και νεότερο.

Βασικά σημεία

  • FairPlay — Η λύση DRM της Apple για προστασία βίντεο σε εφαρμογές iOS, tvOS και macOS.
  • Secure Enclave παρέχει αποθήκευση κλειδιών αποκρυπτογράφησης σε επίπεδο τσιπ.
  • FairPlay Streaming (FPS) — Πρωτόκολλο για προστασία ροών HLS σε πραγματικό χρόνο.
  • SCM (Server Certificate Module) — Μονάδα ελέγχου ταυτότητας διακομιστή αδειών.
  • Ενσωμάτωση απαιτεί εγγραφή στο πρόγραμμα Apple Developer και λήψη πιστοποιητικού FPS.

Τι είναι το FairPlay;

FairPlay — Είναι μια τεχνολογία DRM που δημιουργήθηκε από την Apple και ενσωματώθηκε στα λειτουργικά συστήματα iOS, tvOS, iPadOS και macOS για την προστασία περιεχομένου ήχου και βίντεο από μη εξουσιοδοτημένη χρήση. Αρχικά σχεδιασμένο για το iTunes και το iPod, εξελίχθηκε σε ένα πλήρες σύστημα προστασίας περιεχομένου ροής μέσω του πρωτοκόλλου FairPlay Streaming.

Σε αντίθεση με άλλες λύσεις DRM, το FairPlay είναι πλήρως ενσωματωμένο στην αρχιτεκτονική υλικού των συσκευών Apple. Τα κλειδιά αποκρυπτογράφησης αποθηκεύονται στο Secure Enclave — έναν προστατευμένο συνεπεξεργαστή, απομονωμένο από το κύριο λειτουργικό σύστημα, καθιστώντας την εξαγωγή κλειδιών σχεδόν αδύνατη ακόμα και με jailbreak.

Εξέλιξη του FairPlay

Η ιστορία του FairPlay ξεκίνησε το 2003 με το κατάστημα iTunes Store, όπου εφαρμόστηκε κρυπτογράφηση αρχείων AAC με χρήση ιδιόκτητου φορμά M4P. Το 2009 η Apple παρουσίασε το FairPlay Streaming — ένα πρωτόκολλο προστασίας ροής βίντεο βασισμένο στο HLS, το οποίο αργότερα έγινε υποχρεωτικό για το Apple TV και τις εφαρμογές iOS.

Από τα iOS 10 και tvOS 10, η Apple άνοιξε την πρόσβαση στο FairPlay Streaming για τρίτους προγραμματιστές μέσω του πλαισίου AVFoundation. Σήμερα, οι Netflix, Amazon Prime Video και Disney+ χρησιμοποιούν το FairPlay για την προστασία περιεχομένου σε συσκευές Apple έως και ανάλυση 4K HDR με Dolby Vision.

Πώς λειτουργεί το FairPlay DRM;

Η λειτουργία του FairPlay βασίζεται σε μια τρισταδιακή διαδικασία: συσκευασία περιεχομένου, διανομή μέσω CDN και αποκρυπτογράφηση στη συσκευή. Στο στάδιο της συσκευασίας, το βίντεο κρυπτογραφείται με AES-128 ή AES-256, και τα κλειδιά κρυπτογράφησης συνδέονται με μια συγκεκριμένη συσκευή μέσω του μηχανισμού Key Envelope.

Κατά την αίτηση περιεχομένου, η συσκευή αναπαραγωγής εκκινεί μια περίοδο λειτουργίας FairPlay μέσω του AVContentKeySession, το οποίο στέλνει αίτημα στον διακομιστή αδειών του παρόχου περιεχομένου. Ο διακομιστής ελέγχει τα δικαιώματα πρόσβασης και επιστρέφει το κλειδί αποκρυπτογράφησης, κρυπτογραφημένο με το δημόσιο κλειδί του πιστοποιητικού της συσκευής.

Διαδικασία λήψης άδειας

Ο πελάτης δημιουργεί ένα στιγμιότυπο του AVContentKeySession και προσθέτει το κομμάτι περιεχομένου. Το σύστημα δημιουργεί ένα αίτημα SPC (Server Playback Context) που περιέχει το αναγνωριστικό συσκευής και το πιστοποιητικό εφαρμογής, υπογεγραμμένο από την Apple. Αυτό το αίτημα αποστέλλεται στον διακομιστή αδειών μέσω HTTPS.

Ο διακομιστής αδειών επικυρώνει το SPC, εξάγει το κλειδί περιεχομένου από τη βάση δεδομένων του και το κρυπτογραφεί με το δημόσιο κλειδί της συσκευής, δημιουργώντας ένα CKC (Content Key Context). Το CKC επιστρέφεται στον πελάτη, όπου το AVContentKeySession το αποκρυπτογραφεί χρησιμοποιώντας το ιδιωτικό κλειδί του Secure Enclave.

Διάγραμμα λειτουργίας FairPlay Streaming

swift
let contentKeySession = AVContentKeySession(keySystem: .fairPlayStreaming)
contentKeySession.setDelegate(self, queue: .main)

let asset = AVURLAsset(url: streamURL)
asset.resourceLoader.setDelegate(self, queue: .main)
contentKeySession.addContentKeyRecipient(asset)

let playerItem = AVPlayerItem(asset: asset)
let player = AVPlayer(playerItem: playerItem)

Βασικά στοιχεία του FairPlay

Η αρχιτεκτονική του FairPlay περιλαμβάνει πολλά διασυνδεδεμένα στοιχεία: το πιστοποιητικό εφαρμογής, το Key Envelope, το Secure Enclave και τη μονάδα αποκρυπτογράφησης περιεχομένου. Κάθε στοιχείο έχει τον ρόλο του στην αλυσίδα προστασίας από τον διακομιστή έως την οθόνη του χρήστη.

ΣτοιχείοΛειτουργίαΠού εκτελείται
Πιστοποιητικό εφαρμογήςΑναγνώριση εφαρμογής στον διακομιστή αδειώνΑποθηκεύεται στο πακέτο της εφαρμογής
SPCServer Playback Context — αίτημα άδειαςΔημιουργείται από το AVContentKeySession
CKCContent Key Context — απάντηση με κλειδίΕπεξεργάζεται από το Secure Enclave
Secure EnclaveΑποθήκευση και αποκρυπτογράφηση κλειδιών σε επίπεδο υλικούΣυνεπεξεργαστής υλικού SoC
Key EnvelopeΚοντέινερ για κλειδί με μεταδεδομένα άδειαςΔημιουργείται από τον διακομιστή αδειών

Πιστοποιητικό εφαρμογής FairPlay

Για να εργαστεί με το FairPlay, ο προγραμματιστής πρέπει να αποκτήσει ένα πιστοποιητικό FPS από την Apple μέσω του προγράμματος Apple Developer. Το πιστοποιητικό περιλαμβάνει το δημόσιο κλειδί ενός ασύμμετρου ζεύγους, του οποίου το ιδιωτικό μέρος χρησιμοποιείται από το Secure Enclave για την αποκρυπτογράφηση του CKC.

Το πιστοποιητικό εφαρμογής προστίθεται στο πακέτο του έργου και υπογράφεται αυτόματα κατά τη μεταγλώττιση μέσω του Xcode. Κατά την πρώτη αναπαραγωγή προστατευμένου περιεχομένου, το σύστημα ελέγχει την εγκυρότητα του πιστοποιητικού και ζητά άδεια.

Secure Enclave και προστασία υλικού

Secure Enclave — Είναι ένας αποκλειστικός συνεπεξεργαστής στα τσιπ της σειράς A και M της Apple, που λειτουργεί με απομονωμένο λειτουργικό σύστημα L4. Είναι υπεύθυνο για τη δημιουργία και αποθήκευση ιδιωτικών κλειδιών, την αποκρυπτογράφηση του CKC και τη μεταφορά του κλειδιού περιεχομένου στη μονάδα αποκρυπτογράφησης βίντεο.

Όλες οι κρυπτογραφικές λειτουργίες εκτελούνται αποκλειστικά εντός του Secure Enclave, και τα κλειδιά δεν εγκαταλείπουν ποτέ την προστατευμένη περιοχή. Επιθέσεις μέσω πλευρικών καναλιών στον δίαυλο δεδομένων μεταξύ Secure Enclave και κύριου επεξεργαστή αποκλείονται από την παρακολούθηση ακεραιότητας υλικού.

Ενσωμάτωση FairPlay σε iOS και tvOS

Η ενσωμάτωση του FairPlay σε εφαρμογές iOS και tvOS γίνεται μέσω του AVFoundation και απαιτεί υλοποίηση των πρωτοκόλλων AVContentKeySessionDelegate και AVAssetResourceLoaderDelegate. Ο προγραμματιστής πρέπει να χειριστεί τέσσερα βασικά συμβάντα: λήψη SPC, αποστολή στον διακομιστή, λήψη CKC και μεταφορά στη συσκευή αναπαραγωγής.

Υλοποίηση του AVContentKeySession Delegate

swift
func contentKeySession(
    _ session: AVContentKeySession,
    didProvide keyRequest: AVContentKeyRequest
) {
    guard let identifier = keyRequest.identifier
    else { return }

    let spc: Data = keyRequest.makeStreamingContentKeyRequestData(
        appCertificate: certificate,
        contentIdentifier: identifier,
        options: nil
    )

    licenseService.requestCKC(spc) { ckc in
        keyRequest.processContentKeyResponse(
            AVContentKeyResponse(fairPlayStreamingKeyResponseData: ckc)
        )
    }
}

Προετοιμασία πιστοποιητικού και αναγνωριστικού περιεχομένου

Πριν από την έναρξη της αναπαραγωγής, πρέπει να φορτωθεί το πιστοποιητικό εφαρμογής από το πακέτο και να προετοιμαστεί το αναγνωριστικό περιεχομένου (συνήθως η διεύθυνση URL της ροής ή το αναγνωριστικό ταινίας). Το πιστοποιητικό πρέπει να είναι έγκυρο τουλάχιστον για τη διάρκεια ενοικίασης του περιεχομένου, διαφορετικά η αδειοδότηση θα αποτύχει.

Το αναγνωριστικό περιεχομένου μεταφέρεται στο σύστημα αδειοδότησης κατά τον σχηματισμό του SPC. Ο διακομιστής αδειών χρησιμοποιεί αυτό το αναγνωριστικό για να εντοπίσει το αντίστοιχο κλειδί και τις πολιτικές αναπαραγωγής, συμπεριλαμβανομένων χρονικών περιορισμών και περιορισμών συσκευών.

Διαχείριση σφαλμάτων αδειοδότησης

Κατά τη διαδικασία αδειοδότησης μπορεί να προκύψουν σφάλματα: λήξη πιστοποιητικού, εσφαλμένο αναγνωριστικό περιεχομένου, έλλειψη δικαιωμάτων πρόσβασης χρήστη. Τα σφάλματα FairPlay επιστρέφονται μέσω του delegate contentKeySession:didFailWithError και πρέπει να αντιμετωπίζονται με εμφάνιση κατάλληλου UI στον χρήστη.

Τυπικοί κωδικοί σφαλμάτων περιλαμβάνουν FP_NO_ENTITLEMENT όταν απουσιάζει η συνδρομή και FP_REQUEST_TIMEOUT για προβλήματα δικτύου. Συνιστάται η υλοποίηση λογικής επαναπροσπαθειών με εκθετική καθυστέρηση για προσωρινές δικτυακές βλάβες.

FairPlay Streaming και αδειοδότηση

Το FairPlay Streaming είναι ένα πρωτόκολλο προστασίας ροής βίντεο βασισμένο στο HLS, το οποίο χρησιμοποιεί κρυπτογράφηση τμημάτων και μηχανισμό κλειδιών περιορισμένης διάρκειας. Ο πάροχος περιεχομένου αναπτύσσει τον δικό του διακομιστή αδειών, ο οποίος ενσωματώνεται με το σύστημα πιστοποίησης χρηστών.

Ο διακομιστής αδειών λαμβάνει από τον πελάτη αίτημα SPC, εξάγει από αυτό το αναγνωριστικό συσκευής και περιεχομένου, ελέγχει τα δικαιώματα χρήστη στο παρασκήνιο και δημιουργεί την απάντηση CKC. Το κλειδί περιεχομένου κρυπτογραφείται με το δημόσιο κλειδί της συσκευής από το πιστοποιητικό FPS.

Πολιτικές αδειοδότησης FairPlay

Η άδεια FairPlay μπορεί να περιέχει χρονικούς περιορισμούς (ενοικίαση 48 ωρών), αριθμό συσκευών (μέγιστο 5 εξουσιοδοτημένες) και ποιότητα αναπαραγωγής (περιορισμός σε 1080p για βασικό πρόγραμμα). Οι πολιτικές ορίζονται από τον διακομιστή και συσκευάζονται στο Key Envelope.

Είναι σημαντικό να σημειωθεί ότι οι πολιτικές FairPlay εφαρμόζονται σε επίπεδο Secure Enclave και δεν μπορούν να παρακαμφθούν με λογισμικό σε επίπεδο λειτουργικού συστήματος. Ακόμα και με jailbreak, η προστασία υλικού αποτρέπει την εξαγωγή κλειδιού ή την τροποποίηση των παραμέτρων της άδειας.

Σύγκριση FairPlay με άλλα DRM

ΠαράμετροςFairPlayWidevinePlayReady
ΟικοσύστημαApple (iOS, tvOS, macOS)Google (Android, Chrome)Microsoft (Windows, Xbox)
Μέγιστη ποιότητα4K HDR Dolby Vision4K UHD4K UHD
Προστασία υλικούSecure EnclaveTEETPM + TEE
Απαιτήσεις προγραμματιστήΠιστοποιητικό FPS AppleΔεν απαιτείταιΆδεια Microsoft

Ιδιαιτερότητες λειτουργίας FairPlay σε διαφορετικές εκδόσεις iOS

Η υποστήριξη FairPlay Streaming εξαρτάται από την έκδοση λειτουργικού συστήματος και τον τύπο συσκευής. Από τα iOS 10 και tvOS 10, το API AVContentKeySession είναι διαθέσιμο για όλες τις εφαρμογές, αλλά η επιτάχυνση υλικού μέσω Secure Enclave απαιτείται μόνο για περιεχόμενο σε ποιότητα 4K HDR. Σε συσκευές με τσιπ A8–A10, η μέγιστη ανάλυση είναι 1080p.

Στο iOS 14, η Apple πρόσθεσε υποστήριξη για πολλαπλές περιόδους λειτουργίας FairPlay, επιτρέποντας στην εφαρμογή να αναπαράγει πολλές προστατευμένες ροές ταυτόχρονα — για παράδειγμα, εικόνα σε εικόνα με διαφορετικές άδειες. Το iOS 15 επέκτεινε το πρωτόκολλο με υποστήριξη φόντο ανανέωσης κλειδιών για μεγάλης διάρκειας παρακολούθηση.

FairPlay σε αρχιτεκτονική Multi-DRM

Για διαπλατφορμικές υπηρεσίες ροής, το FairPlay χρησιμοποιείται ως μέρος μιας αρχιτεκτονικής multi-DRM μαζί με Widevine και PlayReady. Συγκεντρωτές αδειών, όπως οι Axinom και EZDRM, παρέχουν ένα ενιαίο API που μεταφράζει αιτήματα σε μορφή SPC για FairPlay και σε μορφή MediaDrm για Widevine, απλοποιώντας την ενσωμάτωση σε όλες τις πλατφόρμες.

Συχνές ερωτήσεις

Τι είναι το FairPlay DRM στο iOS;

FairPlay — Είναι μια τεχνολογία DRM της Apple, ενσωματωμένη σε iOS, tvOS και macOS για την προστασία περιεχομένου βίντεο. Χρησιμοποιεί κρυπτογράφηση υλικού μέσω Secure Enclave και το πρωτόκολλο FairPlay Streaming για ασφαλή μεταφορά κλειδιών αποκρυπτογράφησης σε συσκευές Apple.

Πώς να αποκτήσω πιστοποιητικό FairPlay Streaming;

Για να αποκτήσετε πιστοποιητικό FPS, πρέπει να εγγραφείτε στο πρόγραμμα Apple Developer, να δημιουργήσετε πιστοποιητικό στην ενότητα Certificates, Identifiers & Profiles και να το κατεβάσετε σε μορφή DER. Το πιστοποιητικό προστίθεται στο πακέτο του έργου Xcode και υπογράφεται κατά τη μεταγλώττιση.

Μπορώ να χρησιμοποιήσω FairPlay σε Android;

Όχι, το FairPlay δεν είναι διαθέσιμο σε Android, καθώς είναι ιδιόκτητη τεχνολογία της Apple, συνδεδεμένη με την αρχιτεκτονική υλικού Secure Enclave στα τσιπ σειράς A και M. Για συσκευές Android χρησιμοποιείται το Widevine DRM της Google.

Ποια είναι η διαφορά μεταξύ FairPlay και FairPlay Streaming;

FairPlay είναι η γενική ονομασία της τεχνολογίας DRM της Apple, ενώ το FairPlay Streaming (FPS) είναι το συγκεκριμένο πρωτόκολλο για προστασία ροών HLS. Το FPS χρησιμοποιεί μηχανισμούς FairPlay για κρυπτογράφηση τμημάτων βίντεο και διαχείριση αδειών μέσω του AVContentKeySession.

Ποιοι περιορισμοί επιβάλλονται από την άδεια FairPlay;

Η άδεια FairPlay μπορεί να θέτει περιορισμούς στον χρόνο προβολής, τη μέγιστη ποιότητα βίντεο (720p, 1080p, 4K), τον αριθμό συσκευών και τη διάρκεια ισχύος του κλειδιού. Όλες οι πολιτικές εκτελούνται σε επίπεδο υλικού στο Secure Enclave και δεν μπορούν να παρακαμφθούν.

Σύνοψη

  • FairPlay — Ιδιόκτητο DRM της Apple με προστασία υλικού μέσω Secure Enclave και πρωτόκολλο FairPlay Streaming για HLS.
  • SPC και CKC — Βασικά μηνύματα πρωτοκόλλου: αίτημα άδειας από τον πελάτη και απάντηση με κλειδί από τον διακομιστή.
  • Πιστοποιητικό FPS είναι υποχρεωτικό για προγραμματιστές και λαμβάνεται μέσω του προγράμματος Apple Developer.
  • Ενσωμάτωση πραγματοποιείται μέσω AVContentKeySession και AVAssetResourceLoaderDelegate στο AVFoundation.
  • Secure Enclave παρέχει απομονωμένη αποθήκευση και επεξεργασία κλειδιών σε επίπεδο υλικού.
  • Περιορισμοί άδειας περιλαμβάνουν χρονικά όρια, ποιότητα και αριθμό συσκευών.
  • Προσέγγιση Multi-DRM με FairPlay, Widevine και PlayReady είναι απαραίτητη για διαπλατφορμικές εφαρμογές ροής.

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

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

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