共用方式為


PlayReady 受信任的時鐘

PlayReady Trusted Clock 泛指一種時鐘,用於強制執行 PlayReady 用戶端上對 PlayReady 受保護內容設定的基於時間的限制。 任何實施可信時鐘的用戶端,均可確保將播放限制設置為開始日期和時間、到期日期和時間,或第一次播放後的到期日期和時間。根據 PlayReady 產品的健全性規則中定義的層級,這些限制無法被駭客工具篡改。

Microsoft不需要用戶端開發人員使用受信任的時鐘。 不過,不允許沒有受信任時鐘的用戶端使用時間型原則來管理授權,包括到期日。 因為此案例在產業中很常見(例如租用或訂用帳戶),因此Microsoft建議在每個用戶端中實作 PlayReady Trusted Clock

用戶端開發人員可以在其設計中選擇兩種類型的 PlayReady Trusted Clock。 這兩者都可讓您使用以時間為基礎的原則來管理授權:

  • PlayReady 安全時鐘
  • PlayReady 防回退時鐘

PlayReady 安全時鐘

PlayReady 安全時鐘是「硬體即時時鐘」,其設計目的是要抵制強固性規則中所定義層級的未經授權存取」,如 PlayReady 產品的合規性與健全性規則定義條款檔中所定義。

根據 PlayReady 產品的合規性規則需求, PlayReady 安全時鐘 必須使用 安全時鐘服務 來設定其值。 Microsoft會作一些 PlayReady 安全時鐘服務 ,讓裝置製作者可以用於此目的。

PlayReady 安全時鐘

授權伺服器時間

從 PlayReady 4.5 開始,安全時鐘服務可能就是在授權取得過程中提供時間的授權取得伺服器本身,由 PlayReady Server SDK 提供。

若要使用這項功能,必須符合下列需求:

  • 伺服器和用戶端(包括 TEE 和 REE)都必須使用 PlayReady 4.5 或更高版本。
  • 伺服器和用戶端應用程式都必須注意此功能。
  • 用戶端(在 TEE 和 REE 中)必須在建置階段包含安全時間功能,並實作相關聯的OEM_TEE方法,如 PlayReady 裝置移植套件中的程式代碼批注中所述。
  • 用戶端應用程式必須只與支援並啟用此功能的授權取得伺服器通訊,或者也必須能夠與外部 安全時鐘服務通訊。
  • 伺服器必須具有Microsoft所提供的授權伺服器時間憑證。
  • 如果是使用多個授權獲取伺服器實例以提高延展性,它們的作業系統時間必須互相同步。
  • 如果在啟用此功能之前取得具有時間型限制的持續性授權(例如,用戶端已從舊版 PlayReady 升級至 PlayReady 4.5),用戶端和伺服器必須在功能使用后啟用這些授權的重新取得。

伺服器會啟用這項功能,如下所示:

  • 使用Microsoft及其對應密鑰組所提供的 License Server Time 憑證,建構 LicenseServerTimeCertificate 類別的實例。
  • 將 LicenseResponse 類別的 LicenseServerTimeCertificate 屬性設定為該實例。 注意:如果客戶端不支援此功能,則設定這個屬性沒有任何作用,因此不需要根據用戶端支援來將應用程式程式代碼分化。
  • (選擇性)如果 LicenseAcquisitionChallenge 類別的 LicenseServerTimeRequested 只讀屬性傳回 true,授權回應可能會選擇性地包含沒有授權。
  • (選擇性)如果 PlayReadyHeader 類別的 LicenseRequested 唯讀屬性傳回 false,用戶端表示沒有要求授權,伺服器應用程式邏輯可以選擇根據這項資訊採取行動。 (這表示從用戶端傳送的 PlayReady Header v4.3.0.0 具有一個額外的選擇性屬性 LICENSEREQUESTED,而在 PROTECTINFO 節點上設為 false。)

用戶端會啟用此功能,如下所示:

  • 在編譯/連結時在 TEE 和 REE 中包含安全時間功能,並實作程式代碼批註中所述的相關聯的 OEM_TEE 方法,如 PlayReady Porting Kit 中所述。
  • 當任何 PlayReady API 傳回 DRM_E_SECURETIME_CLOCK_NOT_SET 時,請取得授權以設定安全時鐘。
  • 當任何 PlayReady API 傳回DRM_E_LICENSESERVERTIME_MUST_REACQUIRE_LICENSE時,請執行授權取得,以重新取得已失效的持續性授權。 只有在啟用此功能之前取得具有時間型限制的持續性授權才會發生(例如用戶端已從舊版 PlayReady 升級至 PlayReady 4.5)。
  • (選擇性)當純粹為了設定安全時鐘而執行授權擷取時,應用程式可以選擇使用 PlayReady Header v4.3.0.0,並在 PROTECTINFO 節點上增加一個選擇性屬性 LICENSEREQUESTED,將其設定為 false,以表示不需要授權。 如需詳細資訊,請參閱 PlayReady 標頭規格

PlayReady 防回滾時鐘

PlayReady 反回復時鐘是「一個即時時鐘,PlayReady 最終產品會定期驗證其是否已前進」,如 PlayReady 產品的合規性與健全性規則定義檔中所定義

根據 PlayReady 產品的合規性規則需求, PlayReady 反回復時鐘 可以使用任何時間來源來設定其值。 時鐘的信任由 PK 系統內建的防回退機制所提供。 您也可以使用 PlayReady Secure Clock Service 來設定其值。 Microsoft會作一些 PlayReady 安全時鐘服務 ,讓裝置製作者可以用於此目的。

PlayReady 防止回滾時鐘