PlayReady 信任時鐘

PlayReady Trusted Clock是時鐘的一般詞彙,用來強制執行 PlayReady 用戶端上 PlayReady 受保護內容上設定的時間型限制。 任何實作受信任時鐘的用戶端,可確保將播放限制為開始日期和時間、到期日期和時間,或第一次播放之後到期日期和時間的用戶端,無法竄改使用駭客工具對 PlayReady 產品健全性規則中定義的層級。

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

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

  • PlayReady 安全時鐘
  • PlayReady 反復原時鐘

PlayReady 安全時鐘

PlayReady 安全時鐘是「硬體系統時鐘,其設計目的是在健全性規則中所定義的層級上抵禦未經授權的存取」,如PlayReady 產品的合規性和健全性規則檔中所定義。

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

PlayReady Secure Clock

授權伺服器時間

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

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

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

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

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

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

  • 在編譯/連結時,將 (包含在 TEE 和 REE) Secure Time 功能,並實作相關聯的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) 。
  • (選擇性) 當只為了設定安全時鐘而執行授權取得時,應用程式可以選擇在 PROTECTINFO 節點上使用額外的選擇性屬性 LICENSEREQUESTED,以指出不需要授權。 如需詳細資訊,請參閱 PlayReady 標頭規格

PlayReady 反復原時鐘

PlayReady 反回復時鐘是「PlayReady 最終產品定期驗證的系統時鐘」,如PlayReady 產品的合規性與健全性規則檔中所定義

根據 PlayReady 產品的合規性規則需求, PlayReady 反復原時鐘 可以使用任何時間來源來設定其值。 時鐘中的信任是由 PK 內建的反復原機制所提供。 也允許使用 PlayReady 安全時鐘服務 來設定其值。 Microsoft 會操作一些 PlayReady 安全時鐘服務 ,讓裝置製作者可用於此目的。

PlayReady Anti-rollback Clock