간단한 종단 간 시스템
일반적으로 Microsoft PlayReady 미디어 파일에 대한 라이선스를 제공하여 콘텐츠를 보호합니다. 파일을 숨기거나, 액세스할 수 없도록 하거나, 시스템에서 시스템으로 파일을 전송할 때 특별한 보호를 적용할 필요가 없습니다. 즉, 운영 체제 요구 사항이나 높은 보안 파일 전송 메커니즘이 필요하지 않습니다. 그러나 파일을 복사하여 친구에게 제공해도 해당 친구가 PlayReady로 보호되는 경우 해당 파일을 사용할 수 없습니다. 미디어 파일을 사용하려면 사용자에게 라이선스가 필요합니다. 이 라이선스는 콘텐츠(미디어 파일)에 대한 제어를 행사하는 기본 수단입니다. 라이선스는 단일 클라이언트(예: 미디어 플레이어) 또는 도메인에 부여됩니다. 라이선스는 다른 클라이언트 또는 다른 도메인에서 작동하지 않습니다.
각 라이선스에는 콘텐츠가 사용되는 방법과 조건을 정확하게 정의하는 권한 및 제한이 포함됩니다. 예를 들어 음악 파일 라이선스는 "재생 권한"을 사용하도록 설정하지만 콘텐츠를 재생할 수 있는 애플리케이션의 보안 수준을 제한할 수 있습니다. 라이선스는 2017년 10월 1일부터 2017년 11월 1일까지 유효할 수 있습니다. 단일 파일에 대한 여러 라이선스가 있을 수 있습니다. 라이선스 중 하나가 적절한 권한을 부여하고 제한 사항이 액세스를 차단하지 않는 한 사용자는 자신의 콘텐츠에 액세스하고 사용할 수 있습니다.
엔드 투 엔드 비디오 서비스 개요
다음 그림에는 왼쪽에 있는 서비스의 백 엔드와 오른쪽에 있는 클라이언트를 포함하여 엔드 투 엔드 비디오 서비스에 대한 대략적인 보기가 포함되어 있습니다.
그림의 왼쪽에서 서비스에 비디오를 스트리밍할 서버(콘텐츠 배포 네트워크)가 있는 것을 볼 수 있습니다. 사용자가 콘텐츠를 찾아보고 재생하려는 콘텐츠(사용자 인터페이스)를 선택할 수 있는 서버도 있습니다. 또한 사용자가 로그인하고 인증할 수 있을 뿐만 아니라 콘텐츠에 대한 지불(인증, 지불)을 허용하는 일부 서버도 있습니다. 또한 PlayReady 라이선스 서버도 있습니다.
그림의 오른쪽에는 클라이언트가 있습니다. 클라이언트는 애플리케이션, 스마트폰 애플리케이션 또는 특정 디바이스(예: 셋톱 박스, 네트워크 수신기 등)를 Windows 수 있습니다. 이러한 클라이언트 중 일부는 플레이어에 PlayReady 통합 클라이언트를 사용할 수 있습니다. 예를 들어 OEM은 운영 체제 또는 하드웨어에서 PlayReady를 통합했을 수 있습니다. 다른 사용자는 앱 스토어에 게시된 애플리케이션에 통합된 클라이언트와 함께 사용할 수 있습니다. 플레이어가 클라이언트 쪽에서 PlayReady를 통합할 수 있는 다양한 옵션이 있습니다.
이 항목에서는 다음 그림과 같이 PlayReady가 서비스에 대해 수행하는 작업에 중점을 집니다.
PlayReady에서 제공하는 것은 클라이언트가 서버에서 라이선스를 요청한 다음 열린 네트워크를 통해 보호된 형식으로 콘텐츠를 보호하는 키를 제공하는 방법입니다. PlayReady가 수행하는 두 번째 작업은 클라이언트에 권한 및 권한 제한을 제공하는 것입니다. PlayReady를 사용하면 서비스에서 콘텐츠 재생을 위한 키를 제공할 수 있지만, 예를 들어 클라이언트가 임대 시나리오에서 2일 동안만 해당 키를 사용하도록 허용합니다. 따라서 PlayReady는 키로 권한 및 권리 제한을 선언하는 방법을 제공합니다.
또한 PlayReady는 클라이언트 쪽에서 콘텐츠 키를 보다 안전하게 저장할 수 있는 방법을 제공하므로 클라이언트는 해당 클라이언트 키를 사용하여 렌더링을 위해 콘텐츠를 암호 해독할 수 있지만, 콘텐츠를 명확하게 저장하고 다른 사용자와 공유하는 것을 허용하지 않습니다.
PlayReady 클라이언트가 올바른 방식으로 동작하도록 하려면 PlayReady에서 준수 및 견고성 규칙을 따르기 위해 하드웨어 및 소프트웨어 구현이 필요합니다. 이러한 규칙은 클라이언트가 PlayReady 콘텐츠를 암호 해독하거나 처리할 때 동작하는 방식을 제어합니다. 또한 클라이언트가 라이선스에 있는 제한을 올바르게 처리해야 합니다. 따라서 클라이언트가 콘텐츠 키를 48시간 이내로 사용하라는 지침을 수신하는 경우 클라이언트는 해당 지침을 따라야 합니다. 이러한 규칙은 준수 및 견고성 규칙에서 Microsoft에서 제공하며 클라이언트 개발자가 해당 규칙을 클라이언트에 적용하는 것은 클라이언트 개발자에게 달려 있습니다.
기본 암호화 및 라이선스 프로세스
다음 단계에서는 콘텐츠에 대한 엔드 투 엔드 암호화 및 라이선스 프로세스와 PlayReady가 프로세스에 참여하는 방법을 보여 줍니다.
다음 그림에는 암호화되지 않은 하나의 자산(오디오/비디오 파일)이 포함되어 있습니다. 콘텐츠를 암호화하는 데 사용되는 메서드는 전적으로 콘텐츠 공급자에게 달려 있으며 PlayReady의 일부로 제공되지 않습니다.
이 파일을 암호화하려면 서비스에서 콘텐츠를 암호화하는 데 사용할 새 콘텐츠 키를 생성하는 콘텐츠 암호화기에서 키 생성기를 사용해야 합니다. 이 콘텐츠 키는 나중에 PlayReady 라이선스 서버에서 클라이언트로 전달되어 사용자에 대한 콘텐츠 및 렌더링의 암호 해독을 허용합니다. 암호화 서비스는 프라이빗 값인 콘텐츠 키와 함께 GUID인 키 식별자(KeyID)를 콘텐츠 키와 연결합니다. KeyID는 공용 값입니다.
키 및 KeyID는 암호화 시 설계되며 일반적으로 일종의 데이터베이스인 키 관리 시스템에 저장됩니다. PlayReady는 키 관리 시스템을 제공하지 않으므로 키 관리 시스템을 제공하기 위해 브로드캐스터와 함께 서비스를 빌드하는 것은 서비스 또는 파트너에게 달려 있습니다.
키 및 KeyID를 키 관리 시스템에 저장하는 것 외에도 KeyID를 패키지러에 맞게 조정한 다음 헤더를 생성해야 합니다. 이 헤더는 PlayReady 헤더 사양에 따라 서비스 또는 파트너에 의해 서식이 지정되고 콘텐츠 파일 헤더의 지우기 형식으로 지정됩니다.
이 시점에서 오디오 및 비디오는 KeyID를 사용하여 암호화되며 클라이언트에 배달할 준비가 된 암호화된 콘텐츠 파일이 있습니다.
이제 클라이언트가 콘텐츠 사용을 시작할 수 있습니다. 클라이언트가 가장 먼저 수행할 작업은 일반적으로 로그인 이름과 암호를 제공하여 사용자를 서비스에 인증하는 것이지만 사용자 및 디바이스를 인증하기 위한 다른 메커니즘은 괜찮습니다. 일반적으로 세션 토큰은 사용자가 확인되면 클라이언트에 반환됩니다. 사용자 인증에 사용되는 메커니즘은 전적으로 사용자가 인증되는 방식에 따라 다릅니다. PlayReady는 이 기술을 제공하지 않습니다.
다음으로, 콘텐츠가 클라이언트에 전달됩니다(예: 클라이언트가 콘텐츠를 구성하는 데이터 스트림의 일부를 다운로드하기 시작했습니다). 그런 다음 클라이언트는 이 콘텐츠를 구문 분석하기 시작하고 암호화되어 알 수 없지만 KeyID를 포함하는 키를 사용합니다.
이 시점에서 클라이언트는 라이선스 획득 요청을 라이선스 서버에 보냅니다.
그런 다음 라이선스 서버가 인증 서비스와 인터페이스하여 사용자를 확인합니다. 일반적으로 라이선스 서버에서 가장 먼저 수행하는 작업은 클라이언트/사용자가 해당 특정 라이선스에 대한 권리를 가지고 있는지 확인하는 것입니다. 또한 PlayReady는 해당 레이아웃(인증)을 제공하지 않으며 라이선스 서버만 제공합니다. 인증 서비스는 일반적으로 제한 사항으로 예 또는 아니요 또는 예로 응답합니다(예를 들어 이 사용자는 이 특정 영화에 대한 권리가 있지만 사용자가 매월 지불하는 금액에 따라 최고 품질의 구독 수준이 없기 때문에 비디오 품질은 낮습니다).
그런 다음, 라이선스 서버는 키를 저장하는 키 관리 시스템에서 KeyID를 기반으로 키 값을 요청하고 키 관리 시스템은 해당 요청에 응답합니다. 다시 말해 PlayReady는 키 관리 시스템의 구성 요소를 제공하지 않으므로 PlayReady 라이선스 서버에서 서비스가 키를 저장하기 위해 빌드한 구성 요소에 대한 요청이 있을 것입니다.
키는 라이선스 서버에서 수신되며 라이선스 서버는 라이선스를 제공할 수 있습니다. 보호된 PlayReady 라이선스 응답에는 키 값과 클라이언트가 적용할 권한 및 권한 제한 목록이 포함됩니다.
이 데모에서는 PlayReady 라이선스 서버가 하나의 키만 제공하는 것을 보여 주지만 라이선스 서버가 하나의 라이선스 응답으로 라이선스 스택을 제공할 수 있습니다. 여러 라이선스를 하나의 트랜잭션에 포함할 수 있으며, 콘텐츠가 여러 키로 보호되거나 서비스가 여러 키를 미리 배달하려는 경우 각 라이선스가 하나의 키를 제공할 수 있습니다. 예를 들어 서비스는 사용자가 8개의 트랙을 연속으로 수신 대기할 것임을 알고 있기 때문입니다.
PlayReady에서 제공하는 다른 기술은 라이선스 Microsoft Store 호출되는 클라이언트의 키와 권한을 저장하는 방법입니다.
라이선스 Microsoft Store 일반적으로 HDS라고 합니다. 라이선스 Microsoft Store 구조는 해시된 데이터 저장소이기 때문입니다. 디바이스에는 여러 유형의 라이선스 저장소가 있을 수 있습니다. 한 애플리케이션은 한 회사의 HDS가 다른 회사의 HDS와 동일한 파일에 있지 않도록 하기 위해 자체 HDS를 포함할 수 있습니다. 이 디자인을 선택하는 것은 전적으로 클라이언트 개발자에게 달려 있습니다. 예를 들어 Windows PlayReady를 사용하여 Microsoft는 Internet Explorer용 HDS 하나와 사이트당 Microsoft Edge 위한 HDS와 Windows 유니버설 앱마다 하나씩 사용하도록 선택했습니다.
HDS는 디바이스의 하드 드라이브 또는 영구 메모리와 같은 영구적 방식으로 저장하거나 비영구적 메모리와 같은 비영구적 방식으로 저장할 수 있습니다. 따라서 라이선스 서버가 라이선스를 발급할 때 라이선스를 클라이언트의 하드 드라이브에 저장해서는 안 됨을 나타내는 라이선스의 속성을 설정할 수 있습니다. 또는 설정된 최상위 상자 또는 휴대폰의 경우 서비스로서 라이선스를 영구 메모리에 저장하지 않기 때문에 영구 메모리에 저장해서는 안 됩니다. 이 경우 HDS를 플레이어 애플리케이션의 컨텍스트에서 메모리에 저장하면 사용자가 플레이어 애플리케이션을 닫자마자 라이선스 및 해당 권한이 사라집니다.