Inhoudsbeveiliging met dynamische versleuteling en sleutellevering
Waarschuwing
Azure Media Services wordt op 30 juni 2024 buiten gebruik gesteld. Zie de handleiding voor buitengebruikstelling van AMS voor meer informatie.
Gebruik Azure Media Services om uw media te beveiligen vanaf het moment dat deze uw computer verlaten tot opslag, verwerking en levering. Met Media Services kunt u uw live en on-demand inhoud dynamisch versleutelen met Advanced Encryption Standard (AES-128) of een van de drie belangrijkste Digital Rights Management-systemen (DRM): Microsoft PlayReady, Google Widevine en Apple FairPlay.
FairPlay Streaming is een Technologie van Apple die alleen beschikbaar is voor video die is overgebracht via HTTP Live Streaming (HLS) op iOS-apparaten, in Apple TV en in Safari op macOS. Media Services biedt ook een service voor het leveren van AES-sleutels en DRM-licenties (PlayReady, Widevine en FairPlay) aan geautoriseerde klanten. Als inhoud is versleuteld met een duidelijke AES-sleutel en via HTTPS wordt verzonden, is deze pas duidelijk als deze de client bereikt.
In Media Services v3 is een inhoudssleutel gekoppeld aan streaming-locator (zie dit voorbeeld). Als u de Media Services-service voor sleutellevering gebruikt, kunt u Azure Media Services de inhoudssleutel voor u laten genereren. De inhoudssleutel moet zelf worden gegenereerd als u uw eigen sleutelleveringsservice gebruikt of als u een scenario met hoge beschikbaarheid moet afhandelen waarbij u dezelfde inhoudssleutel in twee datacenters moet hebben.
Wanneer een stream wordt aangevraagd door een speler, gebruikt Media Services de opgegeven sleutel om uw inhoud dynamisch te versleutelen met AES clear key of DRM-versleuteling. Voor het ontsleutelen van de stream vraagt de speler de sleutel aan bij Media Services-sleutelleveringsservice of de sleutelleveringsservice die u hebt opgegeven. Om te bepalen of de gebruiker gemachtigd is om de sleutel op te halen, evalueert de service het inhoudssleutelbeleid dat u voor de sleutel hebt opgegeven.
U kunt de REST API of een Media Services-clientbibliotheek gebruiken om autorisatie- en verificatiebeleid voor uw licenties en sleutels te configureren.
Widevine is niet beschikbaar in de GovCloud-regio.
Notitie
Media Services dwingt TLS 1.2 af voor alle aanvragen voor KeyDelivery, RESTv2, Streaming Endpoint en Live Event Streaming Origins. Accounts met bestaand TLS 1.0- of 1.1-gebruik worden uitgesloten van deze afdwinging. Als u TLS 1.2 wilt afdwingen voor al uw aanvragen voor deze Media Services-eindpunten, neemt u contact op met de ondersteuning van AMS.
Browsers die DRM-clients ondersteunen
Algemene browsers ondersteunen de volgende DRM-clients:
Browser | Versleuteling |
---|---|
Chrome | Widevine |
Microsoft Edge, Internet Explorer 11 | PlayReady |
Firefox | Widevine |
Opera | Widevine |
Safari | FairPlay |
Toegang tot inhoud beheren
U kunt bepalen wie toegang heeft tot uw inhoud door het beleid voor inhoudssleutels te configureren. Media Services ondersteunt meerdere manieren om gebruikers te autoriseren die sleutels aanvragen. De client (speler) moet voldoen aan het beleid voordat de sleutel aan de client kan worden geleverd. Het inhoudssleutelbeleid kan open - of tokenbeperking hebben.
Er kan een open-beperkte inhoudssleutelbeleid worden gebruikt wanneer u een licentie wilt verlenen aan iemand zonder autorisatie. Bijvoorbeeld als uw omzet is gebaseerd op advertenties en niet op basis van abonnementen.
Met een inhoudssleutelbeleid met een tokenbeperking wordt de inhoudssleutel alleen verzonden naar een client die een geldig JWT-token of een eenvoudig webtoken (SWT) presenteert in de licentie-/sleutelaanvraag. Dit token moet worden uitgegeven door een STS.
Azure AD gebruiken als STS
U kunt Azure AD als STS gebruiken. Het moet worden geconfigureerd om een token te maken dat is ondertekend met de opgegeven sleutel en claims uit te geven die u hebt opgegeven in de configuratie voor tokenbeperking. De Media Services-licentie-/sleutelleveringsservice retourneert de aangevraagde licentie of sleutel naar de client als beide van deze voorwaarden bestaan:
- Het token is geldig.
- De claims in het token komen overeen met de claims die zijn geconfigureerd voor de licentie of sleutel.
Wanneer u het beleid voor tokenbeperkingen configureert, moet u de primaire verificatiesleutel, verlener en doelgroepparameters opgeven. De primaire verificatiesleutel bevat de sleutel waarmee het token is ondertekend. De verlener is de STS die het token uitgeeft. De doelgroep, ook wel bereik genoemd, beschrijft de intentie van het token of de resource waartoe het token toegang toekent. De Media Services-service voor licentie-/sleutellevering valideert dat de waarden in het token overeenkomen met de waarden in de sjabloon.
Preventie van tokenherhaling
Met de functie Preventie van tokenherhaling kunt u een limiet instellen voor het aantal keren dat hetzelfde token kan worden gebruikt om een sleutel of licentie aan te vragen. U kunt een claim van het type urn:microsoft:azure:mediaservices:maxuses
toevoegen aan het token, waarbij de waarde het aantal keren is dat het token kan worden gebruikt om een licentie of sleutel te verkrijgen. Alle volgende aanvragen met hetzelfde token voor Sleutellevering retourneren een niet-geautoriseerd antwoord.
Overwegingen
- U moet controle hebben over het genereren van tokens. De claim moet in het token zelf worden geplaatst.
- Wanneer u deze functie gebruikt, worden aanvragen met tokens waarvan de verlooptijd meer dan een uur verwijderd is van het moment waarop de aanvraag wordt ontvangen, geweigerd met een niet-geautoriseerd antwoord.
- Tokens worden uniek geïdentificeerd aan de hand van hun handtekening. Elke wijziging in de nettolading (bijvoorbeeld het bijwerken van de verlooptijd of de claim) wijzigt de handtekening van het token en wordt meegeteld als een nieuw token dat nog niet eerder is overgekomen.
- Afspelen mislukt als het token de
maxuses
waarde heeft overschreden. - Deze kan worden gebruikt voor alle bestaande beveiligde inhoud (alleen het uitgegeven token moet worden gewijzigd).
- Het werkt met zowel JWT als SWT.
Een aangepaste STS gebruiken
U kunt ervoor kiezen om een aangepaste STS te gebruiken om tokens op te geven. Redenen zijn onder andere:
Uw id-provider (IDP) biedt geen ondersteuning voor STS.
Mogelijk hebt u flexibeler of strakkere controle nodig om de STS te integreren met uw abonnementsfactureringssysteem.
Een OTT-serviceoperator kan bijvoorbeeld meerdere abonneepakketten aanbieden, zoals Premium, Basic en Sports. De operator wil de claims in een token mogelijk vergelijken met het pakket van een abonnee, zodat alleen de inhoud in een specifiek pakket beschikbaar wordt gesteld. In dit geval biedt een aangepaste STS de benodigde flexibiliteit en controle.
Aangepaste claims opnemen in het token om te selecteren tussen verschillende ContentKeyPolicyOptions met verschillende DRM-licentieparameters, bijvoorbeeld een abonnementslicentie versus een huurlicentie.
Een claim opnemen die de inhoudssleutel-id vertegenwoordigt van de sleutel waaraan het token toegang verleent.
Wanneer u een aangepaste STS gebruikt, moeten er twee wijzigingen worden aangebracht:
- Wanneer u een service voor het leveren van licenties voor een asset configureert, moet u de beveiligingssleutel opgeven die wordt gebruikt voor verificatie door de aangepaste STS in plaats van de huidige sleutel van Azure AD.
- Wanneer een JTW-token wordt gegenereerd, wordt een beveiligingssleutel opgegeven in plaats van de persoonlijke sleutel van het huidige X509-certificaat in Azure AD.
Er zijn twee typen beveiligingssleutels:
- Symmetrische sleutel: dezelfde sleutel wordt gebruikt voor het genereren en verifiëren van een JWT.
- Asymmetrische sleutel: een openbaar-persoonlijk sleutelpaar in een X509-certificaat wordt gebruikt met een persoonlijke sleutel voor het versleutelen/genereren van een JWT en met de openbare sleutel om het token te verifiëren.
Notitie
Als u .NET Framework/C# als uw ontwikkelplatform gebruikt, moet het X509-certificaat dat wordt gebruikt voor een asymmetrische beveiligingssleutel een sleutellengte van ten minste 2048 hebben. Deze sleutellengte is een vereiste van de klasse System.IdentityModel.Tokens.X509AsymmetricSecurityKey in .NET Framework. Anders wordt de volgende uitzondering gegenereerd: IDX10630: De 'System.IdentityModel.Tokens.X509AsymmetricSecurityKey' voor ondertekening mag niet kleiner zijn dan '2048' bits.
Een andere licentie-/sleutelleveringsservice dan Media Services gebruiken
U kunt sjablonen voor sleutelbeleid bewerken als u een andere service voor het leveren van licenties/sleutels wilt gebruiken.
Instructies, zelfstudies en voorbeelden
.NET Digital Rights Management-voorbeeld laat zien hoe u een multi-DRM-systeem implementeert met Media Services v3 met behulp van .NET.
Er zijn aanvullende voorbeelden voor inhoudsbeveiliging beschikbaar voor Node.JS en Python:
Node.JS | Python | Description |
---|---|---|
Node.JS HLS en DASH uploaden en streamen met PlayReady en Widevine DRM | Python HLS en DASH uploaden en streamen met PlayReady en Widevine DRM | Demonstreert hoe u coderen en streamen met Widevine en PlayReady DRM |
Node.JS Playready DRM-inhoudsbeveiliging en -streaming | Python Basic Playready DRM-inhoudsbeveiliging en -streaming | Demonstreert hoe u coderen en streamen met PlayReady DRM |
Node.JS Basic Widevine DRM-inhoudsbeveiliging en -streaming | Python Basic Widevine DRM-inhoudsbeveiliging en -streaming | Demonstreert hoe u coderen en streamen met Widevine DRM |
Help en ondersteuning
U kunt contact opnemen met Media Services met vragen of onze updates op een van de volgende manieren volgen:
- Q & A
-
Stack Overflow. Tag vragen met
azure-media-services
. - @MSFTAzureMedia of gebruik @AzureSupport om ondersteuning aan te vragen.
- Open een ondersteuningsticket via de Azure Portal.