동적 암호화 및 키 제공을 통해 콘텐츠 보호

Media Services 로고 v3


경고

Azure Media Services는 2024년 6월 30일에 사용 중지됩니다. 자세한 내용은 AMS 사용 중지 가이드를 참조하세요.

Azure Media Services를 사용하여 스토리지, 처리 및 배달을 통해 컴퓨터를 떠날 때부터 미디어를 보호합니다. Media Services를 사용하면 Advanced Encryption Standard(AES-128) 또는 Microsoft PlayReady, Google Widevine 및 Apple FairPlay 등 세 가지 주요 DRM(디지털 권한 관리) 시스템 중 하나로 동적 암호화된 라이브 콘텐츠 및 주문형 콘텐츠를 제공할 수 있습니다.

FairPlay 스트리밍은 iOS 디바이스, Apple TV 및 macOS의 Safari에서 HLS(HTTP 라이브 스트리밍)를 통해 전송된 비디오에만 사용할 수 있는 Apple 기술입니다. 또한 Media Services는 인증된 클라이언트에게 AES 키 및DRM(PlayReady, Widevine 및 FairPlay) 라이선스를 배달하는 서비스를 제공합니다. AES로 암호화되지 않은 키로 암호화되고 HTTPS를 통해 전송되는 콘텐츠는 클라이언트에 도달할 때까지 명확하지 않습니다.

Media Services v3에서 콘텐츠 키는 스트리밍 로케이터와 연결됩니다(이 예제 참조). Media Services 키 전송 서비스를 사용하는 경우 Azure Media Services를 통해 자동으로 콘텐츠 키를 생성할 수 있습니다. 자체 키 전송 서비스를 사용 중이거나 두 데이터 센터에 같은 콘텐츠 키가 있어야 하는 고가용성 시나리오를 처리해야 하는 경우 직접 콘텐츠 키를 생성해야 합니다.

플레이어가 스트림을 요청하면 Media Services는 지정된 키를 사용하고 AES 암호화되지 않은 키 또는 DRM 암호화를 사용하여 동적으로 사용자의 콘텐츠를 암호화합니다. 스트림을 해독하기 위해 플레이어는 Media Services 키 배달 서비스 또는 지정한 키 배달 서비스에서 키를 요청합니다. 사용자에게 키를 얻을 권한이 있는지를 결정하기 위해 서비스는 키에 지정한 콘텐츠 키 정책을 평가합니다.

콘텐츠 보호 시스템

REST API 또는 Media Services 클라이언트 라이브러리를 사용하여 라이선스 및 키에 대한 권한 부여 및 인증 정책을 구성할 수 있습니다.

Widevine은 GovCloud 지역에서 사용할 수 없습니다.

참고

미디어 서비스는 KeyDelivery, RESTv2, 스트리밍 엔드포인트 및 라이브 이벤트 스트리밍 원본에 대한 모든 요청에 대해 TLS 1.2를 적용합니다. 기존 TLS 1.0 또는 1.1 사용이 있는 계정은 이 적용에서 제외됩니다. 이러한 미디어 서비스 엔드포인트에 대한 모든 요청에 대해 TLS 1.2를 적용하려면 AMS 지원에 문의하세요.

DRM 클라이언트를 지원하는 브라우저

일반 브라우저는 다음 DRM 클라이언트를 지원합니다.

브라우저 암호화
Chrome Widevine
Microsoft Edge, Internet Explorer 11 PlayReady
Firefox Widevine
Opera Widevine
Safari FairPlay

콘텐츠 액세스 제어

콘텐츠 키 정책을 구성하여 콘텐츠에 액세스하는 사람을 제어할 수 있습니다. Media Services는 키를 요청 하는 사용자에 권한을 부여하는 여러 방법을 지원합니다. 키가 클라이언트에 배달되려면 먼저 클라이언트(플레이어)에서 정책을 충족해야 합니다. 콘텐츠 키 정책에는 개방 또는 토큰 제한이 있을 수 있습니다.

권한 부여 없이 누구에게나 라이선스를 발급하려는 경우 공개 제한 콘텐츠 키 정책을 사용할 수 있습니다. 예를 들어 수익이 구독 기반이 아니라 광고 기반인 경우입니다.

토큰 제한 콘텐츠 키 정책을 사용하여 콘텐츠 키를 라이선스/키 요청에서 유효한 JWT 토큰 또는 SWT(단순 웹 토큰)를 표시하는 클라이언트에만 보낼 수 있습니다. 이 토큰은 STS에서 발급해야 합니다.

STS로 Azure AD 사용

STS로 Azure AD를 사용할 수 있습니다. 지정된 키로 서명된 토큰을 만들고 토큰 제한 구성에서 지정한 클레임을 발급하려면 STS를 구성해야 합니다. Media Services 라이선스/키 전송 서비스는 다음 조건이 모두 존재하는 경우 요청된 라이선스 또는 키를 클라이언트에 반환합니다.

  • 토큰이 유효합니다.
  • 토큰의 클레임은 라이선스 또는 키에 대해 구성된 클레임과 일치합니다.

토큰 제한 정책을 구성하는 경우 기본 확인 키, 발급자 및 대상 매개 변수를 지정해야 합니다. 기본 확인 키에는 토큰 서명에 사용된 키가 포함됩니다. 발급자는 토큰을 발급하는 STS입니다. 때로 범위라고도 하는 대상은 토큰의 의도 또는 토큰에서 접근을 인증하는 대상 리소스를 설명합니다. Media Services 라이선스/키 전송 서비스는 해당 토큰의 값이 템플릿 파일에 있는 값과 일치하는지 확인합니다.

토큰 재생 방지

토큰 재생 방지 기능을 사용하면 키 또는 라이선스를 요청하는 데 동일한 토큰을 사용할 수 있는 횟수에 대한 제한을 설정할 수 있습니다. 토큰에 형식 urn:microsoft:azure:mediaservices:maxuses 의 클레임을 추가할 수 있습니다. 여기서 값은 토큰을 사용하여 라이선스 또는 키를 획득할 수 있는 횟수입니다. 키 배달에 동일한 토큰을 사용하는 모든 후속 요청은 권한 없음 응답을 반환합니다.

고려 사항

  • 토큰 생성을 제어해야 합니다. 클레임은 토큰 자체에 배치해야 합니다.
  • 이 기능을 사용하는 경우 만료 시간이 요청을 수신하는 시간부터 1시간이 넘는 토큰이 있는 요청은 승인되지 않은 응답으로 거부됩니다.
  • 토큰은 해당 서명으로 고유하게 식별됩니다. 페이로드를 변경(예: 만료 시간 또는 클레임 업데이트)하면 토큰의 서명이 변경되고 이전에 키 전송이 수행되지 않은 새 토큰으로 계산됩니다.
  • 토큰이 값을 초과하면 재생이 실패합니다 maxuses .
  • 이 기능은 기존의 모든 사용권 계약에 따라 보호하는 콘텐츠에 사용할 수 있습니다(발급된 토큰만 변경하면 됨).
  • 이 기능은 JWT 및 SWT 모두에서 작동합니다.

사용자 지정 STS 사용

사용자 지정 STS를 사용하여 토큰을 제공하기로 선택할 수 있습니다. 이유는 다음과 같습니다.

  • ID 공급자(IDP)가 STS를 지원하지 않습니다.

  • STS를 해당 구독자 청구 시스템과 통합하는 데 보다 유연하고 긴밀한 제어가 필요할 수 있습니다.

    예를 들어 OTT 서비스 운영자는 프리미엄, 기본 및 스포츠 등과 같은 여러 구독자 패키지를 제공할 수 있습니다. 이 작업자는 토큰의 클레임을 구독자의 패키지와 일치시켜 특정 패키지의 콘텐츠만 제공되도록 할 수 있습니다. 이 경우 사용자 지정 STS가 필요한 유연성 및 제어를 제공합니다.

  • DRM 라이선스 매개 변수가 서로 다른 여러 ContentKeyPolicyOptions(예: 구독 라이선스 대 임대 라이선스) 중에서 선택하도록 토큰에 사용자 지정 클레임을 포함합니다.

  • 토큰이 액세스 권한을 부여하는 키의 콘텐츠 키 식별자를 나타내는 클레임을 포함합니다.

사용자 지정 STS를 사용할 때는 다음 두 가지를 변경해야 합니다.

  • 자산에 대한 라이선스 제공 서비스를 구성할 때 Azure AD의 현재 키 대신 사용자 지정 STS에서 확인에 사용한 보안 키를 지정해야 합니다.
  • JWT 토큰이 생성되면 Azure AD의 현재 X509 인증서의 프라이빗 키 대신 보안 키가 지정됩니다.

두 가지 유형의 보안 키가 있습니다.

  • 대칭 키: JWT를 생성 및 확인하는 데 동일한 키가 사용됩니다.
  • 비대칭 키: JWT를 암호화/생성하는 데는 프라이빗 키가, 토큰을 확인하는 데는 공개 키가 사용되는 방식으로 X509 인증서에 공개-프라이빗 키 쌍이 사용됩니다.

참고

개발 플랫폼으로 .NET Framework/C#을 사용하는 경우 비공개 보안 키에 사용된 X509 인증서에는 키 길이가 2048 이상이어야 합니다. 이 키 길이는 .NET Framework에서 System.IdentityModel.Tokens.X509AsymmetricSecurityKey 클래스의 요구 사항입니다. 그렇지 않으면 다음 예외가 발생합니다. IDX10630: 서명을 위한 ‘System.IdentityModel.Tokens.X509AsymmetricSecurityKey’는 ‘2048’비트보다 작을 수 없습니다.

Media Services 이외의 라이선스/키 제공 서비스 사용

다른 라이선스/키 제공 서비스를 사용하려는 경우 키 정책 템플릿을 편집할 수 있습니다.

방법, 자습서 및 샘플

.Net Digital Rights Management 샘플에서는 .NET 을 사용하여 Media Services v3에서 다중 DRM 시스템을 구현하는 방법을 보여 줍니다.

Node.JS 및 Python에 사용할 수 있는 추가 콘텐츠 보호 샘플이 있습니다.

Node.JS Python Description
Node.JS PlayReady 및 Widevine DRM을 사용하여 HLS 및 DASH 업로드 및 스트림 Python PlayReady 및 Widevine DRM을 사용하여 HLS 및 DASH 업로드 및 스트림 Widevine 및 PlayReady DRM을 사용하여 인코딩하고 스트림하는 방법을 설명합니다.
Node.JS 기본 Playready DRM 콘텐츠 보호 및 스트리밍 Python 기본 Playready DRM 콘텐츠 보호 및 스트리밍 PlayReady DRM을 사용하여 인코딩하고 스트리밍하는 방법 설명
Node.JS 기본 Widevine DRM 콘텐츠 보호 및 스트리밍 Python 기본 Widevine DRM 콘텐츠 보호 및 스트리밍 Widevine DRM을 사용하여 인코딩하고 스트리밍하는 방법 설명

도움말 및 지원 보기

다음 방법 중 하나로 Media Services에 질문하거나 업데이트를 따를 수 있습니다.