淺析ISO媒體內(nèi)容通用加密方法CENC

通用加密格式CENC是基于ISO/IEC 14496-12的一種加密格式。

加密機(jī)制
CENC加密對(duì)sample entry做如下替換:
1、在每個(gè)track中添加Protection Scheme Information Box(‘sinf’),標(biāo)識(shí)內(nèi)容為加密內(nèi)容。
2、Protection Scheme Information Box(‘sinf’)中包含Scheme Type Box(‘schm’):定義相應(yīng)的加密算法,其中scheme_type定義了加密類型,scheme_version定義模式版本。CENC加密方式中:

模式類型scheme_type=‘cenc’,CENC采用AES-CTR算法加密;
模式版本scheme_version=0×00010000。
3、 Protection Scheme Information Box(‘sinf’)中應(yīng)包含Scheme Information Box (‘schi’)。
4、 Scheme Information Box (‘schi’) 中包含Track Encryption Box(‘tenc’):描述該track的加密參數(shù)。

CENC通用加密格式定義的相關(guān)參數(shù)包含在如下box中:
1、 內(nèi)容保護(hù)系統(tǒng)的方案相關(guān)信息,例如許可證和授權(quán)獲取信息,包含在ProtectionSystemSpecificHeaderBox(‘pssh’)中。
2、用于每個(gè)track的加密參數(shù)(包括KID、初始化向量、加密標(biāo)志位),包含在TrackEncryptionBox(‘tenc’)中。
3、用于samples groups的加密參數(shù)(包括KID、初始化向量、加密標(biāo)志位)包含在SampleGroupDescriptionBox (‘sgpd’)中。
4、 單獨(dú)sample的加密參數(shù)(包括初始化向量,sub sample加密數(shù)據(jù))包含在樣本附加信息中,由SampleAuxiliaryInformationSizesBox (‘saiz’) 和SampleAuxiliaryInformationOffsetsBox (‘saio’)引用。

淺析ISO媒體內(nèi)容通用加密方法CENC

加密方式
CENC定義了兩種加密方式:全樣本加密和子樣本加密。全樣本加密把整個(gè)sample作為一個(gè)完整的單元加密;子樣本加密中的sample分為一個(gè)或多個(gè)subsample,每一個(gè)subsample都由不加密區(qū)域和加密區(qū)域交替組成,Sample中的所有加密區(qū)域被看做為一個(gè)邏輯上連續(xù)的塊,計(jì)數(shù)器值的增加與切換NAL單元無(wú)關(guān)。

box定義
1、Protection System Specific Header Box (‘pssh’)
Protection System Specific Header Box(‘pssh’)包含內(nèi)容保護(hù)系統(tǒng)回放內(nèi)容必要的信息。封裝在數(shù)據(jù)域中的信息可以提供解密密鑰獲取方式,對(duì)基于許可證授權(quán)的內(nèi)容保護(hù)系統(tǒng),信息頭包括許可證服務(wù)器或授權(quán)中心的URL信息,嵌入的許可證等。通過(guò)為每個(gè)DRM系統(tǒng)包含一個(gè)‘pssh’,CENC能夠支持一份媒體文件被多個(gè)密鑰和多個(gè)DRM系統(tǒng)播放。

2、Track Encryption Box(‘tenc’)
Track Encryption Box包含整個(gè)track的IsEncrypted flag、IV_size、以及KID,這三個(gè)參數(shù)作為track中的sample的加密參數(shù)。對(duì)于每個(gè)track只有一個(gè)密鑰的文件,Track Encryption Box允許基礎(chǔ)加密參數(shù)在每個(gè)track定義一次,而不需要在每個(gè)sample做重復(fù)定義。