ISO/IEC 23001:数字版权管理的加密标准(二)

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: ISO/IEC 23001:数字版权管理的加密标准(二)

七、通用加密示例辅助信息

1-定义:

受保护轨道中的每个受保护样本应具有与其相关的初始化向量。初始化向量和子样本加密信息都可以作为样本辅助信息提供,其中aux_info_type参数等于方案,aux_info_type 参数等于0。

例如,对于使用“cenc”方案保护的磁道,aux_info_type的默认值为“cenc”,aux_info_type_参数的默认值为0,因此应创建省略这些可选字段的内容。sample辅助信息的储存应符合ISO/IEC 14496-12。

此类样品的sample辅助信息格式如下:

aligned(8) class CencSampleAuxiliaryDataFormat
{
 unsigned int(Per_Sample_IV_Size*8) InitializationVector; 
 if (sample_info_size > Per_Sample_IV_Size ) 
 { 
 unsigned int(16) subsample_count; 
 { 
        unsigned int(16) BytesOfClearData;
        unsigned int(32) BytesOfProtectedData;
 } [subsample_count ] 
 } 
}
  • sample_info_size是样本辅助信息大小框(‘saiz’)中此样本的样本辅助信息的大小;
  • InitializationVector是示例的初始化向量,除非轨道加密框(‘tenc’)中存在constant_IV;
  • subsample_count是此示例的子样本计数;
  • BytesOfClearData是此子样本中清除数据的字节数;
  • BytesOfProtatedData是此子样本中受保护数据的字节数;

如果您没有使用子样本加密,那么整个样本都会受到保护。在这种情况下,所有辅助信息的大小都将相同,因此"示例辅助信息大小"框(“saiz”)的default_sample_info_size将等于初始化向量的Per_Sample_IV_Size。如果Per_Sample_IV_Size也为零(因为使用了常量IV),那么样本辅助信息将为空,应该省略。

需要注意的是,即使使用了子样本加密,所有样本的样本辅助信息的大小也可能相同(如果所有样本的子样本数量相同),并且可以使用default_sample_info_size。

2-样本加密信息框,用于存储样本辅助信息

Sample Encryption Box (‘senc’)

  • Box Type: ‘senc’
  • Container: Track Fragment Box (‘traf’) or Track Box (‘trak’)
  • Mandatory: No
  • Quantity: Zero or one

样本辅助信息的可选存储位置是此处指定的样本加密盒(‘Senc’)。

样本加密盒包含样本辅助信息,并可能包含每个样本的每个样本初始化向量,以及部分受保护的视频样本的清除和受保护的字节范围(“子样本加密”)。

当轨道或轨道碎片中的样本受到保护时,可以使用它。在曲目片段盒中存储“Senc”,使所有包含的样本在电影片段中都可以访问必要的样本辅助信息,以便使每个曲目片段可独立解密;例如,当电影片段作为DASH媒体片段传送时。

Syntax

aligned(8) class SampleEncryptionBox
   extends FullBox(‘senc’, version=0, flags)
{ 
 unsigned int(32) sample_count; 
 { 
 unsigned int(Per_Sample_IV_Size*8) InitializationVector; 
      if (flags & 0x000002)
 { 
 unsigned int(16) subsample_count; 
 { 
            unsigned int(16) BytesOfClearData;
            unsigned int(32) BytesOfProtectedData;
 } [ subsample_count ] 
 } 
 }[ sample_count ] 
}

Semantics

  • -标志继承自FullBox结构。示例加密盒目前支持以下位值:
  • -0x2-UseSubSampleEncryption
  • -如果设置了UseSubSampleEncryption标志,则包含此示例加密盒的轨道片段应使用subsample加密。设置此标志时,子样本映射数据跟随每个InitializationVector。子样本映射数据由每个样本的子样本数组成,后跟一个值数组,描述每个子样本的清除数据的字节数和加密数据的字节数。
  • -sample_count是包含轨道或轨道片段中受保护的样本数。此值应为零(0)或轨道或轨道碎片中的样本总数。
  • -InitializationVector。文件中只能使用一个Per_Sample_IV_Size,或者当样本未加密或使用常量IV时,Per_Sample_IV_Size应为零。

八、框定义-Box definitions

1-保护系统特定的标题框

1-定义Definition

  • Box Type: `pssh’
  • Container: Movie (‘moov’) or Movie Fragment (‘moof’)
  • Mandatory: No
  • Quantity: Zero or more

这个盒子包含了内容保护系统播放内容所需的信息。数据格式由“pssh”参数SystemID所标识的系统指定,并且在ISO/IEC 23001的这一部分中被视为不透明。

从初始电影盒子中收集的Protection System Specific Header盒子,以及电影片段中的盒子,应提供解码该片段所需的所有内容保护系统信息。数据字段中封装的数据可以被识别的内容保护系统客户端读取,以实现解密密钥获取和媒体数据解密。对于基于许可证/权利的系统,头信息可能包括许可证服务器或权利发行者的URL、嵌入式许可证/权利、嵌入式密钥等保护系统特定的元数据。

可以通过包含每个支持的系统的Protection System Specific Header盒子来构建一个可由多个密钥和数字版权管理(DRM)系统播放的单个文件。为了找到与演示中的样本相关的所有Protection System Specific数据,读者应该:检查电影盒子中的所有Protection System Specific Header盒子以及与样本相关的电影片段盒子(但不包括其他电影片段盒子),将此盒子中的SystemID字段与其支持的DRM系统的SystemID进行匹配,并将样本关联的KID(从Track Encryption Box的default_KID字段或适当的样本组描述条目的KID字段中获取)与Protection System Specific Header Box中的一个KID值进行匹配。

没有适用的KID值列表或空列表的盒子应被视为适用于文件或电影片段中的所有KID。

基于匹配的KID值,Protection System Specific Header数据应与样本关联,该匹配在“pssh”和样本组描述或描述样本的默认“tenc”中进行。如果由于文件碎片整理或重新分片而移动了一个样本或一组样本,那么剩余样本的关联Protection System Specific Header盒子应按照上述要求进行存储。

2-Syntax

aligned(8) class ProtectionSystemSpecificHeaderBox extends FullBox(‘pssh’, version, flags=0)
{
 unsigned int(8)[16] SystemID; 
 if (version > 0) 
 { 
 unsigned int(32) KID_count; 
 { 
 unsigned int(8)[16] KID;
 } [KID_count]; 
 } 
 unsigned int(32) DataSize; 
 unsigned int(8)[DataSize] Data;
}

3-Semantics

这段话描述了一个内容保护系统的头部信息,

  • 其中SystemID是一个唯一标识符,用于标识该头部属于哪个内容保护系统。
  • KID_count指定了下面表格中KID条目的数量,可以为零。KID标识了Data字段所应用的密钥标识符。如果未设置,则Data数组将应用于包含此框的电影或电影片段中的所有KID。
  • DataSize指定了Data成员的字节数。Data包含内容保护系统特定的数据。

2-轨迹加密框

1-定义

  • Box Type: `tenc’
  • Container: Scheme Information Box (‘schi’)
  • Mandatory: No (Yes, for protected tracks)
  • Quantity: Zero or one

轨迹加密框包含整个轨迹的isProted标志、Per_Sample_IV_Size和KID的默认值。

在基于模式的加密生效的情况下,它提供模式,当使用常量IV时,它提供常量IV。这些值将用作此轨迹中样本的加密参数,除非被与一组样本关联的样本组描述覆盖。对于每个轨道只有一个密钥的文件,此框允许每个轨道指定一次基本加密参数,而不是每个样本重复。

如果default_isProted的值都为1,default_Per_Sample_IV_Size都为0,则使用这些设置的所有样本的default_consant_IV_Size都应存在。常量IV不得与反模式加密一起使用。样本组描述可以为样本组提供键或键和常量IV,这些键或键和常量IV覆盖映射到组的样本的这些默认值。

注意:当使用定义的模式加密时,跟踪加密盒的版本字段设置为大于零的值,否则设置为零。

轨迹加密框包含了整个轨迹的保护标志、每个样本的IV大小和默认值等信息。在使用基于模式的加密时,它提供了加密模式;而在使用常量IV时,它提供了常量IV。这些值将作为加密参数应用于此轨迹中的每个样本,除非被与一组样本关联的样本组描述所覆盖。如果每个轨道只有一个密钥的文件,那么此框允许每个轨道指定一次基本加密参数,而不是每个样本都要重复设置。如果default_isProted的值都为1,default_Per_Sample_IV_Size都为0,则使用这些设置的所有样本的default_consant_IV_Size都应存在。但是,常量IV不能与反模式加密一起使用。样本组描述可以为样本组提供键或键和常量IV,这些键或键和常量IV将覆盖映射到组的样本的这些默认值。需要注意的是,当使用9.6中定义的模式加密时,跟踪加密盒的版本字段应设置为大于零的值,否则应设置为零。

2-Syntax

aligned(8) class TrackEncryptionBox extends FullBox(‘tenc’, version, flags=0)
{
 unsigned int(8) reserved = 0; 
 if (version==0) { 
 unsigned int(8) reserved = 0; 
 } 
 else { // version is 1 or greater 
 unsigned int(4) default_crypt_byte_block; 
 unsigned int(4) default_skip_byte_block; 
 } 
 unsigned int(8) default_isProtected; 
 unsigned int(8) default_Per_Sample_IV_Size;
  unsigned int(8)[16] default_KID; 
 if (default_isProtected ==1 && default_Per_Sample_IV_Size == 0) { 
 unsigned int(8) default_constant_IV_size; 
 unsigned int(8)[default_constant_IV_size] default_constant_IV; 
 } 
}

3-Semantics

  • "version"字段:除非使用基于模式的加密,否则版本应为零,如果使用了模式加密,则版本应为1。
  • "default_isProtected"字段:该字段表示轨道中样本的默认保护状态的保护标志。
  • "default_Per_Sample_IV_Size"字段:该字段表示默认的初始化向量大小(以字节为单位)。
  • "default_KID"字段:该字段表示此轨道中样本使用的默认密钥标识符。
  • "default_constant_IV_size"字段:该字段表示所有样本可能的默认初始化向量的大小。
  • "default_constant_IV"字段(如果存在):该字段表示所有样本的默认初始化向量。
  • "default_crypt_byte_block"字段:该字段指定保护模式中加密块的数量,每个块的大小为16字节。
  • "default_skip_byte_block"字段:该字段指定保护模式中未加密块的数量。
目录
相关文章
|
6月前
|
存储 搜索推荐 安全
ISO/IEC 23001:数字版权管理的加密标准(三)
ISO/IEC 23001:数字版权管理的加密标准(三)
123 0
|
6月前
|
存储 编解码 算法
ISO/IEC 23001:数字版权管理的加密标准(一)
ISO/IEC 23001:数字版权管理的加密标准(一)
140 0
|
6月前
|
存储 编解码 算法
ISO/IEC 23001:数字版权管理的加密标准(四)
ISO/IEC 23001:数字版权管理的加密标准(四)
116 0
|
安全 JavaScript 前端开发
第二十一章 CSP Session 管理 - 身份验证和加密
第二十一章 CSP Session 管理 - 身份验证和加密
125 0
|
运维 安全 持续交付
金鱼哥戏说RHCE认证:管理变量和事实--管理加密
第四章 管理变量和事实----管理加密
121 0
金鱼哥戏说RHCE认证:管理变量和事实--管理加密
|
数据安全/隐私保护
express学习24-多人管理项目12加密
express学习24-多人管理项目12加密
132 0
express学习24-多人管理项目12加密
|
数据安全/隐私保护
express学习25-多人管理项目13加密实现
express学习25-多人管理项目13加密实现
96 0
|
5天前
|
SQL 安全 算法
揭秘网络安全:漏洞、加密与安全意识的三重奏
【10月更文挑战第39天】在数字时代的交响乐中,网络安全扮演着不可或缺的角色。本文旨在通过浅显易懂的语言,揭示网络安全的三大核心要素:网络漏洞、加密技术以及安全意识。我们将探索这些元素如何相互交织,共同维护我们的数字安全。从初学者到资深专家,每个人都能从中获得宝贵的知识和启示。
|
5天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第39天】在数字化时代,网络安全和信息安全成为了我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,帮助读者更好地了解网络安全的重要性,并提供一些实用的技巧和方法来保护自己的信息安全。
15 2
|
7天前
|
安全 算法 网络安全
网络安全的盾牌与利剑:漏洞防御与加密技术的双刃舞
【10月更文挑战第37天】在数字世界的海洋里,网络安全是航船的锚,保护我们的数据不受风暴侵袭。本文将深入浅出地探讨网络安全的两大支柱——漏洞防御和加密技术。我们将从网络安全的基本概念出发,逐步深入到漏洞的类型、检测方法以及防御策略。同时,我们也将探索加密技术的原理和应用,如何通过这一技术保护信息的完整性和私密性。最后,我们将讨论提升个人及组织安全意识的重要性,以及如何构建一个安全的网络环境。这不仅是技术人员的战斗,每个人都是自己信息安全的第一道防线。让我们一起扬帆起航,探索网络安全的世界,学习如何成为自己数据的守护者。