密码消息原语通信协议介绍及安全分析
2017-12-15徐春晖
徐春晖
(南京中兴新软件责任有限公司,江苏 南京 210000)
密码消息原语通信协议介绍及安全分析
徐春晖
(南京中兴新软件责任有限公司,江苏 南京 210000)
文章对密码消息原语通信协议(CMS)作了介绍与分析,列举了CMS协议的保护机制和安全性分析及后续改进,供相关人士参考。
密码消息原语;数字签名;保护机制
密码消息原语(Cryptographic Message Synta,CMS)协议为数据保护提供了封装语法。它支持数字签名、消息鉴别码及加密,并支持多次封装。CMS协议被用于数字签名、摘要、验证及加密任何消息内容,适合于为定向通信协议提供安全保护。
1 CMS算法介绍
CMS通过使用ASN.1(抽象语法标志)[X.208-88]及[X.209-88]产生CMS值,算法标志符标识了加密算法。应用支持SHA-1或MD-5。CMS包含了下列密钥管理技术:密钥一致性,密钥传输,预先分配的对称密钥加密密钥,密码。密钥一致性算法使用了X9.42 Ephemeral-Static Diffie-Hellman及 X9.42 Static-Static Dif fi e-Hellman。当密钥一致性被支持时,每一个内容加密算法将被提供一个密钥加密算法。CMS应用中的对称密钥加密管理使用了三重DES和RC2加密密钥。当RC2被支持时,RC2 128 bit密钥作为加密密钥使用。CMS应用可以支持混合密钥加密及内容加密算法。如一个49 bit的RC2内容加密密钥可以由168 bit的三重DES密钥加密密钥及128 bit的RC2密钥加密密钥包装。密钥生成算法被用来将一个密码转换成一个密钥加密密钥,并将其作为基于密码的密钥管理技术的一部分。
2 CMS协议保护机制
在常见的通信系统中一般采用IPSec或TLS保证通信的完整性、机密性等,IPSec安全协议工作在网络层,TLS工作在传输层之上、应用层之下,在NEA模型中,这些保护措施都工作于PT层之中。在一些情况下,消息需要通过不受PT保护的网络下一跳传输,或者要求只有特定的Posture Collector与Posture Validator才能接收到消息,这时就需要端到端的PA-TNC消息保护机制,而IPSec或TLS只能保证逐跳的安全,这样PA-TNC就缺少有效的端到端的安全性保护,存在一定安全隐患。于是终端状态评估模型中引入了CMS协议来保证端到端的安全。CMS协议为数据保护提供了封装语法,它支持数字签名,消息鉴别码及加密[1]。
CMS协议已被IETF用来保护一些定向会话协议(如MIME消息,防火墙升级),它被认为是一个保护PA-TNC属性的好的标准方法,并应用于PA-TNC中以提供身份认证,完整性和多项属性的可选机密性。CMS内容保护机制允许Posture Collector与Posture Validator互相以CMS压缩形式发送一个或多个PA-TNC消息属性。每个CMS保护内容属性必以内容信息结构开始,此种内容信息结构包括上层的内容种类标志符及内容本身,并且CMS允许消息种类的嵌套。下面为CMS信息的ASN.1封装结构[2]:
PA-TNC中引入CMS安全机制之后,3种新的终端状态属性被定义,分别为:CMS Protected Content Attribute,CMS Error Code Attribute,Nonce CMS Attribute。CMS Protected Content Attribute提供了完整和机密性保护,CMS Error Code Attribute指出了错误状态信息的原因,Nonce CMS Attribute防止了重传攻击。在这3种新的终端状态属性中,CMS 主要使用加密和数字签名两种技术,前者提供数据的机密性,只有特定接收者才能解密并浏览数据,后者提供身份的认证和数据的完整性,以确保一些机密信息在传输过程中没有被篡改,防止攻击者修改或冒名发送请求或响应,两种技术可以同时使用,同时密码算法是可以扩展的。常用的加密算法有DES,RC2,摘要算法有SHA,MD5,所有的CMS值以ASN.1的结构表示。
3 CMS协议安全性分析
CMS Protected Content Attribute为终端状态属性提供了完整机密性保护,属性消息放在CMS封装对象中,分为signed-data和enveloped-data两种形式。signed-data对属性使用了数字签名技术,使得PA-TNC消息的接收者可以对发送者进行身份认证,且因为签名覆盖了一条消息中的多个PATNC属性,所以除非HASH值无效,否则攻击者无法单独更改任何一条属性,从而保证了多条属性的完整;envelopeddata对签名后的属性进行加密操作,使属性值通过不受信任的中间设备时也保证了机密性。
CMS Error Code Attribute属性使收到无效安全保护PA-TNC消息的接收者发出一个错误响应以指出无效的原因。在一些特殊情况下,接收者无法识别签名(如使用不受支持的加密算法)或无法与发送者建立信任,但接收者至少可以得到返回的错误码并决定是否对其信任及如何对其进行操作。
Nonce CMS Attribute属性的使用防止了状态评估模型遭受重传攻击,保存于上面所提到的signed-data content中,终端状态属性消息的发送者在Nonce CMS Attribute中加入了一个Nonce,以使接收者可以发现出重传攻击。Nonce的值对于第三方来说是不可知的,使用者可以用一系列不重复的数字来表示。
4 CMS协议的改进
CMS协议应用中,数字签名较多采用RSA算法,RSA是第一个既能用于数据加密也能用于数字签名的算法,但其具有明显缺点:(1)产生密钥很麻烦,难以做到一次一密;(2)分组长度太长,至少600 bit以上,运算代价很高,较对称密码算法慢几个数量级,且随大数分解技术发展,这个长度还在增加,不利于数据格式标准化及加密大量数据。因此,可将与RSA与MD5等HASH函数配合在一起使用[3],具体过程如图1所示。
图1 RSA与MD5等HASH函数使用流程
发送方对信息作MD5变换,形成信息摘要,再用SK对生成的信息摘要加密,并将已加密的原始信息和加密后的信息摘要传给接收方;接收方用发送方的PK进行解密得到发送方的原始信息及信息摘要,如果解密后的信息摘要和接收方自己产生的信息摘要一致,那么接收方就可以相信对方的身份和文件内容完整性。和原来单独使用RSA进行数字签名的方法相比,改进后的方法同样确保了身份认证和数据完整性,但减少了运算量(见图2)。
图2 改进后的流程
5 结语
CMS协议从完整机密性保护,错误信息的反映,重传攻击保护三方面改变了终端属性标准消息结构及协议交互流程以实现安全保护,但是不同环境下的终端模型是一个复杂的系统,而且CMS协议需要引入多种安全算法,在实际应用的时候还需要根据情况进行周密和详尽的安全设置和配置,才能给系统带来足够的安全保障。
[1] HOUSLEY R.Cryptographic Message Syntax (CMS) algorithms[J].Standard Track,2002(8):174.
[2] SANGSTER P.TNC IF-M security: bindings to CMS[EB/OL].(2008-01-31)[2017-11-01].https://www.trustedcomputinggroup.org/wpcontent/uploads/TNC_IFM_Security_CMS_v1_0_r14.pdf.
[3] 赖德刚,黄月江,童登高.CMS协议在Diameter中的应用及其安全性研究[J].成都信息工程学院学报,2006(6):787-791.
Introduction and security analysis of cryptographic message synta
Xu chunhui
(Nanjing ZTE Software Company, Nanjing 210000, China)
In this paper, the cryptographic message synta(CMS)is introduced and analyzed, and the protection mechanism and security analysis and subsequent improvement of CMS protocol are enumerated, which can be referred by related people.
cryptographic message synta; digital signature; protection mechanism
徐春晖(1984— ),男,江苏南京人,工程师,硕士;研究方向:通信技术产品研发及安全技术。