Anforderungen und Konfiguration der Apple FairPlay-LizenzApple FairPlay license requirements and configuration

Azure Media Services ermöglicht Ihnen das Verschlüsseln von HLS-Inhalten mit Apple FairPlay (AES-128 CBC).Azure Media Services enables you to encrypt your HLS content with Apple FairPlay (AES-128 CBC). Media Services bietet darüber hinaus einen Dienst für die Bereitstellung von FairPlay-Lizenzen.Media Services also provides a service for delivering FairPlay licenses. Wenn der Player versucht, Ihre durch FairPlay geschützten Inhalte wiederzugeben, wird eine Anforderung zum Erwerben einer Lizenz an den Lizenzbereitstellungsdienst gesendet.When a player tries to play your FairPlay-protected content, a request is sent to the license delivery service to obtain a license. Wenn der Lizenzdienst die Anforderung genehmigt, wird die Lizenz ausgegeben. Diese wird an den Client gesendet und zum Entschlüsseln und Wiedergeben des angegebenen Inhalts verwendet.If the license service approves the request, it issues the license that is sent to the client and is used to decrypt and play the specified content.

Media Services bietet außerdem APIs, mit denen Sie Ihre FairPlay-Lizenzen konfigurieren können.Media Services also provides APIs that you can use to configure your FairPlay licenses. Dieses Thema behandelt die FairPlay-Lizenzanforderungen und zeigt, wie Sie eine FairPlay-Lizenz mithilfe von Media Services-APIs konfigurieren können.This topic discusses FairPlay license requirements and demonstrates how you can configure a FairPlay license using Media Services APIs.

Requirements (Anforderungen)Requirements

Die folgenden Angaben sind erforderlich, wenn Sie Ihre HLS-Inhalte mit Apple FairPlay verschlüsseln und Media Services verwenden, um FairPlay-Lizenzen bereitzustellen:The following are required when using Media Services to encrypt your HLS content with Apple FairPlay and use Media Services to deliver FairPlay licenses:

  • Registrieren Sie sich für das Apple Developer Program(Apple-Entwicklerprogramm).Sign up with Apple Development Program.

  • Apple setzt voraus, dass der Inhaltsbesitzer über das Bereitstellungspaketverfügt.Apple requires the content owner to obtain the deployment package. Geben Sie an, dass Sie bereits KSM (Key Security Module) mit Media Services implementiert haben, und dass Sie das endgültige FPS-Paket anfordern.State that you already implemented Key Security Module (KSM) with Media Services, and that you are requesting the final FPS package. Das endgültige FPS-Paket enthält Anweisungen zum Generieren des Zertifikats und zum Abrufen des geheimen Anwendungsschlüssels (ASK).There are instructions in the final FPS package to generate certification and obtain the Application Secret Key (ASK). Sie verwenden ASK, um FairPlay zu konfigurieren.You use ASK to configure FairPlay.

  • Folgendes muss seitens der Media Services-Schlüssel-/Lizenzbereitstellung festgelegt werden:The following things must be set on Media Services key/license delivery side:

    • App Cert (AC) : PFX-Datei mit dem privaten Schlüssel.App Cert (AC): This is a .pfx file that contains the private key. Sie erstellen diese Datei und verschlüsseln sie mit einem Kennwort.You create this file and encrypt it with a password. Die PFX-Datei muss im Base64-Format vorliegen.The .pfx file should be in Base64 format.

      Die folgenden Schritte beschreiben, wie eine PFX-Zertifikatdatei für FairPlay generiert wird:The following steps describe how to generate a .pfx certificate file for FairPlay:

      1. Installieren von OpenSSL von https://slproweb.com/products/Win32OpenSSL.html.Install OpenSSL from https://slproweb.com/products/Win32OpenSSL.html.

        Wechseln Sie zum Ordner, in dem das FairPlay-Zertifikat und andere von Apple übermittelte Dateien enthalten sind.Go to the folder where the FairPlay certificate and other files delivered by Apple are.

      2. Führen Sie den folgenden Befehl an der Befehlszeile aus:Run the following command from the command line. Dadurch wird die CER-Datei in eine PEM-Datei konvertiert.This converts the .cer file to a .pem file.

        „C:\OpenSSL-Win32\bin\openssl.exe“ x509 -inform der -in FairPlay.cer -out FairPlay-out.pem"C:\OpenSSL-Win32\bin\openssl.exe" x509 -inform der -in FairPlay.cer -out FairPlay-out.pem

      3. Führen Sie den folgenden Befehl an der Befehlszeile aus:Run the following command from the command line. Dadurch wird die PEM-Datei in eine PFX-Datei mit dem privaten Schlüssel konvertiert.This converts the .pem file to a .pfx file with the private key. Das Kennwort für die PFX-Datei wird dann von OpenSSL angefordert.The password for the .pfx file is then asked by OpenSSL.

        „C:\OpenSSL-Win32\bin\openssl.exe“ pkcs12 -export -out FairPlay-out.pfx -inkey privatekey.pem -in FairPlay-out.pem -passin file:privatekey-pem-pass.txt"C:\OpenSSL-Win32\bin\openssl.exe" pkcs12 -export -out FairPlay-out.pfx -inkey privatekey.pem -in FairPlay-out.pem -passin file:privatekey-pem-pass.txt

    • App Cert-Kennwort: Das Kennwort des Kunden zum Erstellen der PFX-Datei.App Cert password: The password for creating the .pfx file.

    • ASK: Dieser Schlüssel wird erstellt, wenn Sie das Zertifikat über das Apple Developer-Portal generieren.ASK: This key is received when you generate the certification by using the Apple Developer portal. Jedes Entwicklungsteam erhält einen eindeutigen ASK.Each development team receives a unique ASK. Speichern Sie eine Kopie des ASK an einem sicheren Ort.Save a copy of the ASK, and store it in a safe place. Sie müssen den ASK später als FairPlayAsk für Media Services konfigurieren.You need to configure ASK as FairPlayAsk with Media Services.

  • Folgendes muss seitens des FPS-Clients festgelegt werden:The following things must be set by the FPS client side:

    • App Cert (AC) : CER-/DER-Datei mit dem öffentlichen Schlüssel, den das Betriebssystem zur Verschlüsselung bestimmter Nutzlast verwendet.App Cert (AC): This is a .cer/.der file that contains the public key, which the operating system uses to encrypt some payload. Media Services muss den Schlüssel kennen, da er vom Player benötigt wird.Media Services needs to know about it because it is required by the player. Der Schlüsselbereitstellungsdienst entschlüsselt den Schlüssel mithilfe des entsprechenden privaten Schlüssels.The key delivery service decrypts it using the corresponding private key.
  • Um einen über FairPlay verschlüsselten Stream wiederzugeben, rufen Sie zuerst den echten ASK ab, und generieren Sie dann ein echtes Zertifikat.To play back a FairPlay encrypted stream, get a real ASK first, and then generate a real certificate. Dieser Prozess erstellt alle drei Teile:That process creates all three parts:

    • DER-Datei.der file
    • PFX-Datei.pfx file
    • Kennwort für die PFX-Dateipassword for the .pfx

FairPlay und Player-AppsFairPlay and player apps

Wenn Ihr Inhalt mit Apple FairPlay verschlüsselt ist, werden die einzelnen Audio- und Videosamples mit dem AES-128 CBC-Modus verschlüsselt.When your content is encrypted with Apple FairPlay, the individual video and audio samples are encrypted by using the AES-128 CBC mode. FairPlay Streaming (FPS) ist in die Gerätebetriebssysteme integriert und wird von iOS und Apple TV nativ unterstützt.FairPlay Streaming (FPS) is integrated into the device operating systems, with native support on iOS and Apple TV. Safari unter OS X ermöglicht FPS durch Unterstützung der EME-Schnittstelle (Encrypted Media Extensions).Safari on OS X enables FPS by using the Encrypted Media Extensions (EME) interface support.

Azure Media Player unterstützt zudem die FairPlay-Wiedergabe.Azure Media Player also supports FairPlay playback. Weitere Informationen finden Sie in der Azure Media Player-Dokumentation.For more information, see Azure Media Player documentation.

Sie können Ihre eigenen Player-Apps mit dem iOS SDK entwickeln.You can develop your own player apps by using the iOS SDK. Damit FairPlay-Inhalte wiedergegeben werden können, müssen Sie das Lizenzaustauschprotokoll implementieren.To be able to play FairPlay content, you have to implement the license exchange protocol. Dieses Protokoll wird nicht von Apple angegeben.This protocol is not specified by Apple. Es ist jeder App freigestellt, wie sie Anforderungen zur Schlüsselübermittlung sendet.It is up to each app how to send key delivery requests. Der Media Services-FairPlay-Schlüsselübermittlungsdienst erwartet das SPC als POST-Nachricht mit Verschlüsselung vom Typ „www-form-url“ im folgenden Format:The Media Services FairPlay key delivery service expects the SPC to come as a www-form-url encoded post message, in the following form:

spc=<Base64 encoded SPC>

FairPlay-Konfiguration – .NET-BeispielFairPlay configuration .NET example

FairPlay-Lizenzen können mithilfe von Media Services-APIs konfiguriert werden.You can use Media Services API to configure FairPlay licenses. Wenn der Player versucht, Ihre durch FairPlay geschützten Inhalte wiederzugeben, wird eine Anforderung zum Erwerben einer Lizenz an den Lizenzbereitstellungsdienst gesendet.When the player tries to play your FairPlay-protected content, a request is sent to the license delivery service to obtain the license. Wenn der Lizenzdienst die Anforderung genehmigt, stellt der Dienst die Lizenz aus.If the license service approves the request, the service issues the license. Sie wird an den Client gesendet und dient zum Entschlüsseln und Wiedergeben des angegebenen Inhalts.It's sent to the client and is used to decrypt and play the specified content.

Hinweis

Üblicherweise sollten Sie FairPlay-Richtlinienoptionen nur einmal konfigurieren, da Sie nur einen Satz aus Zertifikat und ASK haben.Usually, you would want to configure FairPlay policy options only once, because you will only have one set of a certification and an ASK.

Im folgenden Beispiel wird das Media Services .NET SDK für die Lizenzkonfiguration verwendet.The following example uses Media Services .NET SDK to configure the license.

private static ContentKeyPolicyFairPlayConfiguration ConfigureFairPlayPolicyOptions()
{

    string askHex = "";
    string FairPlayPfxPassword = "";

    var appCert = new X509Certificate2("FairPlayPfxPath", FairPlayPfxPassword, X509KeyStorageFlags.Exportable);

    byte[] askBytes = Enumerable
        .Range(0, askHex.Length)
        .Where(x => x % 2 == 0)
        .Select(x => Convert.ToByte(askHex.Substring(x, 2), 16))
        .ToArray();

    ContentKeyPolicyFairPlayConfiguration fairPlayConfiguration =
    new ContentKeyPolicyFairPlayConfiguration
    {
        Ask = askBytes,
        FairPlayPfx =
                Convert.ToBase64String(appCert.Export(X509ContentType.Pfx, FairPlayPfxPassword)),
        FairPlayPfxPassword = FairPlayPfxPassword,
        RentalAndLeaseKeyType =
                ContentKeyPolicyFairPlayRentalAndLeaseKeyType
                .PersistentUnlimited,
        RentalDuration = 2249
    };

    return fairPlayConfiguration;
}

Nächste SchritteNext steps

Informieren Sie sich über das Schützen mit DRM.Check out how to protect with DRM