NGB信息加密和数字版权技术初探
唐 月 姚瑞虹
(国家广播电影电视总局广播电视规划院)
[摘 要] 介绍了目前比较流行的密码技术,以及NGB业务管理和运营支撑中信息加密和数字版权管理技术[关键词] 密码技术 报文认证 散列函数 信息加密 密钥 数字版权管理 签名 1 密码技术简介密码技术是研究对信息进行编码实现隐蔽信息的一门学科。经典的密码技术是关于加密和解密的理论,主要用于保密通信。现在,密码技术的应用越来越广泛,它是保证信息的机密性、完整性、可用性的有力手段,它能够保证信息在潜在不安全环境中访问过程的安全性,如信息存储和传输的机密性、数据完整性认证、数据签名、身份认证等,是网络和信息安全的核心技术。密码算法分为对称密码算法和非对称密码算法。1.1 对称密码算法对称密码算法又称为传统密码算法,它的特点是加密密钥和解密密钥相同或者能够从一个密钥推算出另一个密钥。在大多数对称密码算法中,加密密钥和解密密钥是相同的。这些算法有时称为秘密密钥算法或单密钥算法,它要求发送者和接受者在安全通信之前,必须事先通过安全的途径商定加密和解密密钥,密钥一旦泄露,就意味着任何人都能对消息进行加解密,因此,密钥必须是保密的。对称密码算法的优点是具有很高的保密强度,而且密码处理速度快。但对称密码算法在用户数量较多时,需要管理的密钥量较大,使密钥管理成为影响系统安全的重要因素。典型的对称密码算法分为两类:分组密码算法、序列密码算法。1.2 报文认证技术在网络安全领域,为了防止非法用户对数据内容的篡改和伪造,通常要用到报文认证(message authentication)技术。通过报文认证技术,使得通信的接收方能够验证所收到的数据的真实性和完整性。目前,应用最广泛的报文认证技术是基于单项散列函数的报文认证码(Message Authentication Code)技术,报文认证码有时也称为MAC码。散列函数(hash function)的作用是把任意可变长度的报文转变成固定长度的一段标志信息,这段标志信息通常较短,称作报文的散列值。简单的奇偶校验和就是一种散列运算。而单向散列函数(one-way hash function)是在一个方向上工作的散列函数,即对于一个报文很容易计算其散列值,但对于一个特定的散列值,想要通过逆运算生成一个等于该散列值的报文是不可行的。单向散列函数还有许多叫法,如压缩函数、哈希运算、摘要算法等,其中,哈希运算和摘要算法是最常见的叫法。单向散列函数的特性使得它非常适合于对信息进行完整性检验和真实性鉴别,因此,单向散列函数被广范应用于报文认证和数字签名。单向散列函数在实际应用中分为带密钥和不带密钥两种。不带密钥的单向散列函数在篡改者知悉单向散列函数的情况下,可以通过篡改报文并重新生成散列值的方法进行攻击,一般是有加密保护的情况下使用;而带密钥的单向散列函数只要保证密钥的保密性,即能够保证报文的完整性和真实性,一般可以单独使用。 2 NGB信息加密技术在开放的网络环境中,信息加密是保证数据安全最可靠的技术手段。由于公钥密码处理速度的局限性,信息加密通常采用对称密码算法来完成,最常用的对称密码算法包括分组密码算法和序列密码算法两种。分组密码算法由于需要将待加密的数据分为固定长度的位组,并对每个固定长度的位组基于密钥实施加解密变换,因此,在对大量数据实施加解密时性能损耗较大,但分组密码算法的优点是在不使用反馈的前提下,加密分组传输发生乱序和丢失的情况下也能够保证每一个分组的正确加解密;而序列密码算法是通过种子产生连续的乱数流,通过乱数流对数据进行按位异或来实施加解密,因此,在对大量数据实施加解密时性能损耗较小,但序列密码算法的缺点是加密数据的传输必须保证每一个数据位的可靠按序到达,否则将因为加密和解密数据位的不同步而导致接收方无法进行解密。在实际应用中,对于可靠数据传输协议(如TCP协议)可采用基于序列密码算法的流加密机制来进行加密保护,而对于采用不可靠数据传输协议(如UDP协议、IP协议)通常采用分组密码来进行加密保护。在NGB中,在NGB数字证书认证系统支持下采用数字证书来完成身份认证和密钥协商之后,应通过对称密码算法来实现对广播数据的传输加解密保护。在NGB网络传输协议选择上,应遵循以下原则:● 对于采用UDP协议的数据传输(或者在IP协议层对数据实施加解密时),应当选用分组密码算法来实施数据加密保护,此时,为了降低分组密码算法加解密所带来的性能损耗,原则上数据加密传送前,应对数据进行压缩处理,接收方对数据解密后再对数据实施解压缩处理。● 对于采用TCP协议的数据传输,应当选用序列密码算法来实施数据加密保护,非压缩数据流原则上应当选用TCP协议进行数据传送。2.1 UDP协议的数据传输加解密处理流程基于UDP协议的数据传输采用分组密码算法来进行加解密处理,采用AES分组密码算法时其加解密处理流程如图1所示。图中的分组密码算法模块实现了AES分组密码算法,发送端业务控制方和接收端终端设备通过身份认证和密钥协商协议已经安全交换了共享密钥K和K'(K = K')。根据相关标准规定,标准传输流明文数据包长度为188字节,其中:前4个字节为包头,不做加密处理;再取8个字节用于分组密码算法密码分组链接(CBC)模式的初始向量,初始向量无需加密保护;剩余176个字节分为11个明文分组,每个分组大小为128位。在发送端(业务控制方),对于每一个标准传输流明文数据包,首先产生一个8字节的随机数作为初始向量,然后使用密钥协商获得的共享密钥K'和初始向量,对标准传输流明文数据包中的11个明文分组依次通过分组密码算法模块进行加密运算,并重新组装成标准传输流密文数据包通过UDP协议发送给接收端(终端设备)。标准传输流密文数据包长度仍然为188字节,其中:前4个字节为明文包头;紧跟8个字节的明文初始向量;剩余176个字节为加密后的11个密文分组,每个密文分组大小为128位。在接收端(终端设备),对于每一个标准传输流密文数据包,通过分组密码算法模块,并使用密钥协商获得的共享密钥K和从数据包中解析出的初始向量,对标准传输流密文数据包中的11个密文分组依次进行解密运算,即能够获得明文分组数据用于终端设备播放。2.2 TCP协议的数据传输加解密处理流程基于TCP协议的数据传输采用序列密码算法来进行加解密处理,其加解密处理流程如图2所示。图中的序列密码算法模块(如数字太和公司的流加密模块)实现了序列密码算法,发送端业务控制方和接收端终端设备通过身份认证和密钥协商协议已经安全交换了共享密钥K和K'(K = K'),这里共享密钥实际上是用作序列密码算法的密钥种子。在发送端(业务控制方),序列密码算法模块通过密钥协商获得的密钥种子K'产生用于加密数据的密钥流。对于待传送的非压缩数据流明文数据,使用密钥流对数据流明文进行按位异或即可得到密文数据流,然后将密文数据流通过TCP协议发送给接收端(终端设备)。在接收端(终端设备),序列密码算法模块通过密钥协商获得的密钥种子K产生用于解密数据的密钥流。对于接收到的非压缩数据流密文数据,使用密钥流对数据流密文进行按位异或即可得到明文数据流用于终端设备播放。在使用初始向量增强密钥流随机性的情况下,应当由发送端生成序列密码算法使用的初始向量,并在TCP连接建立之后,首先通过约定的数据协议格式将初始向量发送给接收端,然后再实施数据流加解密处理。 3 NGB数字版权管理技术为保障内容提供商以及运营商在运营中提供的内容与资产的合法权益,防止内容的盗用以及剽窃行为,应当在NGB内容运营过程中引入数字版权管理机制。数字版权管理机制主要通过内容加密、基于数字证书的签名验证等技术来对版权进行控制与管理,其基本工作原理是,在建立NGB数字证书认证系统统一管理和签发证书的基础上,数字内容利用密码技术被加密保护,并通过数字证书版权许可信息进行签名,终端设备可通过版权许可信息获取解密密钥,并基于版权许可信息对内容的播放进行控制。由于需要数据内容被加密保护,即使被用户下载保存,在没有得到验证授权的情况下也无法使用。数字版权管理机制通常是通过与内容对应的权利信息表(或者说内容许可证来)来实现。权利信息表对与版权保护相关的重要内容包括:● 内容标识:用于区别不同的内容。● 版权发行者URL域:定义版权发行者的URL。● 权利信息表签名算法:指明对权利信息表进行签名所使用的签名算法。● 权利信息表摘要算法:指明对权利信息表进行签名时所使用的摘要算法。● 内容加密方法:指明对内容加密所采用的密码算法。● 内容加解密密钥:指明如何获取内容加密密钥。● 内容播放权限:定义播放权限及录制权限。● 权利信息表签名:对权利信息表的数字签名码。3.1 对权利信息表的数字签名对权利信息表进行数字签名的目的是确保权利信息表在传送过程中的完整性和真实性,防止对权利信息表内容的非法篡改。对权利信息表的签名原理是:权利信息表发布者首先对权利信息表中除数字签名码之外的所有字段进行不带密钥的摘要运算得到摘要值,然后权利信息表发布者使用自己数字证书所对应的私钥对摘要值进行数字签名得到数字签名码,并将数字签名码作为权利信息表的内容之一发送给授权的内容消费者。内容消费者获取到权利信息表之后,首先对权利信息表中除数字签名码之外的所有字段重新进行不带密钥的摘要运算得到摘要值,然后通过版权发行者相关信息获取到发布者数字证书并验证其数字证书的有效性,证书有效性验证通过后,使用从证书中解析出的发布者公钥对数字签名码进行验证。如果验证数字签名通过,则说明权利信息表是真实有效的,之后可以根据权利信息表内容获取内容解密密钥对内容进行解密,并依据内容播放权限进行播放控制。3.2 数字内容的授权提供在数字版权管理中,如果不在数字内容提供给消费者之前对消费申请者进行身份认证和授权控制,恶意消费者即使不能正确解密数字内容,但他可以通过恶意申请的方式对内容提供方进行拒绝服务攻击,从而导致正常消费者也无法获取正常服务。DRM中的身份认证和授权控制流程如图3所示。1.内容申请者A将声明自己身份的数字证书CERA和内容标识CID发送给内容提供方B。2.内容提供方B通过NGB数字证书认证系统验证内容申请者A数字证书CERA的有效性,验证内容包括CA对证书的签名、证书有效期、证书是否被提前撤销等。如果证书验证不通过,则身份认证不通过,内容提供方拒绝向内容申请者A提供数字内容;如果证书验证通过,则通过信息授权中心继续检查内容申请者A是否有权获取所申请的内容标识为CID的数字内容,若无权,则拒绝向内容申请者A提供数字内容。3.内容提供方B采集一个随机数RB并发送给内容申请者A。4.内容申请者A使用自己的私钥SKA对随机数RB进行签名运算得到签名值ESKA(RB)。5.内容申请者A将签名值ESKA(RB)发送给内容提供方B。6.内容提供方B使用内容申请者A数字证书CERA中的公钥,对内容申请者A对随机数RB的签名值ESKA(RB)进行验证运算DPKA(ESKA(RB))。如果验证通过,则内容提供方B对内容申请者A的身份认证通过,可以向其提供数字内容。3.3 对内容的加密保护在数字版权管理中,对内容的加密保护与前面所述的信息传输加密类似,而且既可采用分组密码,也可采用序列密码,不同之处在于解密密钥的获取。在信息传输加密实施过程中,共享密钥通常是由通信双方临时通过约定的协商机制来获取的。而在数字版权管理中,对内容的加密密钥通常是存在于内容提供商或运营商的一个密钥分发管理系统中,内容消费者在获取权利信息表并对权利信息表验证数字签名通过后,可基于权利信息表中的版权发行者信息及其它相关信息从相应的密钥分发管理系统中获得加密内容的解密密钥。鉴于在向内容消费者提供数字内容之前已经对其身份进行过认证,因此,密钥提供过程相对于信息传输加密中的密钥协商过程来说可以进行简化。DRM中的内容解密密钥的获取流程如图4所示。 1.内容消费者A将自己的数字证书CERA和内容标识CID发送给密钥提供方C。2.密钥提供方C通过NGB数字证书认证系统验证内容消费者A数字证书CERA的有效性,验证内容包括CA对证书的签名、证书有效期、证书是否被提前撤销等。如果证书验证不通过,则身份认证不通过,密钥提供方拒绝向内容消费者A提供数字内容;如果证书验证通过,则通过信息授权中心继续检查内容申请者A是否有权获取所申请的内容标识为CID的数字内容,若无权,则拒绝向内容消费者A提供相应的密钥,若有权,则根据内容标识CID检索出内容解密密钥K。3.密钥提供方B使用内容消费者A数字证书CERA中的公钥,对密钥K进行加密获得EPKA(K),并将EPKA(K)传送给内容消费者A。4.如果内容消费者A确实是数字证书CERA代表的用户,则内容消费者A就可以使用自己的私钥对EPKA(K)进行解密获得内容解密密钥K= ESKA(EPKA(K)),之后即可以使用密钥K解密数字内容进行播放了。 4 结束语在三网融合大趋势的今天,市场需求是最大的利益驱动者,加密技术只是为保护内容提供商和网络运营商利益提供了一种技术手段,在实际NGB运营中,是否加密或加密的程度以及数字版权的使用不光取决于技术,更多地取决于市场和运营商的决策。 编辑:中国新闻技术工作者联合会
评论 点击评论