1、ds:SignatureType
2、xenc:EncryptedKeyType
3、other algorithms
4、Security Mechanisms
a、Confidentiality ([.kɔnfi.denʃi'æliti],保密)
此的目的是,防止数据被未授权的 client 所读取。drm 中就是通过将 drm content 进行加密,其密码 CEK ”is wraped with REK in rights“,而 REK 则存在于 <rights>.encKey 中。
b、authentication ([ɔ:.θenti'keiʃən],证明)
此的目的是,证明此数据是发送方发送的。我猜,应该是通过 signature 实现的。signature 的 algorithm 是协商好的,default 值为 RSA-PSS,见 3。
c、integrity ([in'tegriti],完整)
此的目的是,防止数据被非法改变。我猜,应该是通过 ds:SignatureType 实现的。
5、key
KMAC、KREK、KMEK are each 128-bit long keys generated randomly by the sender。
KD is a 128-bit long AES key generated randomly by the sender。
6、总结
ds:SignatureType 在 drm 中出现在三个地方,两个是保证 ingegrity,另一个tmd没明确说干嘛使。
xenc:EncryptedKeyType 在drm 中出现在五个地方,其中三个是加密 REK 或 Domain Key 的,其他两个是为相邻的 ds:SignatureType 提供 key。
xenc:EncryptedData 只出现在 meteringReportReq 中,用来保护 report。
7、domain
一个 dcf 的 rights 是否属于 domain,通过 roAcquisitionTrigger 中是否含 domainID 项来表现;
如果是属于某个 domain,则首先 joinDomain,从而获得 domain key;
之后,在 roRequest 时,设置其 domainID 项;在之后收到的 roResponse 包含"REK wraped with domainKey in AES-WRAP algorithm",所以,会拿到REK;
拿到 REK 后,在 rights 中就可以拿到 CEK,从而解析 dcf。
从上面看,domain 是对于 ro 而言的;只跟 roap 有关,跟 rights、dcf 无关。这是初步总结,需要看<drm> 8章后作最后结论。
8、group id