在開始將 PlayReady 納入您的打包程序以保護內容之前,您應該先檢視幾個事項。 請注意,開發一個能提供 PlayReady 保護的封裝軟體,以加密您想要保護的內容。
- 不需要Microsoft的許可協定。
- 在將 PlayReady 插入您的內容中,Microsoft 不會收取任何費用。
- 使用 PlayReady 編碼器或封裝程式時,不適用於向 Microsoft 支付版稅。
因此,您不需要為這些專案配置任何時間或預算。
備註
如果您不想自行開發 PlayReady 套件,某些Microsoft PlayReady 合作夥伴 可以為您的公司開發 PlayReady 封裝器。
開發概觀
在封裝器中納入 PlayReady 功能的開發時間將取決於下列元件的開發和測試:
金鑰產生器 - 產生用來加密內容的金鑰值(以及其相關聯的 KeyID)。 如果您使用 KeySeed 機制,此產生器必須實作 PlayReady 金鑰種子 規格中所定義的函式。
PlayReady 標頭產生器 - 產生 PlayReady 物件(包括 PlayReady 標頭和/或內嵌授權存放區)。 此 PlayReady 標頭包含 KeyID 或 KeyID 清單、PlayReady 授權伺服器的預設 URL,以及受保護內容所需的任何自定義值。 此函式必須遵循 PlayReady 標頭規格中所述的需求。
Packager — 封裝內容,使用密鑰產生器提供的索引鍵值,以及由 PlayReady 標頭產生器所創建的 PlayReady 物件。
金鑰管理系統 - 儲存金鑰值及其相關聯的 KeyId(如果使用 KeySeed 機制則不需要)。
開發 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 物件(包括 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 Header 中找到的 LA URL 值,這是預設的 LA URL。 雖然並非必要,但在封裝時,服務通常會在內容的 PlayReady 標頭中包含預設的 LA URL 值。