时间:2024-07-28
李明,王赛,曲延盛,刘范范
(国网山东省电力公司,济南250001)
密码算法的参数设置对网络安全运维的影响
李明,王赛,曲延盛,刘范范
(国网山东省电力公司,济南250001)
在交换机、路由器的账号配置、远程运维、信息传输的过程中,大量用以实现信息认证性、保密性的密码算法不可篡改。随着密码分析技术的进步和计算机计算能力的提升,如果选取错误的参数配置会大大降低安全协议的安全性,暂时安全的密码算法将会变得不再安全。综述在网络设备及协议中常见的密码算法,分析不同密码算法的安全性,提出安全条件下各类密码算法的参数设置,可以作为日常网络运维参数配置的参考依据。
密码学;参数;对称密码;公钥密码
密码学是一种设计和实现保密系统的科学,已有很长历史。在信息社会,随着网络、电子商务以及电子政务等的迅速发展,信息安全问题已经不仅仅出于军事、政治和外交的需要,越来越多的政府、商业、金融等机构和部门的大量数据需要密码算法的保护和认证。在交换机、路由器等网络设备运维管理中,也应用到大量的密码算法,比如SNMP v3、ssh、SSL、IPSec等网络协议中。目前开放的网络环境使得设备之间交互的信息容易受到攻击者篡改、窃听或者非授权访问,特别是网络设备如果被黑客控制,则会帮助实现信息窃取及篡改、中间人、DNS、DDos攻击等网络攻击,造成根本性的安全威胁。
实际应用的现代密码学主要分为对称密码学和非对称密码学,其安全性是基于数学理论的。非对称密码学基于数学中的困难问题,比如素数分解、离散对数问题等等。对称密码学基于数学中的代数变换。不管对称密码算法还是非对称密码算法,都是计算安全的,也就是说以现有的计算能力不可破解。随着密码分析技术的进步和计算机计算能力的提升,暂时安全的密码算法将会变得不再安全,这时就需要更换算法或者增大算法的参数,来实现密码算法的理论安全。对常见的密码算法进行分析,提出要达到安全目的各类密码算法的设置参数方法,可以作为日常网络安全参数配置的参考依据。边信道攻击算法的出现,帮助攻击者将设备及链路的物理学变化(如功率、电磁辐射等)与密码分析结合起来,这就使得传统的密码算法必须选择更长的参数,才能保证安全性。
1.1密码算法在计算机网络中的应用
在交换机及路由器的基本配置中(以Cisco的命令行为例),enable password这种方式是明文的,enable secret采用MD5加密。service password-encryption加密方式是采用了MD5或者思科的私有加密方式来加密的。
在关键网络环境中启用SNMP v3协议时,提供鉴别和加密的功能以实现网络安全,其中鉴别是使用MD5或SHA-1作为散列函数,通过HMAC实现的。加解密是通过DES-CBC、AES等算法实现的。SNMP v3协议提供了3个安全级别:noAuthNoPriv,authNoPriv和authPriv,其中应用的密码算法如下。
noAuthNoPriv级别表示没有认证或私密性被执行;
authNoPriv级别表示认证被执行但没有私密性被执行;
authPriv级别表示认证和私密性都被执行。
在对网络设备远程运维时,经常会用到SSh(Secure Shell)协议,这其中使用到DSA、RSA、Kerberos 5、NTLM等公钥密码算法,用来建立安全的链接并且传输数据。后来为了获得更高的安全性,还扩展使用ECDSA等更为安全的密码算法。
在TCP/IP协议簇中,密码算法在IPSec、SSL等网络协议中更加大量应用,比如HMAC、3DES、AES、IDEA、Diffie-Hellman密钥交换、椭圆曲线D-H等密码算法,特别是不同的版本,密码算法及参数选取的方法发生了很大的变化。
1.2对称密码算法
1949年Shannon发表的“Communication Theory of Secrecy Systems”[1]为密码学奠定了理论基础,使密码学成为一门科学。继Shannon之后,很多研究者设计的密码系统都是基于密钥的对称密码体制。1967年Kahn[2]的专著《The Codebreakers》记述了一段密码学发展的完整经历。对称密码算法的安全性基于对信息的代数变换,所以攻击方法不断进步的攻击能力是衡量一个对称密码算法安全性的依据。
常见的对称密码算法有DES、AES[3]等,在这些算法的基础上还可以进一步变换以增强安全性,比如3DES等。由于对称密码算法具有高效性,已经被广泛应用于从email到ATM机等各个方面。Hash函数也属于对称密码算法,其本身独立使用不能完成信息的加解密,但是在实现数据完整性校验、身份验证等方面具有关键意义。常见的Hash函数有MD5、 SHA-0、SHA-1、SHA-2等。但是随着密码分析技术的进步,MD4、MD5已经被破解不推荐使用,SHA-0被证明是有缺陷的,SHA-1也已经有针对性的破解算法从而安全性明显降低,SHA-2一直没被广泛使用。2012年,NIST宣布Keccak算法被选为SHA-3。以MD5为例,首先将信息变换为16进制的32位数字,然后经过一系列的移位、替换等代数变换,生成128 bit的hash值。2004年,MD5算法被发现不能抵抗一种碰撞攻击,其破解的困难性大大降低[4]。2005年,符合X.509标准的公钥证书已经可以被仿造出来,表明了MD5算法的彻底不安全。至今为止,安全Hash函数的设计仍然是一个热点问题。
1.3非对称密码算法
1976年,Diffie和Hellman[5]发表的“New Direction in Cryptography”,提出公钥密码(非对称密码)的思想,是现代密码密码学的开端,使得在开放的环境中确保信息的保密性、认证性、完整性和不可否认性成为可能。对称密码体制,有很小的运算量,但是就密钥管理方面来说,由于它需要事先分配密钥,使其在很多场合并不适用。公钥密码体制可以实现密钥分配等功能,但是公钥密码体制中常包含代数结构(群、环或有限域等)复杂的大整数或多项式的运算,运算效率较低。
1.3.1基于整数分解的算法
基于整数分解困难问题的密码算法主要有RSA、Rabin算法、Blum算法等,这些算法的安全性受到整数分解困难问题现状的直接影响。
RSA是现在网络上最流行的密码体制,由Rivest、Shamir和Adleman[6]在1977年提出。在2009年,一个232位的整数被成功分解,意味着参数选取为768 bit的RSA、Rabin等算法已经不再安全。而考虑到计算效率,参数选取一半为16或者32的倍数,同时考虑在安全性方面保留足够冗余,一般情况下参数选取推荐为1 024 bit。
1.3.2基于离散对数的算法
自从Diffie和Hellman引入公钥密码的概念以来,基于离散对数问题的密码体制引起越来越广泛的关注。ElGamal[7]首先描述了如何利用离散对数问题来构建公钥密码体制中的加密和签名。为满足多种需要,ElGamal的方法得到了不断改进,其中一种经过了改进的形式是美国政府的标准签名算法(DSA)[8]。一个基于离散对数问题的简单密码算法如下所示。
确定公共的参数:有限域Fq,域上的椭圆曲线E和基点B∈E。每一个用户选择一个随机数a,并把它当作私钥,计算bB=Ba,将点bB公开作为公钥。
加密:Alice选择随机数k,并将密文c=(x,y)发给Bob,其中a是Bob的私钥,bB是Bob的公钥,y= m*Bak,x=kB=Bk。
解密:Bob计算xa=Bak,m′=(Bak)-1y即可。
尽管Diffie和Hellman的密钥协商协议中利用的是基于模一个素数构成的乘法群上的生成元的离散对数问题,这种思想可以扩展到任意的群上。设G是一个阶为n的有限群,α是G上的一个元素,那么G上的离散对数问题可以表述为:给定一个元素β∈G,找一个整数x满足0 上述密码算法太简单,以至于不实用且存在破解漏洞,需要对它进行适当改造后才可以使用,比如DSA、Diffie-Hellman密钥交换协议等。在选取这些算法的参数时要非常小心,比如要选择安全素数(满足p=2q+1的素数),选取的群的一个子群阶要较小等。针对离散对数问题的算法也有很多,比如Baby-step giant-step算法、数域筛法、Pohlig-Hellman算法等。1.3.3椭圆曲线及超椭圆曲线密码算法 在1985年,Koblitz[11]和Miller[12]分别独立提出定义在应用有限域上的椭圆曲线上的点群来实现基于离散对数问题的密码体制。很多其他建立在阿贝尔群上的密码体制,也都可以修改为椭圆曲线密码体制,比如Diffie-Helman密钥交换协议、DSA签名协议等。与RSA相比,椭圆曲线密码体制(ECC)有更小的密钥长度和更快的运算速度,需要更小的存储,也就更适合在小型设备上实现。 椭圆曲线密码体制(ECC)一个很大的优势是对于椭圆曲线上的离散对数问题(ECDLP)并不存在低于幂指数复杂性的算法,比如类似于“index-calculus”类型的算法。所以,如果使用椭圆曲线上的点群可以使用较短的密钥就得到相同的安全性。这意味着更短的密钥、更小的带宽需求、更快地实现等,适用于小功耗和小集成电路空间的环境,比如智能卡、无线设备等。 表1 RSA和ECC的密钥长度的比较 ECC和RSA作为成熟的公钥密码算法,已经出现很多年了,并且都已经被广泛应用。RSA的基本操作是整数环上的模幂操作,其安全性基于大整数分解的困难性,而对于分解大整数问题存在低于指数复杂性的算法。所以在达到同样安全要求的条件下,ECC需要更小的密钥长度和具有更高的运算效率。在椭圆曲线密码中,160 bit的运算规模提供的安全性相当于RSA中1 024 bit的运算规模提供的安全性。而ECC-224提供的安全性相当于RSA-2048[13]。 超椭圆曲线(HEC)作为椭圆曲线(EC)的一个扩展,也可以用来建立密码体制。Koblitz[14]于1988年提出了在超椭圆曲线上建立密码体制以来,超椭圆曲线上的运算公式和标量乘计算方法也在不断地发展和改进。与椭圆曲线密码体制相比,超椭圆曲线密码体制的安全性更高,其上的运算参数数及密钥长度都更短,所以适合在计算能力较弱的处理器和存储受限的环境中使用,比如智能卡和嵌入式系统。对应于参数为1 024 bit长度的RSA密码体制,现在推荐在椭圆曲线和超椭圆曲线上建立阶为2 160大小的群,就可以满足我们的安全需求[15]。在使用椭圆曲线时,操作数的长度为160 bit即可满足要求。在亏格g=2的超椭圆曲线上,操作数的长度约为160/g=80 bit;在亏格为3的超椭圆曲线上,操作数的长度约为55 bit即可。已经证明,在亏格大于3的超椭圆曲线上建立密码体制,安全性是要降低的。而在使用亏格为3的超椭圆曲线时,也要很小心的选择安全曲线以避免某些有效的攻击。所以目前大多数HECC都是建立在亏格为2的超椭圆曲线上的。在本文中所使用的超椭圆曲线,也都是亏格为2的。 虽然超椭圆曲线上的操作数很短,但是其上复杂的运算公式,限制了它的应用。随着人们研究的深入,各种高效的除子的运算公式陆续被提出[16],并且使得超椭圆曲线上的标量乘运算速度越来越接近于椭圆曲线上的标量乘计算。随着近两年来椭圆曲线上的运算公式又有了新的发展,超椭圆曲线上的运算也需要新的技术和改进,才能保持其相对于椭圆曲线密码体制的优势和生命力。 近几年来出现的边带信道攻击将密码体制的有效实现与安全性联系在一起,为密码分析开辟了一个新的领域,成为密码分析者的有力工具。在传统的模型中,Alice和Bob在一个不安全的信道上通信时,会使用密码算法来保证通信的保密性。这样,理想状态下系统的安全性就只依赖于密钥的保密性和密码算法的安全性。但是,在实际应用中,通信各方一般都是各种设备,比如个人电脑、智能卡或者移动电话。在这类设备上实现密码协议时,必然要运行某种密码算法并且保护密钥的安全。但是,在处理不同的数据时,设备所消耗的功率、运行时间等必然不同,而这种信息一般与密钥是相关的,通过这些信息就可以推断出密钥的某些信息。这样,系统的安全性不仅依赖于算法和协议的安全性,还依赖于算法和协议的安全实现。由于用来实施边带信道攻击的设备相对来说比较易得,而智能卡广泛应用于安全领域和应用中,所以这种攻击对于现有的密码体制来说具有巨大的威胁。 第一个边带信道攻击是由Kocher[17]提出的,通过收集设备在运算时所消耗的功耗、电压、以及电磁辐射等信息,来推测密钥的信息。时间攻击是第一种边带信道攻击,由Kocher[18]在1996年提出,并且在PC上用来攻击多个密码算法,如RSA、DSA等。时间攻击被Dhem等人于1998年第一次应用到智能卡上。由于绝大多数密码算法在程序实现时,总会包含有程序分支,而导致处理不同的数据时会消耗不同的时间,于是这种变化就可以泄漏密钥信息,这就是时间攻击的原理。功耗攻击[18]和差错攻击[19]也是常见的几种攻击方法,它们通过分析密码设备在执行密码算法时所用的时间、消耗的功率或者发射的电磁波等信息,来分析设备中保存的私钥。 针对边信道攻击的抵抗方法通常为加入一些冗余操作,或者通过代数变换设计新的密码执行算法,来去除各种边信道信息。但是这些方法都会使密码算法的运行效率大为降低。如何设计一个既安全又高效的算法,成为一个重要的工作。 时间攻击并不常用来攻击椭圆曲线密码体制,功耗分析是应用在椭圆曲线密码体制上最多的一种边带信道攻击,也是研究得最为深入的一种,而功耗分析的方法与时间攻击的方法在原理上有类似之处,其抵抗方法也有相似之处。 有时,密码分析者甚至可以通过比如改变设备的电压等方法,在密码设备中引入错误数据,来破解密码体制。差错攻击由Boneh[19]等人在1997年提出,并应用到一个RSA CRT体制上来到到私钥。在这种攻击中,攻击者试图在智能卡运算的过程中,改变输入的功率(或是输入的时钟),来强行改变一个寄存器里的值,这样密码算法就会用一个错误的数据来运算。通过比较正常的输出和产生差错后的输出,就可以得到模数的分解。例如,设RSA CRT签名体制中,模数N=pq,于是其签名运算为 其中d1=d mod(p-1),d2=d mod(q-1),CRT(cp,cq)表示利用中国大数定理求解。当在运算过程中强行出现一个差错时,假设最终运算结果为是c′p、c′q和c′=CRT(cp,cq),于是可以用欧几里德算法计算q=gcd(c′-c,n),这就得到了N=pq的分解。 将差错攻击扩展到其他基于群的密码体制上是很自然的事情,所有针对椭圆曲线的差错攻击,都是在计算标量乘kP的过程中强行引入一个差错,使得计算不再是在原来的曲线上,而是在一个更弱的曲线上。这样,可以计算或者部分计算标量k的值。 密码设备的运算,必然产生电磁辐射,就如同功耗分析和时间攻击,电磁辐射也会泄漏运算的信息。具体的攻击方法参见文献[20]。 边带信道攻击已经成为攻击移动设备和智能卡所的最有效的攻击方法之一。抵抗边带信道攻击,有硬件实现的方法,也有软件实现的方法。常用的抵抗边带信道攻击的方法主要有两个:从硬件设计上来实现,或者是从代数方面设计安全的算法来实现。硬件设计上的抵抗方法主要是通过破坏功耗曲线和增强信号的噪声来降低攻击的有效性,但是信号处理或者是增加分析数据的数量可以轻易克服这种抵抗方法,并且这些方法对抵抗电磁辐射攻击和时间攻击都是基本无效的。于是出现了更强的抵抗方法:双轨道编码(dual rails encoding),可以从理论上去除海明重量和功率消耗之间的联系。但是这种方法大大增加了电路的规模、体积和成本,在很多情况下并不适用。生产商还可以将同步技术改为异步,这样会使得对功耗曲线的分析变得困难。而同时,DPA分析方法的不断改进[18],也使得单纯的硬件上的抵抗攻击变得脆弱。软件的方法,即通过代数变换设计可以抵抗边信道攻击的密码算法,几乎不增加成本,并且可以灵活适应各种新出现的攻击,是当前研究的一个热点。 为了加解密算法的快速执行,RSA在使用公钥进行加密时,经常选用小数(比如3、5)。但是在公钥选取5的情况下,密码分析已经表明RSA的安全性会有所降低,必须避免。这样公钥参数只能在大于3的整数中选取。 在量子计算中,整数分解问题和离散对数问题都是可解的,基于这两个困难问题的密码算法也就失去了应用价值。 为实现信息安全,在网络设备配置及协议中应用了大量的密码算法。但是随着密码分析技术的进步和计算机计算能力的提升,暂时安全的密码算法已经逐步变得不再安全,如果使用了不恰当参数的密码算法,将会对整个系统安全性从根本上造成损害。对常见密码算法的安全性进行分析,通过比较得出使用更安全的算法或者增大算法的参数,可以进一步实现密码算法的理论安全,可以作为日常网络设备配置及选用时的参考,从而避免误用造成的安全性降低。 [1]Shannon CE.Communication theory of secrecy systems.Bell System Technical Journal,28(1949),656-715. [2]Kahn D.The Codebreakers:The Story of Secret Writing,New York:Macmillan,1967. [3]Menezes AJ Oorschot PC van and Vanstone SA.Handbook of Applied Cryptography.CRC Press,1997. [4]Xiaoyun Wang and Hongbo Yu(2005).“How to Break MD5 and Other Hash Functions”(PDF).Advances in Cryptology-Lecture Notes in Computer Science 3494.pp.19-35.Retrieved 21 December 2009. [5]Diffie W and Hellman ME.New directions in cryptography.IEEE Transactions on Information Theory,22(1976),644-645. [6]Rivest RL Shamir A and Adleman L A method for obtaining digital signatures and public-key cryptosystems.Communications of the ACM,21(2):120-126,1978. [7]ElGamal T.A public-key cryptosystem and a signature scheme based on discrete logarithms.IEEE Transactions on Information Theory,It-31(4):469-472,July 1985. [8]National Institute of Standards and Technology.Digital Signature Standard,2000.FIPS Publication 186-2. [9]Agnew G,Mullin R,Onyszchuk I and et al.An implementation for afastpublic-keycryptosystem,JournalofCryptology,Vol.3(1991)pp.63-79. [10]Schnorr C.Efficient signature generation by smartcards.Journal of Cryptology,Vol.4(1991)pp.161-174. [11]Koblitz N.Elliptic curve cryptosystems.Mathematics of Computation,vol.48,pp.203-209,1987. [12]Miller V.Uses of elliptic curves in cryptography,Advances in Cryptology-CRYPTO’85,LNCS 218,pp.417-426,Springer-Verlag,1986. [13]NealKoblitz,AlfredMenezes,IgorShparlinski.DiscreteLogarithms,Diffie-Hellman,and Reductions.IACR Cryptology ePrint Archive 2010:577(2010). [14]Koblitz N.Hyperelliptic cryptosystems.Journal of Cryptology.1:139-150,1989. [15]Avanzi R,Cohen H,Doche C and et al.Handbook of Elliptic and Hyperelliptic Curve Cryptography,CRC Press,2005. [16]Cantor G.Computing in the Jacobian of a hyperelliptic curve. Math.Comp.,48:95-101. [17]Kocher P.Timing attacks on implementations of Diffie-Hellman,RSA,DSS,and other systems.CRYPTO’1996,LNCS 1109,pp. 104-113,Springer-Verlag,1996. [18]Kocher P,Jaffe J,and Jun B.Differential power analysis.CRYPTO’1999,LNCS 1666,pp.388-397,Springer-Verlag,1999. [19]Boneh D,DeMillo RA and Lipton RJ.On the importance of eliminating errors in cryptographic computations,J.Cryptology 14(2001),no.2,101-119. [20]Christophe Doche and Laurent Habsieger.A Tree-Based Approach for Computing Double-Base Chains,Proceedings of the 13 th Australasian conference on Information Security and Privacy,Wollongong,Australia,LNCS 5107,pp.433-446,Springer-Verlag,2008. The Security of Network Configuration Based on Cryptography Algorithms LI Ming,WANG Sai,QU Yansheng,LIU Fanfan A number of cryptography algorithms are employed in the operation of networks such as parameter setting,remote maintenance and command transport to realize the security of information.Along with the progress of cryptoanalysis and computers,the security protocols will be reduced greatly if the wrong parameter configuration is chosen,and the security of crytographic algorithms will break down.We summarize common cryptographic algorithms of the network equipment and protocols,analyze the security of different algorithms,and propose parameter configurations of different algorithms.The result would be used as a reference of daily network operational parameters configuration. cryptograph;parameter;symmetric cryptology;public key cryptology TP393 A 1007-9904(2015)10-0035-05 2015-08-22 李明(1982),男,工程师,博士,主要从事信息安全和密码学等相关工作。2 边信道攻击及其影响
3 结语
(State Grid Shandong Electric Power Company,Jinan 250001,China)
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!