FairPlay — vad är det, DRM från Apple och funktionsprinciper

Författare: IT Sectr Publicerad: 2026-05-24 Lästid: 8 min

FairPlay är en proprietär DRM-teknik utvecklad av Apple för att skydda videoinnehåll i ekosystemet iOS, tvOS och macOS. Systemet använder Secure Enclave och hårdvarukryptering för säker lagring av nycklar, vilket gör att streamingtjänster kan leverera innehåll i 4K HDR-kvalitet. Enligt Apples utvecklardokumentation (2025) stöds FairPlay Streaming på alla Apple-enheter med A8-chip och nyare.

Huvudpunkter

  • FairPlay — Apples DRM-lösning för att skydda video i iOS-, tvOS- och macOS-appar.
  • Secure Enclave tillhandahåller hårdvarulagring av dekrypteringsnycklar på chippnivå.
  • FairPlay Streaming (FPS) — Protokoll för att skydda HLS-strömmar i realtid.
  • SCM (Server Certificate Module) — Modul för verifiering av licen serverns äkthet.
  • Integration kräver registrering i Apples utvecklarprogram och inhämtning av FPS-certifikat.

Vad är FairPlay?

FairPlay — är en DRM-teknik skapad av Apple och integrerad i operativsystemen iOS, tvOS, iPadOS och macOS för att skydda ljud- och videoinnehåll från obehörig användning. Ursprungligen utvecklad för iTunes och iPod, har den utvecklats till ett komplett system för streaming av innehållsskydd via FairPlay Streaming-protokollet.

Till skillnad från andra DRM-lösningar är FairPlay fullt integrerad i hårdvaruarkitekturen hos Apple-enheter. Dekrypteringsnycklar lagras i Secure Enclave — en skyddad samprocessor isolerad från huvudoperativsystemet, vilket gör nyckelutvinning nästan omöjlig även med jailbreak.

FairPlay utveckling

FairPlays historia började 2003 med iTunes Store, där kryptering av AAC-filer med det proprietära M4P-formatet användes. 2009 introducerade Apple FairPlay Streaming — ett protokoll för videoströmningsskydd baserat på HLS, som senare blev obligatoriskt för Apple TV och iOS-appar.

Från och med iOS 10 och tvOS 10 öppnade Apple upp åtkomst till FairPlay Streaming för tredjepartsutvecklare via AVFoundation-ramverket. Idag använder Netflix, Amazon Prime Video och Disney+ FairPlay för att skydda innehåll på Apple-enheter upp till 4K HDR-upplösning med Dolby Vision.

Hur fungerar FairPlay DRM?

FairPlays funktion bygger på en trestegsprocess: paketering av innehåll, distribution via CDN och dekryptering på enheten. I paketeringsfasen krypteras video med AES-128 eller AES-256, och krypteringsnycklar kopplas till en specifik enhet via Key Envelope-mekanismen.

Vid begäran av innehåll initierar spelaren en FairPlay-session via AVContentKeySession, som skickar en begäran till innehållsleverantörens licen server. Servern kontrollerar åtkomsträttigheter och returnerar dekrypteringsnyckeln, krypterad med enhetens certifikats publika nyckel.

Process för att erhålla licens

Klienten skapar en AVContentKeySession-instans och lägger till innehållsspåret. Systemet bildar en SPC-begäran (Server Playback Context) som innehåller enhetsidentifieraren och applikationscertifikatet signerat av Apple. Denna begäran skickas till licen servern via HTTPS.

Licen servern validerar SPC, extraherar innehållsnyckeln från sin databas och krypterar den med enhetens publika nyckel, vilket bildar en CKC (Content Key Context). CKC returneras till klienten där AVContentKeySession dekrypterar den med Secure Enclaves privata nyckel.

FairPlay Streaming flödesschema

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)

Viktiga komponenter i FairPlay

FairPlays arkitektur omfattar flera sammankopplade komponenter: applikationscertifikatet, Key Envelope, Secure Enclave och innehållsdekrypteringsmodulen. Varje komponent har sin roll i skyddskedjan från server till användarens skärm.

KomponentFunktionVar utförs
ApplikationscertifikatIdentifiering av appen hos licen servernLagras i appens bundle
SPCServer Playback Context — licensbegäranBildas av AVContentKeySession
CKCContent Key Context — svar med nyckelBearbetas av Secure Enclave
Secure EnclaveHårdvarulagring och dekryptering av nycklarHårdvarusamm processor i SoC
Key EnvelopeContainer för nyckel med licensmetadataBildas av licen servern

FairPlay applikationscertifikat

För att arbeta med FairPlay måste utvecklaren skaffa ett FPS-certifikat från Apple via Apples utvecklarprogram. Certifikatet innehåller den publika nyckeln från ett asymmetriskt par, vars privata del används av Secure Enclave för att dekryptera CKC.

Applikationscertifikatet läggs till i projektets bundle och signeras automatiskt vid kompilering via Xcode. Vid första uppspelning av skyddat innehåll kontrollerar systemet certifikatets giltighet och begär en licens.

Secure Enclave och hårdvaruskydd

Secure Enclave — är en dedikerad samprocessor på Apples A-serie och M-serie chips, som körs på ett isolerat L4-operativsystem. Den ansvarar för generering och lagring av privata nycklar, dekryptering av CKC och överföring av innehållsnyckeln till videodekrypteringsmodulen.

Alla kryptografiska operationer utförs uteslutande inuti Secure Enclave, och nycklar lämnar aldrig det skyddade området. Sidokanalsattacker på databussen mellan Secure Enclave och huvudprocessorn blockeras av hårdvarubaserad integritetsövervakning.

Integration av FairPlay i iOS och tvOS

Integration av FairPlay i iOS- och tvOS-appar görs via AVFoundation och kräver implementering av protokollen AVContentKeySessionDelegate och AVAssetResourceLoaderDelegate. Utvecklaren måste hantera fyra nyckelhändelser: inhämtning av SPC, sändning till server, mottagning av CKC och överlämning till spelaren.

Implementering av 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)
        )
    }
}

Förberedelse av certifikat och innehållsidentifiering

Innan uppspelning påbörjas måste applikationscertifikatet laddas från bundle och innehållsidentifieraren (vanligtvis strömmens URL eller film-ID) förberedas. Certifikatet måste vara giltigt under minst hela hyresperioden för innehållet, annars misslyckas licensieringen.

Innehållsidentifieraren skickas till licensieringssystemet vid bildandet av SPC. Licen servern använder denna identifierare för att hitta motsvarande nyckel och uppspelningspolicy, inklusive tids- och enhetsbegränsningar.

Hantering av licensfel

Under licensieringsprocessen kan fel uppstå: utgånget certifikat, felaktig innehållsidentifierare, bristande åtkomsträttigheter för användaren. FairPlay-fel returneras via delegaten contentKeySession:didFailWithError och måste hanteras med lämpligt användargränssnitt.

Typiska felkoder inkluderar FP_NO_ENTITLEMENT vid saknat abonnemang och FP_REQUEST_TIMEOUT vid nätverksproblem. Det rekommenderas att implementera återförsökslogik med exponentiell fördröjning för tillfälliga nätverksfel.

FairPlay Streaming och licensiering

FairPlay Streaming är ett protokoll för skydd av videoströmning baserat på HLS, som använder segmentkryptering och en nyckelmekanism med begränsad livslängd. Innehållsleverantören distribuerar en egen licen server som är integrerad med användarautentiseringssystemet.

Licen servern tar emot från klienten en SPC-begäran, extraherar enhets- och innehållsidentifieraren, kontrollerar användarens rättigheter i backend och bildar ett CKC-svar. Innehållsnyckeln krypteras med enhetens publika nyckel från FPS-certifikatet.

FairPlays licenspolicy

En FairPlay-licens kan innehålla tidsbegränsningar (48-timmars hyra), antal enheter (max 5 auktoriserade) och uppspelningskvalitet (begränsning till 1080p för basabonnemang). Policyn ställs in på serversidan och paketeras i Key Envelope.

Det är viktigt att notera att FairPlays policy tillämpas på Secure Enclave-nivå och inte kan kringgås med programvarubaserade metoder på OS-nivå. Även med jailbreak förhindrar hårdvaruskydd utvinning av nyckeln eller ändring av licensparametrar.

Jämförelse av FairPlay med andra DRM

ParameterFairPlayWidevinePlayReady
EkosystemApple (iOS, tvOS, macOS)Google (Android, Chrome)Microsoft (Windows, Xbox)
Maximal kvalitet4K HDR Dolby Vision4K UHD4K UHD
HårdvaruskyddSecure EnclaveTEETPM + TEE
Krav på utvecklareApple FPS-certifikatKrävs inteMicrosoft-licens

FairPlay på olika iOS-versioner

Stöd för FairPlay Streaming beror på operativsystemets version och enhetstyp. Från och med iOS 10 och tvOS 10 är AVContentKeySession API tillgängligt för alla appar, men hårdvaruacceleration via Secure Enclave krävs endast för innehåll i 4K HDR-kvalitet. På enheter med A8–A10-chips är maximal upplösning 1080p.

I iOS 14 lade Apple till stöd för flera FairPlay-sessioner, vilket gör att en app kan spela upp flera skyddade strömmar samtidigt — till exempel bild-i-bild med olika licenser. iOS 15 utökade protokollet med stöd för bakgrundsförnyelse av nycklar för långvarig tittning.

FairPlay i multi-DRM-arkitektur

För plattformsoberoende streamingtjänster används FairPlay som en del av en multi-DRM-arkitektur tillsammans med Widevine och PlayReady. Licensaggregatorer, såsom Axinom och EZDRM, tillhandahåller ett enhetligt API som översätter begäranden till SPC-format för FairPlay och MediaDrm-format för Widevine, vilket förenklar integration på alla plattformar.

Vanliga frågor

Vad är FairPlay DRM på iOS?

FairPlay — är en DRM-teknik från Apple, inbyggd i iOS, tvOS och macOS för att skydda videoinnehåll. Den använder hårdvarukryptering via Secure Enclave och FairPlay Streaming-protokollet för säker överföring av dekrypteringsnycklar på Apple-enheter.

Hur får man ett FairPlay Streaming-certifikat?

För att få ett FPS-certifikat måste du registrera dig i Apple Developer-programmet, skapa ett certifikat under Certificates, Identifiers & Profiles och ladda ner det i DER-format. Certifikatet läggs till i Xcode-projektets bundle och signeras vid kompilering.

Kan FairPlay användas på Android?

Nej, FairPlay är inte tillgängligt på Android eftersom det är Apples proprietära teknik som är kopplad till Secure Enclave-hårdvaruarkitekturen på A-serie och M-serie chips. För Android-enheter används Widevine DRM från Google.

Vad är skillnaden mellan FairPlay och FairPlay Streaming?

FairPlay är det allmänna namnet på Apples DRM-teknik, medan FairPlay Streaming (FPS) är det specifika protokollet för att skydda HLS-strömmar. FPS använder FairPlay-mekanismer för kryptering av videosegment och licenshantering via AVContentKeySession.

Vilka begränsningar sätter en FairPlay-licens?

En FairPlay-licens kan sätta begränsningar på visningstid, maximal videokvalitet (720p, 1080p, 4K), antal enheter och nyckelns giltighetstid. All policy utförs på hårdvarunivå i Secure Enclave och kan inte kringgås.

Sammanfattning

  • FairPlay — Proprietärt DRM från Apple med hårdvaruskydd via Secure Enclave och FairPlay Streaming-protokoll för HLS.
  • SPC och CKC — Huvudsakliga protokollmeddelanden: licensbegäran från klient och nyckelsvar från server.
  • FPS-certifikat är obligatoriskt för utvecklare och erhålls via Apples utvecklarprogram.
  • Integration sker via AVContentKeySession och AVAssetResourceLoaderDelegate i AVFoundation.
  • Secure Enclave tillhandahåller isolerad lagring och bearbetning av nycklar på hårdvarunivå.
  • Begränsningar i licensen inkluderar tidsgränser, kvalitet och antal enheter.
  • Multi-DRM-metod med FairPlay, Widevine och PlayReady krävs för plattformsoberoende streamingappar.

Vi utvecklar en mobil applikation nyckelfärdigt

IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.

Diskutera projektet

Läs också