Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
1. Giriş
Bu belirtim PlayReady Server SDK'sı, PlayReady Cihaz Taşıma Seti, Windows, Xbox, Windows Phone ve Silverlight ile oluşturulan tüm son ürünler için geçerlidir.
1.1. Değişiklik Geçmişi
| Sürüm | Değişiklik |
|---|---|
| 8 Eylül 2021, Cumartesi | PROTECTINFO düğümüne isteğe bağlı LICENSEREQUESTED özniteliği ekleyin. |
| 1 Kasım 2017 | Söz Dizimi Gereksinimleri bölümünü ekleyin. Yanlış öznitelik sırasına sahip kat örnekleri düzeltilir (öznitelikler alfabetik sırada olmalıdır) |
| 12 Temmuz 2017 | PlayReady sürüm 4'ten itibaren desteklenen PlayReady Üst Bilgisi 4.3.0.0 bölümünü ekleyin. Tüm XML düğümlerinin bir kapanış etiketiyle açıkça kapatılmasını gerektiren söz dizimi gereksinimini ekleyin. |
| 10 Nisan 2015 | PlayReady sürüm 3'den itibaren desteklenen PlayReady Üst Bilgisi 4.2.0.0 bölümünü ekle |
| Eylül 2011 | PlayReady 2 sürümünden itibaren desteklenen PlayReady Üst Bilgisi 4.1.0.0 bölümünü ekleyin. |
| Ağustos 2008 | PlayReady sürüm 1'de desteklenen PlayReady Üst Bilgisi 4.0.0.0'ın belgelendiği ilk sürüm |
2. PlayReady Nesnesi (PRO)
PlayReady Nesnesi (PRO) aşağıdaki alanları içerir.
| Alan adı | Alan türü | Boyut (bit) | Açıklama |
|---|---|---|---|
| Uzunluk | DWORD - 32 bitlik sayı | 32 | PlayReady Nesnesinin bayt cinsinden uzunluğu. Bu değer 15 kilobayttan (KB) fazla olmamalıdır. |
| PlayReady Nesne Kaydı Sayısı | KELİME | 16 | PlayReady Nesnesindeki PlayReady Nesne Kayıtlarının sayısını belirtir. |
| PlayReady Nesne Kayıtları | BYTE dizisi | Değişir | Lisanslar ve lisans alımıyla ilgili bilgileri içeren değişken sayıda kayıt içerir. |
2.1 PlayReady Nesne Kayıtları
PlayReady Nesnesi, PlayReady Nesne Kayıtları adlı ek alt nesnelerden oluşur. PlayReady Nesne Kayıtları aşağıdaki alanları içerir.
| Alan adı | Alan türü | Boyut (bitler) | Açıklama |
|---|---|---|---|
| Kayıt türü | KELİME | 16 | Kayıt Değeri'nde depolanan veri türünü belirtir. |
| Kayıt Uzunluğu | KELİME | 16 | Kayıt Değerinin bayt cinsinden boyutunu belirtir. |
| Kayıt Değeri | BYTE dizisi | Değişir | Nesnesinin içeriği Kayıt Türü değerine bağlıdır. |
Kayıt Türü alanında aşağıdaki değerlerden biri bulunur.
| Değer türü | Açıklama |
|---|---|
| 0x0001 | Kaydın PlayReady Üst Bilgisi (PRH) içerdiğini gösterir. |
| 0x0002 | Rezerve edilmiş. |
| 0x0003 | Bir Katıştırılmış Lisans Depos'u (ELS) gösterir. |
2.2. PlayReady Nesne Örnekleri
Aşağıdaki şekilde PlayReady Üst Bilgisi içeren PlayReady Nesnesine sahip segmentlere ayrılmış bir MP4 dosyası gösterilmektedir:
Aşağıdaki şekilde bu MP4 dosyasının HEX görünümü gösterilmektedir:
3. PlayReady Üst Bilgisi (PRH)
PlayReady Üst Bilgisi (PRH), istemci tarafından depolandığı içerik parçasını bulmak veya lisans almak için kullanılır. UTF-16 kullanılarak kodlanır.
3.1 Sürüm destek matrisi
| PlayReady Üst Bilgisi v4.3.0.0 | PlayReady Üst Bilgisi v4.2.0.0 | PlayReady Üst Bilgisi v4.1.0.0 | PlayReady Üst Bilgisi v4.0.0.0 | |
|---|---|---|---|---|
|
PlayReady 4.0 SDK tabanlı İstemciler (bkz. not 1) |
✓ | ✓ | ✓ | ✓ |
|
PlayReady 3.0 SDK tabanlı İstemciler (bkz. not 2) |
✓ | ✓ | ✓ | |
|
PlayReady 2.x SDK tabanlı İstemciler (bkz. not 3) |
✓ | ✓ | ||
|
PlayReady 1.x SDK tabanlı İstemciler (bkz. not 4) |
✓ |
Notlar:
- Xbox One sürüm 1709 veya üzeri PlayReady 4.X İstemcileridir.
- Windows 10 (tüm sürümler) ve Xbox One sürüm 1703 veya üzeri PlayReady 3.X İstemcileridir. 2017'nin ardından yayınlanan en yeni Windows dışı cihazlar (örneğin, Akıllı TV'ler) PlayReady 3.X İstemcileridir.
- Silverlight ve Windows 8, 8.1, PlayReady 2.X İstemcileridir. 2011 ile 2017 arasında yayımlanan Windows dışı cihazların çoğu (örneğin, Akıllı TV'ler) PlayReady 2.X İstemcileridir.
- 2008 ile 2011 arasında yayımlanan Windows dışı cihazların çoğu (örneğin, Akıllı TV'ler) PlayReady 1.X İstemcileridir.
3.2. Söz Dizimi Gereksinimleri
3.2.1. Kanonik hale getirilen
XML kurallı hale getirilmelidir.
3.2.2. Tüm Düğüm ve Öznitelik adları büyük/küçük harfe duyarlıdır
Destekleniyor
<KID VALUE="PV1LM/VEVk+kEOB8qqcWDg=="> </KID>
Desteklenmiyor
<KID value="PV1LM/VEVk+kEOB8qqcWDg=="> </KID>
<kid VALUE="PV1LM/VEVk+kEOB8qqcWDg=="> </kid>
3.2.3. Kapanış etiketleri açık olmalıdır
CUSTOMATTRIBUTES düğümü içindeki düğümlerdekiler de dahil olmak üzere tüm XML düğümlerinin bir kapanış etiketi tarafından açıkça kapatılması gerekir.
Destekleniyor
<KID VALUE="PV1LM/VEVk+kEOB8qqcWDg=="> </KID>
<CUSTOMATTRIBUTES> <MyNode FooAttribute="Foo"> </MyNode> </CUSTOMATTRIBUTES>
Desteklenmiyor
<KID VALUE="PV1LM/VEVk+kEOB8qqcWDg=="> <CUSTOMATTRIBUTES> <MyNode FooAttribute="Foo"> </CUSTOMATTRIBUTES>
3.2.4. Ad alanı öznitelikleri
Tüm ad alanı öznitelikleri ad alanı olmayan özniteliklerden önce görünmelidir.
Destekleniyor
<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.3.0.0">
Desteklenmiyor
<WRMHEADER version="4.3.0.0" xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader>
3.2.5. Alfabetik sıra
CUSTOMATTRIBUTES düğümü içindeki düğümlerdekiler de dahil olmak üzere tüm özniteliklerin alfabetik sırada olması gerekir.
Destekleniyor
<KID ALGID="AESCBC" VALUE="PV1LM/VEVk+kEOB8qqcWDg=="> </KID>
<CUSTOMATTRIBUTES> <MyNode BarAttribute="Bar" FooAttribute="Foo"> </MyNode> </CUSTOMATTRIBUTES>
Desteklenmiyor
<KID VALUE="PV1LM/VEVk+kEOB8qqcWDg==" ALGID="AESCBC"> </KID>
<CUSTOMATTRIBUTES> <MyNode FooAttribute="Foo" BarAttribute="Bar"> </MyNode> </CUSTOMATTRIBUTES>
3.3. v4.3.0.0
PlayReady Header v4.3.0.0, AESCBC anahtarlarını üst bilgide desteklemek için Eylül 2017'de PlayReady sürüm 4.0 ile kullanıma sunulmuştur. Bu destek, özellikle Ortak Şifreleme modları 'cbcs' için CBC modunda içeriğin şifrelenmesini sağlar. Ayrıca PlayReady İstemcilerinin diğer DRM sistemleriyle ve mevcut içerikle birlikte çalışabilirliğini artırır.
3.3.1. Diğer sürümlerle farklar
Sürüm 4.0'dan başlayarak PlayReady SDK'ları ve İstemcileri PlayReady Üst Bilgisi 4.0, 4.1, 4.2 ve 4.3 sürümlerini işleyebilecek. 4.0 sürümünden önceki PlayReady SDK'ları, v4.3 üst bilgileriyle birlikte sağlandığında "desteklenmeyen sürüm" hatası döndürür.
v.4.3.0.0 PlayReady Üst Bilgi biçimi, v4.2.0.0 ile karşılaştırıldığında aşağıdaki değişikliklere sahiptir:
- WRMHEADER öğesinin sürüm özniteliği "4.3.0.0" dizesine ayarlanır.
- KID öğesinin içinde bulunan ALGID özniteliği bir lisans alma isteğinde eksik olabilir. Microsoft , ALGID özniteliğinin içerikte yer alan üst bilgide geçerli bir değere sahip olmasını önerir.
- HERHANGI bir KID öğesinde ALGID özniteliği varsa ve KIDS öğesinde birden fazla KID öğesi varsa, tüm KID öğeleri ALGID özniteliğini içermelidir ve öznitelik değerleri aynı olmalıdır.
- KID öğesinin içinde yer alan ALGID özniteliği artık "AESCBC" değerine ek olarak "AESCTR" değerine sahip olabilir. Aşağıdaki durumlarda:
- ALGID özniteliği "AESCBC" olarak ayarlandığında CHECKSUM özniteliği dahil edilmemelidir.
3.3.2. Örnekler
Aşağıda, AESCBC anahtarlarını içeren PlayReady 4.3.0.0 Başlığı örneği verilmiştir:
<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.3.0.0">
<DATA>
<PROTECTINFO>
<KIDS>
<KID ALGID="AESCBC" VALUE="PV1LM/VEVk+kEOB8qqcWDg=="></KID>
<KID ALGID="AESCBC" VALUE="tuhDoKUN7EyxDPtMRNmhyA=="></KID>
</KIDS>
</PROTECTINFO>
<LA_URL>http://rm.contoso.com/rightsmanager.asmx</LA_URL>
<DS_ID>AH+03juKbUGbHl1V/QIwRA==</DS_ID>
</DATA>
</WRMHEADER>
Aşağıda, eksik ALGID içeren PlayReady Üst Bilgisi 4.3.0.0 örneği verilmiştir:
<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.3.0.0">
<DATA>
<PROTECTINFO>
<KIDS>
<KID VALUE="PV1LM/VEVk+kEOB8qqcWDg=="></KID>
</KIDS>
</PROTECTINFO>
<LA_URL>http://rm.contoso.com/rightsmanager.asmx</LA_URL>
<DS_ID>AH+03juKbUGbHl1V/QIwRA==</DS_ID>
<DECRYPTORSETUP>ONDEMAND</DECRYPTORSETUP>
</DATA>
</WRMHEADER>
3.3.3. Biçim
PlayReady Üst Bilgisi v4.3.0.0 aşağıdaki söz dizimine sahiptir:
<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.3.0.0">
<DATA>
<PROTECTINFO LICENSEREQUESTED="true">
<KIDS>
<KID ALGID="value" CHECKSUM="base64-encoded value" VALUE="base64-encoded guid"></KID>
<KID ALGID="value" CHECKSUM="base64-encoded value" VALUE="base64-encoded guid"></KID>
<KID ALGID="value" CHECKSUM="base64-encoded value" VALUE="base64-encoded guid"></KID>
</KIDS>
</PROTECTINFO>
<LA_URL> URL for license acquisition </LA_URL>
<LUI_URL>
URL for Non-silent license acquisition web page
</LUI_URL>
<DS_ID> base64-encoded guid </DS_ID>
<CUSTOMATTRIBUTES xmlns="">
<mm:Publisher xmlns:mm="urn:schema-musicmogul-com">
<mm:Author>
Elvis Presley
</mm:Author>
<mm:CreationDate>
2007/08/21:12:00:00
</mm:CreationDate>
</mm:Publisher>
</CUSTOMATTRIBUTES>
<DECRYPTORSETUP>ONDEMAND</DECRYPTORSETUP>
</DATA>
</WRMHEADER>
Etiketler aşağıda açıklanmıştır.
| Etiket adı | Gerekli | Açıklama |
|---|---|---|
| WRMHEADER | Evet | Üst bilgi nesnesinin en dış öğesi. Bir DATA öğesi içerebilir ve bir sürüm özniteliği içermelidir. Üst bilginin sürümü "4.3.0.0"dır. Microsoft her yeni zorunlu etiket veya öznitelik tanımlayışında, bu etiketler veya özniteliklerle yeni bir sürüm numarası ilişkilendirilir. Sürüm, istemci kodunun yazıldığı sürümden büyükse, üst bilgide istemcinin anlamadığı zorunlu etiketler bulunduğundan istemci kodu başarısız olmalıdır. Sürüm, istemci kodunun yazıldığı sürümden küçük veya buna eşitse, istemci kodu anlamadığı etiketleri veya öznitelikleri güvenle atlayabilir. |
| VERİLER | Hayı | Üçüncü taraf etiketleri de dahil olmak üzere üst bilgi verileri için kapsayıcı öğesi. WRMHEADER öğesine birden fazla DATA öğesi eklenemez. |
| PROTECTINFO | Hayı | Sıfır veya bir KIDS elementi belirtir. DATA öğesine birden fazla PROTECTINFO öğesi eklenemez. İsteğe bağlı olarak LICENSEREQUESTED özniteliğini içerir. |
| LisansTalepEdildi | Hayı | Lisans alımının en az bir lisans isteyip istemediğini belirtir. "Mevcutsa 'true' veya 'false' olarak ayarlanmalıdır ve mevcut değilse 'true' olarak belirlendiği varsayılır." Bu öznitelik, 4.5'in önceki PlayReady sürümleri tarafından yoksayılır. PlayReady Server SDK'sı uygulaması bu özniteliği yoksayabilir; yalnızca bilgilendirme amaçlıdır. |
| ÇOCUKLAR | Hayı | İlişkili içerik için şifre çözücü nesneleri oluşturmak için kullanılabilecek bir veya daha fazla KID öğesi belirtir. PROTECTINFO düğümü altında bir veya sıfır KIDS öğesi bulunabilir. |
| ÇOCUK | Hayı | Belirli bir lisans için tüm anahtar verilerini içerir.
KIDS düğümü varsa, KIDS düğümü altında bir veya daha fazla KID öğesi bulunmalıdır.
KID öğesi aşağıdaki öznitelikleri içerir. ALGID: İsteğe bağlı. Şifreleme algoritmasını belirtir. "AESCTR", "AESCBC" veya "KOKTEYL" olarak ayarlanabilir. SAĞLAMA TOPLAMı: İsteğe bağlı. Yalnızca AESCTR anahtarları için. KID VALUE özniteliği ve içerik anahtarı kullanılarak hesaplanan sağlama toplamını içerir. Ayrıntılar için bu belgenin Anahtar Sağlama Toplamı Algoritması bölümüne bakın. Bu düğüm WRMHeader XML'sinde varsa veri değeri boş olmalıdır. DEĞER: Gerekli. Base64 ile kodlanmış anahtar kimliği GUID değeri içerir. Bu GUID (DWORD, WORD, WORD, 8 BYTE dizisi) değerinin küçük endian bayt sırası olması gerektiğini unutmayın. |
| LA_URL | Hayı | Lisans alma Web hizmetinin URL'sini içerir. Yalnızca mutlak URL'lere izin verilir.
DATA öğesine birden fazla LA_URL öğesi eklenemez. Bu düğüm WRMHeader XML'sinde varsa veri değeri boş olmamalıdır. |
| LUI_URL | Hayı | Sessiz olmayan lisans alma Web sayfasının URL'sini içerir. Yalnızca mutlak URL'lere izin verilir.
DATA öğesine birden fazla LUI_URL öğesi eklenemez. Bu düğüm WRMHeader XML'sinde varsa veri değeri boş olmamalıdır. |
| DS_ID | Hayı | Etki alanı hizmetinin hizmet kimliği.
DATA öğesine yalnızca bir DS_ID öğesi eklenebilir. Bu düğüm WRMHeader XML'sinde varsa veri değeri boş olmamalıdır. |
| Özelleştirilmiş Öznitelikler | Hayı | İçerik yazarı bu öğenin içine özel XML ekleyebilir. Microsoft kodu, bu öğenin içinde yer alan hiçbir veri üzerinde işlem yapmaz.
DATA öğesine birden fazla CUSTOMATTRIBUTES öğesi eklenemez. Bu düğüm WRMHeader XML'sinde varsa veri değeri boş olmamalıdır. |
| Şifre Çözme Ayarı | Hayı | Bu etiket yalnızca "ONDEMAND" değerini içerebilir. Bu etiket DATA düğümünde mevcut olduğunda ve değeri "ONDEMAND" olarak ayarlandığında, medya grafiğini ayarlamadan önce bir uygulamaya içeriğin edinilebilir veya istemci makinesinde zaten mevcut olması için tam lisans zinciri beklememesi gerektiğini belirtir. Bu etiket ayarlanmadıysa, bir uygulamanın medya grafiğini ayarlamadan önce lisansın alınmasına veya istemci makinede zaten mevcut olmasına zorlayabileceğini gösterir. DATA öğesine birden fazla DECRYPTORSETUP öğesi eklenemez. |
3.4. v4.2.0.0
PlayReady Header v4.2.0.0, Nisan 2015'te PlayReady sürüm 3.0 ile birlikte, tek bir üst bilgide birden çok KID'e izin vermek üzere tanıtılmıştır. Bu, ses parçalarının video parçalarından farklı bir anahtarla şifrelenmesi gerektiğinde, tek bir varlığı şifrelemek için birden çok anahtar kullanılabileceğini gösterir.
3.4.1. Diğer sürümlerle farklar
PlayReady 3.0 SDK'ları ve sonraki sürüm İstemciler v4.0, v4.1 ve v4.2 PlayReady Üst Bilgisi sürümlerini işleyebilir. Önceki PlayReady SDK'ları v4.2 üst bilgileriyle birlikte sağlandığında "desteklenmeyen sürüm" hatası döndürür. v4.2 üst bilgisini kullanırken istemcinin özel, uygulamaya özgü bir mekanizma aracılığıyla hangi Sunucu sürümünü kullandığını bilmesi gerekir. PlayReady SDK'ları bu sürüm bilgilerini almak için yerel bir yol sağlamaz.
v.4.2.0.0 PlayReady Üst Bilgi biçimi, v4.1.0.0 ile karşılaştırıldığında aşağıdaki değişikliklere sahiptir:
- WRMHEADER öğesinin sürüm özniteliği "4.2.0.0" dizesine ayarlanır.
- PROTECTINFO öğesinin içinde bulunan KID öğesi KIDS olarak yeniden adlandırılmıştır ve hala isteğe bağlıdır.
- KIDS öğesinin içinde birden çok KID öğesi bulunur.
3.4.2. Örnek
İki AESCTR anahtarıyla PlayReady Üst Bilgisi 4.2.0.0:
<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.2.0.0">
<DATA>
<PROTECTINFO>
<KIDS>
<KID ALGID="AESCTR" CHECKSUM="xNvWVxoWk04=" VALUE="0IbHou/5s0yzM80yOkKEpQ=="></KID>
<KID ALGID="AESCTR" CHECKSUM="GnKaQIRacPU=" VALUE="/qgG2xbs4k2SKCxx6bhWqw=="></KID>
</KIDS>
</PROTECTINFO>
<LA_URL>http://rm.contoso.com/rightsmanager.asmx</LA_URL>
<DS_ID>AH+03juKbUGbHl1V/QIwRA==</DS_ID>
</DATA>
</WRMHEADER>
3.4.3. Biçim
PlayReady Üst Bilgisi v4.2.0.0 aşağıdaki söz dizimine sahiptir:
<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.2.0.0">
<DATA>
<PROTECTINFO>
<KIDS>
<KID ALGID="AESCTR" CHECKSUM="base64-encoded value" VALUE="base64-encoded guid"></KID>
<KID ALGID="AESCTR" CHECKSUM="base64-encoded value" VALUE="base64-encoded guid"></KID>
<KID ALGID="AESCTR" CHECKSUM="base64-encoded value" VALUE="base64-encoded guid"></KID>
</KIDS>
</PROTECTINFO>
<LA_URL> URL for license acquisition </LA_URL>
<LUI_URL>
URL for Non-silent license acquisition web page
</LUI_URL>
<DS_ID> base64-encoded guid </DS_ID>
<CUSTOMATTRIBUTES xmlns="">
<mm:Publisher xmlns:mm="urn:schema-musicmogul-com">
<mm:Author>
Elvis Presley
</mm:Author>
<mm:CreationDate>
2007/08/21:12:00:00
</mm:CreationDate>
</mm:Publisher>
</CUSTOMATTRIBUTES>
<DECRYPTORSETUP>ONDEMAND</DECRYPTORSETUP>
</DATA>
</WRMHEADER>
Etiketler aşağıda açıklanmıştır.
| Etiket adı | Gerekli | Açıklama |
|---|---|---|
| WRMHEADER | Evet | Üst bilgi nesnesinin en dış öğesi. Bir DATA öğesi içerebilir ve bir sürüm özniteliği içermelidir. Başlığın sürümü "4.2.0.0" olduğu. Microsoft her yeni zorunlu etiket veya öznitelik tanımlayışında, bu etiketler veya özniteliklerle yeni bir sürüm numarası ilişkilendirilir. Sürüm, istemci kodunun yazıldığı sürümden büyükse, üst bilgide istemcinin anlamadığı zorunlu etiketler bulunduğundan istemci kodu başarısız olmalıdır. Sürüm, istemci kodunun yazıldığı sürümden küçük veya buna eşitse, istemci kodu anlamadığı etiketleri veya öznitelikleri güvenle atlayabilir. |
| VERİLER | Hayı | Üçüncü taraf etiketleri de dahil olmak üzere üst bilgi verileri için kapsayıcı öğesi. WRMHEADER öğesine en fazla bir DATA öğesi eklenebilir. |
| PROTECTINFO | Hayı | Sıfır veya bir KIDS elementi belirtir. DATA öğesine birden fazla PROTECTINFO öğesi eklenemez. |
| ÇOCUKLAR | Hayı | İlişkili içerik için şifre çözücü nesneleri oluşturmak için kullanılabilecek bir veya daha fazla KID öğesi belirtir. PROTECTINFO düğümü altında bir veya sıfır KIDS öğesi bulunabilir. |
| ÇOCUK | Hayı | Belirli bir lisans için tüm anahtar verilerini içerir.
KIDS düğümü varsa, KIDS düğümü altında bir veya daha fazla KID öğesi bulunmalıdır.
KID öğesi aşağıdaki öznitelikleri içerir. ALGID: Gerekli. Şifreleme algoritmasını belirtir. Şu şekilde ayarlanmalıdır: AESCTR veya KOKTEYL SAĞLAMA TOPLAMı: İsteğe bağlı. KID değeri ve içerik anahtarı kullanılarak hesaplanan sağlama toplamı içerir. Ayrıntılı bilgi için bu belgenin Anahtar Sağlama Toplamı Algoritması bölümüne bakın. Bu düğüm WRMHeader XML'sinde varsa veri değeri boş olmalıdır. DEĞER: Gerekli. Base64 kodlanmış anahtar kimliği GUID değeri içerir. Bu GUID (DWORD, WORD, WORD, 8 BYTE dizisi) değerinin küçük endian bayt sırası olması gerektiğini unutmayın. |
| LA_URL | Hayı | Lisans alma Web hizmetinin URL'sini içerir. Yalnızca mutlak URL'lere izin verilir.
DATA öğesine birden fazla LA_URL öğesi eklenemez. Bu düğüm WRMHeader XML'sinde varsa veri değeri boş olmamalıdır. |
| LUI_URL | Hayı | Sessiz olmayan lisans alma Web sayfasının URL'sini içerir. Yalnızca mutlak URL'lere izin verilir.
DATA öğesine birden fazla LUI_URL öğesi eklenemez. Bu düğüm WRMHeader XML'sinde varsa veri değeri boş olmamalıdır. |
| DS_ID | Hayı | Etki alanı hizmetinin hizmet kimliği.
DATA öğesine birden fazla DS_ID öğesi eklenemez. Bu düğüm WRMHeader XML'sinde varsa veri değeri boş olmamalıdır. |
| Özelleştirilmiş Öznitelikler | Hayı | İçerik yazarı bu öğenin içine rastgele XML ekleyebilir. Microsoft kodu, bu öğenin içinde yer alan hiçbir veri üzerinde işlem yapmaz.
DATA öğesine birden fazla CUSTOMATTRIBUTES öğesi eklenemez. Bu düğüm WRMHeader XML'sinde varsa veri değeri boş olmamalıdır. |
| Şifre Çözme Ayarı | Hayı | Bu etiket yalnızca "ONDEMAND" değerini içerebilir. Bu etiket DATA düğümünde mevcut olduğunda ve değeri "ONDEMAND" olarak ayarlandığında, medya grafiğini ayarlamadan önce bir uygulamaya içeriğin edinilebilir veya istemci makinesinde zaten mevcut olması için tam lisans zinciri beklememesi gerektiğini belirtir. Bu etiket ayarlanmadıysa, bir uygulamanın medya grafiğini ayarlamadan önce lisansın alınmasına veya istemci makinede zaten mevcut olmasına zorlayabileceğini gösterir. DATA öğesine birden fazla DECRYPTORSETUP öğesi eklenemez. |
3.5. v4.1.0.0
PlayReady Header v4.1.0.0, akışa eklenmiş ölçeklenebilir yaprak lisanslara sahip canlı doğrusal akışları desteklemek için Eylül 2011'de PlayReady sürüm 2.0 ile kullanıma sunulmuştur. Bu tür bir akış, istemcilerin şifre çözücüde kullanılacak içerik şifreleme anahtarı hakkında bilgi sahibi olmadan ölçeklenebilir bir kök lisans bağlamasını gerektirir.
3.5.1. Diğer sürümlerle farklar
PlayReady 2.0 SDK'ları ve üzeri İstemciler hem v4.0 hem de v4.1 PlayReady Üst Bilgisi sürümlerini işleyebilecek. Önceki PlayReady SDK'ları v4.1 üst bilgileriyle birlikte sağlandığında "desteklenmeyen sürüm" hatası döndürür.
PlayReady Üst Bilgisi biçimi versiyon 4.1.0.0'da, versiyon 4.0.0.0 ile karşılaştırıldığında aşağıdaki değişiklikler vardır:
- WRMHEADER öğesinin sürüm özniteliği "4.1.0.0" dizesine ayarlanır.
- DATA öğesi isteğe bağlı bir DECRYPTORSETUP öğesi içerir.
- KID öğesi PROTECTINFO öğesinin içinde bulunur ve gerekli değil isteğe bağlıdır.
- KID öğesi ALGID (gerekli), CHECKSUM (isteğe bağlı) ve VALUE (gerekli) özniteliklerini içerir.
- KEYLEN öğesi kaldırıldı. KEYLEN özniteliği daha önce farklı uzunluk anahtarlarına sahip kokteyl lisanslarını dağıtmak için kullanılıyordu. v4.1 üst bilgisi, 8 baytlık kokteyl anahtarları dışında her şeyi destekleme özelliğini bozar. 8 bayt olmayan kokteyl anahtarları kullanıyorsanız v4.0 üst bilgilerini kullanmanız gerekir.
- ALGID ve CHECKSUM öğeleri, verileri KID öğesinin öznitelikleri içinde bulunduğundan kaldırılmıştır.
3.5.2. Biçim
PlayReady Üst Bilgisi v4.1.0.0 aşağıdaki söz dizimine sahiptir:
<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.1.0.0">
<DATA>
<PROTECTINFO>
<KID ALGID="AESCTR" CHECKSUM="base64-encoded value" VALUE="base64-encoded guid"></KID>
</PROTECTINFO>
<LA_URL> URL for license acquisition </LA_URL>
<LUI_URL>
URL for Non-silent license acquisition web page
</LUI_URL>
<DS_ID> base64-encoded guid </DS_ID>
<CUSTOMATTRIBUTES xmlns="">
<mm:Publisher xmlns:mm="urn:schema-musicmogul-com">
<mm:Author>
Elvis Presley
</mm:Author>
<mm:CreationDate>
2007/08/21:12:00:00
</mm:CreationDate>
</mm:Publisher>
</CUSTOMATTRIBUTES>
<DECRYPTORSETUP>ONDEMAND</DECRYPTORSETUP>
</DATA>
</WRMHEADER>
Etiketler aşağıda açıklanmıştır.
| Etiket adı | Gerekli | Açıklama |
|---|---|---|
| WRMHEADER | Evet | Üst bilgi nesnesinin en dış öğesi. Bir DATA öğesi içerebilir ve bir sürüm özniteliği içermelidir. Başlık sürümü "4.1.0.0" dır. Microsoft her yeni zorunlu etiket veya öznitelik tanımlayışında, bu etiketler veya özniteliklerle yeni bir sürüm numarası ilişkilendirilir. Sürüm, istemci kodunun yazıldığı sürümden büyükse, üst bilgide istemcinin anlamadığı zorunlu etiketler bulunduğundan istemci kodu başarısız olmalıdır. Sürüm, istemci kodunun yazıldığı sürümden küçük veya buna eşitse, istemci kodu anlamadığı etiketleri veya öznitelikleri güvenle atlayabilir. |
| VERİLER | Hayı | Üçüncü taraf etiketleri de dahil olmak üzere üst bilgi verileri için kapsayıcı öğesi. WRMHEADER öğesine birden fazla DATA öğesi eklenemez. |
| PROTECTINFO | Hayı | İlişkili içerik için şifre çözücü nesneleri oluşturmak için kullanılabilecek sıfır veya bir KID öğesi belirtir. DATA öğesine birden fazla PROTECTINFO öğesi eklenemez. |
| ÇOCUK | Hayı | Belirli bir lisans için tüm anahtar verilerini içerir.
PROTECTINFO düğümü altında bir veya sıfır KID öğesi bulunabilir.
KID öğesi aşağıdaki öznitelikleri içerir. DEĞER: Gerekli. Base64 kodlanmış anahtar kimliği GUID değeri içerir. Bu GUID (DWORD, WORD, WORD, 8 BYTE dizisi) değerinin küçük endian bayt sırası olması gerektiğini unutmayın. ALGID: Gerekli. Şifreleme algoritmasını belirtir. "AESCTR" veya "KOKTEYL" CHECKSUM: İsteğe bağlı olarak ayarlanmalıdır. KID değeri ve içerik anahtarı kullanılarak hesaplanan sağlama toplamı içerir. Ayrıntılar için bu belgenin Anahtar Sağlama Toplamı Algoritması bölümüne bakın. Bu düğüm WRMHeader XML'sinde varsa veri değeri boş olmalıdır. |
| LA_URL | Hayı | Lisans alma Web hizmetinin URL'sini içerir. Yalnızca mutlak URL'lere izin verilir.
DATA öğesine birden fazla LA_URL öğesi eklenemez. Bu düğüm WRMHeader XML'sinde varsa veri değeri boş olmamalıdır. |
| LUI_URL | Hayı | Sessiz olmayan lisans alma Web sayfasının URL'sini içerir. Yalnızca mutlak URL'lere izin verilir.
DATA öğesine birden fazla LUI_URL öğesi eklenemez. Bu düğüm WRMHeader XML'sinde varsa veri değeri boş olmamalıdır. |
| DS_ID | Hayı | Etki alanı hizmetinin hizmet kimliği.
DATA öğesine birden fazla DS_ID öğesi eklenemez. Bu düğüm WRMHeader XML'sinde varsa veri değeri boş olmamalıdır. |
| Özelleştirilmiş Öznitelikler | Hayı | İçerik yazarı bu öğenin içine rastgele XML ekleyebilir. Microsoft kodu, bu öğenin içinde yer alan hiçbir veri üzerinde işlem yapmaz.
DATA öğesine en fazla bir CUSTOMATTRIBUTES öğesi eklenebilir. Bu düğüm WRMHeader XML'sinde varsa veri değeri boş olmamalıdır. |
| Şifre Çözme Ayarı | Hayı | Bu etiket yalnızca "ONDEMAND" değerini içerebilir. Bu etiket DATA düğümünde mevcut olduğunda ve değeri "ONDEMAND" olarak ayarlandığında, bir uygulamaya medya grafiğini ayarlamadan önce içeriğin edinilmesi için tam lisans zincirinin kullanılabilir veya istemci makinesinde zaten mevcut olmasını beklememesi gerektiğini belirtir. Bu etiket ayarlanmadıysa, bir uygulamanın medya grafiğini ayarlamadan önce lisansın alınmasına veya istemci makinede zaten mevcut olmasına zorlayabileceğini gösterir. DATA öğesine en fazla bir DECRYPTORSETUP öğesi eklenebilir. |
v4.1 notları:
- PlayReady Üst Bilgisindeki tüm XML etiketleri ve öznitelikleri Microsoft tarafından tanımlanır. Tek özel durum CUSTOMATTRIBUTES öğesinin içeriğidir. PlayReady bilgisayar uygulaması geliştiricileri CUSTOMATTRIBUTES öğesinin dışına herhangi bir özel etiket eklememelidir.
- PlayReady Üst Bilgisi , W3C Kurallı XML v1.1 belirtimlerine uymalıdır.
- PlayReady Üst Bilgisi, iyi biçimlendirilmiş bir XML'de bulunması gereken en üst düzey
?XMLetiketini içermez. - Bu alanın boyutunun 1 KB'ı aşmaması önerilir.
3.6. v4.0.0.0
PlayReady Header v4.0.0.0, 2008'de PlayReady sürüm 1.0 ile kullanıma sunulmuştur ve AES şifreli içeriği desteklemek için tek bir AESCTR anahtarına veya WMDRM şifreli içeriği desteklemek için bir KOKTEYL anahtarına izin verir.
3.6.1. Örnekler
PlayReady Başlık 4.0.0.0
<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.0.0.0">
<DATA>
<PROTECTINFO>
<ALGID>AESCTR</ALGID>
<KEYLEN>16</KEYLEN>
</PROTECTINFO>
<KID>q5HgCTj40kGeNVhTH9Gexw==</KID>
<CHECKSUM>w+OZVr8vzrQ=</CHECKSUM>
<LA_URL>http://rm.contoso.com/rightsmanager.asmx</LA_URL>
<CUSTOMATTRIBUTES>
<IIS_DRM_VERSION>8.0.1705.19</IIS_DRM_VERSION>
</CUSTOMATTRIBUTES>
</DATA>
</WRMHEADER>
Base64 ile kodlanmış PlayReady Nesnesi; içinde PlayReady Üst Bilgisi sürüm 4.0.0.0 içermektedir.
XAMAAAEAAQBSAzwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AcQA1AEgAZwBDAFQAagA0ADAAawBHAGUATgBWAGgAVABIADkARwBlAHgAdwA9AD0APAAvAEsASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgB3ACsATwBaAFYAcgA4AHYAegByAFEAPQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAcwA6AC8ALwBwAHIAbwBmAGYAaQBjAGkAYQBsAHMAaQB0AGUALgBrAGUAeQBkAGUAbABpAHYAZQByAHkALgBtAGUAZABpAGEAcwBlAHIAdgBpAGMAZQBzAC4AdwBpAG4AZABvAHcAcwAuAG4AZQB0AC8AUABsAGEAeQBSAGUAYQBkAHkALwA8AC8ATABBAF8AVQBSAEwAPgA8AEMAVQBTAFQATwBNAEEAVABUAFIASQBCAFUAVABFAFMAPgA8AEkASQBTAF8ARABSAE0AXwBWAEUAUgBTAEkATwBOAD4AOAAuADAALgAxADcAMAA1AC4AMQA5ADwALwBJAEkAUwBfAEQAUgBNAF8AVgBFAFIAUwBJAE8ATgA+ADwALwBDAFUAUwBUAE8ATQBBAFQAVABSAEkAQgBVAFQBTAD4APAAvAEQAQBUAEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAPgA=
3.6.2. Biçim
PlayReady Üst Bilgisi v4.0.0.0 aşağıdaki söz dizimine sahiptir:
<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.0.0.0">
<DATA>
<PROTECTINFO>
<ALGID>AESCTR</ALGID>
<KEYLEN>16</KEYLEN>
</PROTECTINFO>
<LA_URL> URL for license acquisition </LA_URL>
<LUI_URL>
URL for Non-silent license acquisition web page
</LUI_URL>
<DS_ID>base64-encoded guid</DS_ID>
<KID>base64-encoded kid</KID>
<CUSTOMATTRIBUTES xmlns="">
<mm:Publisher xmlns:mm="urn:schema-musicmogul-com">
<mm:Author>
Elvis Presley
</mm:Author>
<mm:CreationDate>
2007/08/21:12:00:00
</mm:CreationDate>
</mm:Publisher>
</CUSTOMATTRIBUTES>
<CHECKSUM>
checksum of the content key for verification
</CHECKSUM>
</DATA>
</WRMHEADER>
Aşağıdaki tabloda farklı etiketler açıklanmaktadır.
| Etiket adı | Gerekli | Açıklama |
|---|---|---|
| WRMHEADER | Evet | Üst bilgi nesnesinin en dış öğesi. Bir DATA öğesi ve bir sürüm özniteliği içerebilir. Üst bilginin sürümü "4.0.0.0"dır. Paketleyici semantiği: Microsoft yeni zorunlu etiketleri veya öznitelikleri her tanımlayışında, bu etiketler veya özniteliklerle yeni bir sürüm numarası ilişkilendirilir. PlayReady Üst Bilgisinin sürümü, üst bilgide bulunan zorunlu etiketlerin ve özniteliklerin en yüksek sürümlerine ayarlanmalıdır. İstemci semantiği: Sürüm, istemci kodunun yazıldığı sürümden büyükse, üst bilginin istemcinin anlamadığı zorunlu etiketler içerdiğini belirttiğinden istemci kodu başarısız olmalıdır. Sürüm, istemci kodunun yazıldığı sürümden küçük veya buna eşitse, istemci kodu anlamadığı etiketleri veya öznitelikleri güvenle atlayabilir. |
| VERİLER | Evet | Üçüncü taraf etiketleri de dahil olmak üzere üst bilgi verileri için kapsayıcı öğesi. |
| PROTECTINFO | Evet | KEYLEN ve ALGID alt öğelerini kullanarak şifreleme türünü belirtir. |
| KEYLEN | Evet | İçerik anahtarının boyutunu belirtir. ALGID "AESCTR" olarak ayarlandıysa 16, "KOKTEYL" olarak ayarlanmışsa 7 olarak ayarlanmalıdır. |
| ALGID | Evet | Şifreleme algoritmasını belirtir. Şu değere ayarlanmalıdır: AESCTR: Sayaç modunda AES algoritmasına karşılık gelir. KOKTEYL: Kokteyl algoritmasına karşılık gelir. |
| ÇOCUK | Evet | Base64 kodlanmış anahtar kimliği GUID değeri içerir. Bu GUID (DWORD, WORD, WORD, 8 BYTE dizisi) değerinin küçük endian bayt sırası olması gerektiğini unutmayın. |
| Checksum | Hayı | KID DEĞERİ ve içerik anahtarı kullanılarak hesaplanan sağlama toplamını içerir. Ayrıntılar için Anahtar Sağlama Algoritması bölümüne bakın. PlayReady'nin önceki sürümleri bu alanı gerekli olarak değerlendirdi, bu nedenle PlayReady'nin önceki bir sürümü tarafından kullanılacak herhangi bir başlıkta yer almalıdır. |
| LA_URL | Hayı | Lisans alma Web hizmetinin URL'sini içerir. Yalnızca mutlak URL'lere izin verilir. |
| LUI_URL | Hayı | Sessiz olmayan lisans alma Web sayfasının URL'sini içerir. Yalnızca mutlak URL'lere izin verilir. |
| DS_ID | Hayı | Etki alanı hizmetinin hizmet kimliği. |
| Özelleştirilmiş Öznitelikler | Hayı | İçerik yazarı bu öğenin içine rastgele XML ekleyebilir. Microsoft kodu, bu öğenin içinde yer alan hiçbir veri üzerinde işlem yapmaz. |
v4.0 notları:
- PlayReady Üst Bilgisindeki tüm XML etiketleri ve öznitelikleri Microsoft tarafından tanımlanır. Tek özel durum CUSTOMATTRIBUTES öğesinin içeriğidir. PlayReady PC uygulama geliştiricileri CUSTOMATTRIBUTES öğesinin dışına herhangi bir özel etiket eklememelidir, bunun yapılması Microsoft'un tanımladığı gelecekteki etiketlerle çakışmaya neden olabilir.
- Kapsayıcı öğesi içindeki alt öğelerin sırası önemli değildir.
- PlayReady Başlığının, iyi biçimlendirilmiş XML'de gerekli olan en üst düzey
?XMLetiketine sahip olmadığını unutmayın. - Bu alanın boyutunun 1 KB'ı aşmaması önerilir.
- CHECKSUM , PlayReady Server SDK'sı için sürüm 1.2'ye kadar gereklidir. Sürüm 1.5'ten itibaren PlayReady Server SDK'sı CHECKSUM'a isteğe bağlı olarak davranır. PlayReady Porting Kit 1.2 kullanıma hazır olarak CHECKSUM gerektirir. PlayReady Porting Kit 2.0 , CHECKSUM'u isteğe bağlı olarak kabul eder.
4. Katıştırılmış Lisans Deposu (ELS)
PlayReady Nesnesine aşağıdaki koşullar altında boş bir Katıştırılmış Lisans Deposu eklemek iyi bir uygulamadır:
- PlayReady Nesnesi bir içerik dosyasına eklenecektir.
- İçerik, katıştırılmış lisanslara sahip PlayReady etki alanları bağlamında kullanılabilir.
Bu, PlayReady istemcisinin mevcut Katıştırılmış Lisans Deposu'nu doldurarak PlayReady Nesnesine alan-bağlı bir lisans eklemesine olanak tanır ve dosyanın tamamını başlangıçtakinden daha büyük boyutta yeni bir PlayReady Nesnesi ile yeniden üst bilgilendirmek zorunda kalmaktan zaman ve çaba tasarrufu sağlar.
Uyarı
PlayReady Nesnesi'ne, Kesintisiz Akış İstemci Bildirimi'ne base-64 dizesi olarak eklenmesi amaçlanan, boş bir Katıştırılmış Lisans Deposu eklemeyin.
Uyarı
Önerilen boyut 10 KB'tır.
5. Anahtar Kontrol Toplamı Algoritması
PlayReady Üst Bilgisindeki özet kontrol algoritması, uyumsuz anahtarlara karşı koruma sağlar. DRM'nin ilk günlerinde şarkılar yanlış etiketlenmiş anahtarlarla şifrelenirdi. Bu, şarkıların şifresi çözülürken beyaz gürültü çalınmasına neden oldu. Ve şarkılar yeterince yüksek sesle çalındığında, çalma ekipmanı hasar görüyordu. Sağlama toplamıyla, içerik anahtarı dosyayı şifrelemek için kullanılan anahtar olarak doğrulanabilir. Algoritma aşağıdaki gibi çalışır:
"AESCBC" olarak ayarlanmış bir ALGID değeri için tanımlı Anahtar Sağlama Toplamı Algoritması yoktur. CHECKSUM özniteliği atlanmalıdır.
"AESCTR" olarak ayarlanmış bir ALGID değeri için 16 baytlık Anahtar Kimliği, ECB modu kullanılarak 16 baytlık AES içerik anahtarıyla şifrelenir. Arabelleğin ilk 8 bayt'ı ayıklanır ve base64 kodlanır.
"KOKTEYL" olarak ayarlanmış bir ALGID değeri için aşağıdaki adımları gerçekleştirin:
21 bayttan oluşan bir arabellek oluşturulur.
İçerik anahtarı arabelleğe konur ve arabelleğin geri kalanı sıfırlarla doldurulur.
Beş yineleme için:
a. buffer = SHA-1 (buffer).
Arabelleğin ilk 7 baytı çıkartılır ve base64 formatında kodlanır.
Bu adımlar gerçekleştirildikten sonra, sağlama toplamı olarak base64 ile kodlanmış baytlar kullanılır.
6. Özelleştirilmiş Öznitelikler
Hizmet sağlayıcısı PlayReady Üst Bilgisinin CUSTOMATTRIBUTES öğesinin içine özel XML ekleyebilir. CUSTOMATTRIBUTES öğesinde kullanılan etiketlerin Microsoft tarafından tanımlanan gelecek etiketlerle çakışmaması garanti edilir.
Microsoft kodu bu öğenin içindeki herhangi bir XML üzerinde işlem yapmaz. Hizmet sağlayıcısının arka ucu veya istemci tarafı kodu genellikle bu öğenin değerini yorumlayan tek koddur. Örneğin, bir beyaz etiket hizmetinin AAA, BBB, CCC ön uç hizmetlerini temsil ettiği düşünelim. Böyle bir hizmet, içerik kitaplığını yalnızca bir kez şifreleyebilir (bu pahalı bir işlem olduğundan), ancak içeriği son kullanıcıya sunduğunda , CUSTOMATTRIBUTES'i son kullanıcının abone olduğu belirli bir ön uç hizmetinin adına ayarlayabilir. Son kullanıcı bu içerik için lisans istediğinde, bu, beyaz etiket hizmetinin, farklı bir lisans vermesi için son kullanıcının hangi ön uç hizmetine abone olduğunu belirlemesini sağlar.
Bu alanın boyutu 1 kilobayt 'ı (KB) aşmamalıdır.