開發 PlayReady Packager
在開始在封裝工具中納入 PlayReady 以保護內容之前,您應該檢查幾個考慮。 請注意,開發可針對您想要加密的內容提供 PlayReady 保護的封裝工具:
- 不需要 Microsoft 的授權合約。
- 與在內容中插入 PlayReady 相關的 Microsoft 並不需要任何費用。
- Microsoft 沒有適用于 PlayReady 編碼器或封裝工具的稅金付款。
因此,您不需要為這些專案配置任何時間或預算。
注意
如果您不想自行開發 PlayReady 套件工具,某些Microsoft PlayReady合作夥伴可以為您的公司開發 PlayReady 套件工具。
開發概觀
在封裝工具中納入 PlayReady 功能的開發時間將取決於下列元件的開發和測試:
金鑰產生器 - 產生金鑰值,用來加密內容 (及其相關聯的 KeyID) 。 如果您使用 KeySeed 機制,此產生器必須實作 如 PlayReady 金鑰種子 規格中所定義的函式。
PlayReady 標頭產生器 — 產生 PlayReady 物件 (包括 PlayReady 標頭和/或內嵌授權Microsoft Store) 。 此 PlayReady 標頭包含 KeyID 或 KeyID 清單、PlayReady 授權伺服器的預設 URL,以及受保護內容所需的任何自訂值。 此函式必須遵循 PlayReady 標頭規格中所述的需求。
Packager — 使用金鑰產生器所提供的金鑰值,以及 PlayReady 標頭產生器所建立的 PlayReady 物件來封裝內容。
金鑰管理系統 — 使用 KeySeed 機制) 時,儲存金鑰值及其相關聯的 KeyId (不需要。
開發 PlayReady Packager
如果您決定要開發自己的 PlayReady Packager,您必須根據您想要儲存和傳遞內容的方式,決定套件工具的運作方式。 下列清單提供將 PlayReady 功能新增至封裝工具所需的必要步驟。
選擇您的加密格式。 使用數種不同類型的加密來保護內容。 Microsoft PlayReady系統使用對稱金鑰演算法進階加密標準 (AES) 。 從 4.0 版開始,PlayReady 系統支援 CBC (加密區塊鏈結) 和 CTR (計數器模式) 模式中的 AES 128 金鑰,如 ISO 標準 ISO/IEC 23001-7 中所定義。 用來保護內容的加密機制會封裝在容器中,以便有效率地在各種平臺上流覽和解密檔案。
PlayReady 產品的合規性規則允許使用 CTR 模式或 CBC 模式中 AES-128 金鑰的任何加密格式。 如需詳細資訊,請參閱 PlayReady 內容加密模式。
選擇您要加密內容的方式。 如需詳細資訊,請參閱 使用加密金鑰。
選擇您是否只想要使用 PlayReady 解密內容,或是否要支援多個 DRM。 如需詳細資訊,請參閱 使用加密工具。
選擇您要如何產生和儲存內容金鑰, (金鑰值和金鑰識別碼) 。
您的封裝工具應該包含某種金鑰產生器,以建立用來加密和解密內容的金鑰值。 金鑰產生器應該將金鑰識別碼與金鑰值產生關聯。 金鑰值會維持秘密,且金鑰識別碼是公用的,且會插入您內容中的 PlayReady 標頭中。 如果封裝工具不包含金鑰產生器,您必須個別開發或來源一個金鑰產生器。
您必須開發金鑰管理系統來儲存多個金鑰值及其相關聯的金鑰識別碼,或從協力廠商授權一個金鑰。 金鑰管理系統可以是資料庫或任何其他類型的儲存體系統,但必須安全,以防止任何人在沒有授權的情況下存取金鑰值。 Microsoft 不提供 PlayReady 的金鑰管理系統。 或者,您可以使用 PlayReady 所提供的 KeySeed 機制來取代金鑰管理系統, (KeySeed 機制必須併入您的封裝程式和 PlayReady Server 中,以提供解密內容) 授權的 PlayReady Server。
選擇您要如何插入 PlayReady 物件 (,包括 PlayReady 標頭和/或內嵌授權存放區,) 加密內容中。 如需詳細資訊,請參閱 如何產生 PlayReady 標頭。
選擇您要如何將金鑰值和金鑰識別碼提供給 PlayReady Server,然後將金鑰值散發給 PlayReady 用戶端。
您可以開發自己的 PlayReady 授權伺服器 (需要 PlayReady 的授權,不過 Microsoft 不會針對開發或使用 PlayReady Server) 而收取任何費用或授權金,或者您可以使用協力廠商提供的 PlayReady Server。 無論您開發自己的 PlayReady Server 或 PlayReady Server 是由協力廠商提供或操作,您都必須能夠及時將金鑰值和金鑰識別碼傳達給伺服器,用戶端才能有效率地播放您的內容。
選擇用戶端如何連絡 PlayReady 授權伺服器以取得內容加密金鑰。 用戶端應用程式必須知道 PlayReady 授權伺服器 URL (也稱為授權取得 URL,或需要取得授權時) LA URL。 用戶端應用程式可以程式設計為將該 LA URL 值硬式編碼,或從伺服器動態擷取它。 如果用戶端應用程式沒有此 LA URL 值,則會使用內容 PlayReady 標頭中找到的 LA URL 值,這是預設的 LA URL。 雖然並非必要,但在封裝時,服務通常會在內容的 PlayReady 標頭中包含預設的 LA URL 值。