PlayReady 신뢰할 수 있는 시계

PlayReady 신뢰할 수 있는 시계는 PlayReady 클라이언트의 PlayReady 보호 콘텐츠에 설정된 시간 기반 제한을 적용하는 데 사용되는 시계의 일반적인 용어입니다. 신뢰할 수 있는 시계를 구현하는 모든 클라이언트는 재생을 시작 날짜 및 시간, 만료 날짜 및 시간 또는 첫 번째 플레이 후 만료 날짜 및 시간으로 제한하는 클라이언트가 PlayReady 제품에 대한 견고성 규칙에 정의된 수준으로 해킹 도구를 사용하여 변조될 수 없도록 합니다.

Microsoft는 클라이언트 개발자가 신뢰할 수 있는 시계를 사용하도록 요구하지 않습니다. 그러나 신뢰할 수 있는 시계가 없는 클라이언트는 만료를 포함하여 시간 기반 정책을 사용하여 라이선스를 관리할 수 없습니다. 이 시나리오는 업계에서 매우 일반적이므로(예: 임대 또는 구독) Microsoft는 모든 클라이언트에서 PlayReady 신뢰할 수 있는 시계를 구현하는 것이 좋습니다.

클라이언트 개발자는 디자인에서 두 가지 유형의 PlayReady 신뢰할 수 있는 시계 중에서 선택할 수 있습니다. 둘 다 시간 기반 정책을 사용하여 라이선스를 관리할 수 있습니다.

  • PlayReady 보안 클록
  • PlayReady 롤백 방지 시계

PlayReady 보안 클록

PlayReady 보안 시계PlayReady 제품의 규정 준수 및 견고성 규칙에 대한 정의된 용어 문서에 정의된 대로 "견고성 규칙에 정의된 수준에서 무단 액세스를 방지하도록 설계된 하드웨어 실시간 시계"입니다.

PlayReady 제품에 대한 규정 준수 규칙의 요구 사항에 따라 PlayReady 보안 시계보안 클록 서비스를 사용하여 해당 값을 설정해야 합니다. Microsoft는 디바이스 제조업체가 이러한 용도로 사용할 수 있는 일부 PlayReady Secure Clock Services 를 운영합니다.

PlayReady Secure Clock

라이선스 서버 시간

PlayReady 4.5부터 Secure Clock Service 는 PlayReady 서버 SDK가 라이선스 취득 중에 시간을 제공하는 라이선스 취득 서버 자체일 수 있습니다.

이 기능을 사용하려면 다음 요구 사항을 충족해야 합니다.

  • 서버와 클라이언트(TEE 및 REE 포함)는 모두 PlayReady 4.5 이상을 사용해야 합니다.
  • 서버와 클라이언트 애플리케이션 모두 이 기능을 알고 있어야 합니다.
  • 클라이언트(TEE 및 REE 모두)는 빌드 시 보안 시간 기능을 포함하고 PlayReady 디바이스 포팅 키트의 코드 주석에 설명된 대로 연결된 OEM_TEE 메서드를 구현해야 합니다.
  • 클라이언트 애플리케이션은 이 기능을 지원하고 사용하도록 설정하는 라이선스 취득 서버와만 통신하거나 외부 보안 시계 서비스와 통신할 수 있어야 합니다.
  • 서버에는 Microsoft에서 제공하는 라이선스 서버 시간 인증서가 있어야 합니다.
  • 확장성을 위해 여러 라이선스 취득 서버 인스턴스를 사용하는 경우 OS 시스템 시간을 서로 동기화해야 합니다.
  • 기능을 사용하도록 설정하기 전에 시간 기반 제한 사항이 있는 영구 라이선스를 획득한 경우(예: 이전 버전의 PlayReady에서 PlayReady 4.5로 클라이언트가 업그레이드됨) 클라이언트와 서버는 기능이 사용 중이면 해당 라이선스를 다시 획득할 수 있도록 설정해야 합니다.

서버는 다음과 같이 이 기능을 사용하도록 설정합니다.

  • Microsoft에서 제공하는 라이선스 서버 시간 인증서와 해당 키 쌍을 사용하여 LicenseServerTimeCertificate 클래스의 인스턴스를 생성합니다.
  • LicenseResponse 클래스의 LicenseServerTimeCertificate 속성을 해당 인스턴스로 설정합니다. 참고: 클라이언트가 기능을 지원하지 않는 경우 이 속성을 설정해도 효과가 없으므로 클라이언트 지원에 따라 애플리케이션 코드를 등록할 필요가 없습니다.
  • (선택 사항) LicenseAcquisitionChallenge 클래스의 LicenseServerTimeRequested 읽기 전용 속성이 true를 반환하는 경우 라이선스 응답에 필요에 따라 라이선스가 포함되지 않을 수 있습니다.
  • (선택 사항) PlayReadyHeader 클래스의 LicenseRequested 읽기 전용 속성이 false를 반환하는 경우 클라이언트는 라이선스가 요청되지 않고 서버 애플리케이션 논리가 이 정보에 대해 작동하도록 선택할 수 있음을 표시했습니다. 즉, 클라이언트에서 보낸 PlayReady 헤더 v4.3.0.0에는 PROTECTINFO 노드의 추가 선택적 특성 LICENSEREQUESTED가 false로 설정되어 있습니다.

클라이언트는 다음과 같이 이 기능을 사용하도록 설정합니다.

  • TEE 및 REE 모두에 보안 시간 기능을 컴파일/링크 시간에 포함하고 PlayReady 포팅 키트의 코드 주석에 설명된 대로 연결된 OEM_TEE 메서드를 구현합니다.
  • PlayReady API가 DRM_E_SECURETIME_CLOCK_NOT_SET 반환하는 경우 라이선스 취득을 수행하여 보안 시계를 설정합니다.
  • PlayReady API가 DRM_E_LICENSESERVERTIME_MUST_REACQUIRE_LICENSE 반환하는 경우 라이선스 취득을 수행하여 무효화된 영구 라이선스를 다시 획득합니다. 이는 기능을 사용하도록 설정하기 전에 시간 기반 제한이 있는 영구 라이선스를 획득한 경우에만 발생합니다(예: 클라이언트가 이전 버전의 PlayReady에서 PlayReady 4.5로 업그레이드됨).
  • (선택 사항) 보안 클록을 설정하기 위해 라이선스 취득을 수행하는 경우 애플리케이션은 라이선스가 필요하지 않음을 나타내기 위해 PROTECTINFO 노드에서 추가 선택적 특성 LICENSEREQUESTED가 false로 설정된 PlayReady 헤더 v4.3.0.0을 사용하도록 선택할 수 있습니다. 자세한 내용은 PlayReady 헤더 사양을 참조하세요.

PlayReady 롤백 방지 시계

PlayReady 롤백 방지 시계PlayReady 제품의 규정 준수 및 견고성 규칙에 대한 정의된 용어 문서에 정의된 대로 "PlayReady 최종 제품에서 정기적으로 고급으로 확인되는 실시간 시계"입니다.

PlayReady 제품에 대한 규정 준수 규칙의 요구 사항에 따라 PlayReady 롤백 방지 시계는 시간 원본을 사용하여 값을 설정할 수 있습니다. 클록의 신뢰는 PK에 기본 제공되는 롤백 방지 메커니즘에 의해 제공됩니다. PlayReady Secure Clock Service를 사용하여 해당 값을 설정할 수도 있습니다. Microsoft는 디바이스 제조업체가 이러한 용도로 사용할 수 있는 일부 PlayReady Secure Clock Services 를 운영합니다.

PlayReady Anti-rollback Clock