祁 明 王育民
网络安全已成为网络使用者面临的严重问题。随着网络应用水平的提高和电子商务的大力开展,计算机系统的安全隐患日渐突出,诸如高科技犯罪、机密泄露、黑客入侵、病毒侵扰等,其危害之严重、手段之高超,令人惊异。
为了对付日益猖獗的计算机犯罪,密码技术受到了各国政府、学术界和产业界的高度重视,它与网络协议等安全技术相结合,成为解决认证、数据加密、访问控制、电子签名、防火墙和电子货币等的关键技术。
1 安全技术的趋势
从表1不难看出,密码是安全技术的核心,密码不仅支持通信和保密性,而且方便验证他方身份(实体认证),保证通信信息安全(报文认证),允许在网络上实现电子认可(电子鉴定)等等,以取代常规的书面文件密封和签名。
2 密码技术的发展
密码是早已使用的防止信息泄漏或篡改的一项重要技术。最初,密码主要是军用和外交用。随着信息化社会的发展,密码应用迅速扩展到商业领域,包括用密码作为信息和通信业务的安全措施。
2.1 密码技术的分类
密码体制分为两大类:秘密密钥密码体制和公开密钥密码(简称公钥密码)体制。
秘密密钥密码体制使用相同的密钥加密和解密,传统密码技术就属于这一类。该体制以很高的速度实现加密算法,所以常常用来加密数据含量大的通信消息和文件。其典型实例包括美国开发的DES(数据加密标准)、瑞士开发的IDEA(国际数据加密算法)以及最近颁布的AES(高级加密标准)等。秘密密钥密码体制的关键问题是必须保证与之通信各方的独立密钥的秘密性,以及如何在发收方之间安全传递密钥。
公钥密码体制是美国Diffie和Hellman于1976年提出的概念,具有划时代意义。该体制的加密和解密采用不同密钥。发方利用收方自己的公开密钥加密密文,收方使用与公开密钥对应的秘密密钥解密密文。公钥密码体制只需保密解密密文所需的密钥,所以密钥管理比采用秘密密钥密码体制容易得多,但最大缺陷是加密速度慢,最典型的是美国开发的RSA。
在实际密码通信中常采用混合的方式,即数据含量大的通信用高速的秘密密钥密码体制加密,而秘密密钥密码体制的密钥,由于其数据含量少,则用公钥密码体制加密传递给收方。
密码体制的安全保密在于秘密密钥的保护,加密算法可以公诸于世,但秘密密钥决不能泄露。DES、IDEA、AES等加密算法都是公开的。加密算法公诸于世有利于让密码专家评估算法的安全性,利于推动加密技术的广泛应用。
2.2 网络通信中的加密方式
(1)链路—链路加密
面向链路的加密方法将网络看作链路连接的节点集合,每一条链路被独立加密。链路—链路加密方式为两个节点之间通信链路中的信息提供安全性,它与这个信息的起始或终结无关,如图1所示。每一个这样的链接相当于OSI参考模型建立在物理层之上的链路层。
这种类型的加密最容易实现,因为所有的报文都被加密,黑客攻击者无法获得任何关于报文结构的信息,也无法知道通信者、通信内容、通信时间等信息,还可以称之为信号流安全。这种加密方式中,密钥管理相对来说是简单的,只在链路的两站节点需要一个共用密钥。加密是在每条通信链路上独立进行的,每条链路上使用不同的加密密钥。因此,一条链路上的错误不会波及其他链路,影响其他链路上的信息安全。
链路—链路信息加密仅限于节点内部,所以要求节点本身必须安全。另一个较大的问题是维护节点安全性的代价。其优缺点如下:
加密对用户是透明的,通过链路发送的任何信息在发送前都先被加密; 每条链路只需要一对密钥;提供了信号流安全机制。
缺点是数据在中间节点以明文形式出现,维护节点安全性的代价较高。
在链路—链路加密方式中,加密对用户是看不见的、透明的,所有的用户拥有一个设备,加密可以用硬件完成。
(2)节点加密
节点加密指每对节点共用一个密钥,对相邻两节点间(包括节点本身)传送的数据进行加密保护。尽管节点加密能给网络数据提供较高的安全性,但它在操作方式上与链路加密是类似的:两者均在通信链路上为消息提供安全性;都在中间节点先对消息进行解密,然后进行加密。因为要对所有传输的数据进行加密,这一过程在节点的安全模块中进行。在节点加密方式中,为了将报文传送到指定的目的地,链路上的每个节点必须检查路由选择信息,因此只能对报文的正文进行加密而不能对报头加密,报头和路由信息以明文形式传输,以便中间节点能得到如何处理该报文的信息,但是这种方法不利于防止攻击者分析通信业务。
(3)端—端加密
端—端加密方法建立在OSI参考模型的网络层和传输层。这种方法要求传送的数据从源端到目的端一直保持密文状态,任何通信链路的错误不会影响整体数据的安全性,如图2所示。对于这种方法,密钥管理比较困难。如果加密在应用层或表示层进行,那么加密可以不依赖于所用通信网的类型。
在端—端加密方式中,只加密数据本身信息,不加密路径控制信息。信息在发送主机内和中间节点也是加密的。用户必须找到加密算法,用户可以选择加密,也可以决定施加某种加密手段。
端—端加密方法将网络看作是一种介质,数据能安全地从源端到达目的端。这种加密在OSI模型的高3层进行,在源端进行数据加密,在目的端进行解密,而在中间节点及其链路上将一直以密文形式出现。其缺点是允许进行通信量分析,而且密钥管理机制较复杂。
(4)加密方式的选择
保密是一个相对概念,加密技术在攻守较量中不断发展和完善。采用什么加密方式,是安全策略研究的重要内容。一个信息系统要有明晰的安全策略,制定保密策略,选择合理、合适的加密方式。
前面介绍的几种加密方式都有其优缺点。目前网络加密主要采用链路加密和端到端加密方式。
通过对加密方式的分析,可得出如下结论:
在需要保护的链路数不多,要求实时通信,不支持端到端加密远程调用通信等场合宜采用链路加密方式,这样仅需少量的加密设备,可保证不降低太多的系统效能,不需要太高的加密成本;
在需要保护的链路数较多的场合以及在文件保护、邮件保护、支持端到端加密的远程调用、实时性要求不高的通信等场合,宜采用端到端加密方式,这样可以使网络具有更高的保密性、灵活性,加密成本也较低;
在多个网络互联的环境下,宜采用端到端加密方式;
对于需要防止流量分析的场合,可考虑采用链路加密和端到端加密相结合的加密方式。
3 常用加密算法
(1)DES
美国国家标准局为了在政府部门进行信息处理时保证数据的安全,自1971年开始研究数据密码的标准化。美国国家标准局于1977年1月5日正式确定DES为美国的数据加密标准。近20多年来,DES算法得到了广泛的应用。
DES加密算法的保密性到底如何?自1975年以来,美国的许多机构、公司和学者,包括国家保密局(NSA)、NBS、IBM公司、BELL实验室和一大批著名的密码学专家都对DES进行了大量的研究,但未找到破译DES捷径。这证明DES具有良好的抗分析破译性能。但随着计算机和VLSI技术的发展和DES密钥选择过短,实时破译DES已经实现。当前采用的DES算法是它的一些强化组合模式,如3-DES和EDE-DES。
原来估计DES可以安全使用15年,所以早在1984年美国国家安全局决定研制新的数据加密标准,并于90年代初公布了EES(密钥托管密码体制)。但它不具有技术上的开放性和使用上的灵活性,因此受到金融界的强烈反对而无法推广使用。美国政府不得不于90年代中开始着手制定新的数据标准算法,即AES。
(2) IDEA
1990年由瑞士联邦技术学院来学嘉(Lai XJ)和Massey提出的建议标准算法,称作PES(Proposed Encryption Standard),后改称为IDEA。1992年进行了改进,IDEA算法强化了抗差值分析的能力。这是近年来提出的各种分组密码中一个很成功的方案,已在PGP中采用。IDEA算法已在不少文章和书中介绍。
(3) SAFER K-64
SAFER K-64(Secure and Fast Encrytion Routine)是Massey为Cylink公司设计的非专用分线密码算法,已用于他们的密码产品中。新加坡政府拟采用128bit密钥的这一算法。SAFER K-64无专利和产权等限制。
(4)AES——Rijndael算法
1996年美国NIST开始着手开发替代DES的新标准——高级加密标准(AES),于1997年1月2日启动开发计划, 9月12日正式公布了征集计划。 NIST希望替代算法的安全强度高于或等于3-DES,且有明显更高的效率。其分组长度至少为128bit,密钥长度可为128、192、256bit,约有3.4×1038 、6.2×1057、1.1×1077个可能的密钥。假如有一台每秒可试验255个密钥(可恢复56bit DES的一个密钥)的破译机,破译128bit 的Rijndael需要1.49×106亿年,而宇宙的年龄不过200亿年。估计Rijndael至少可以使用20年。
2000年10月2日美国宣布比利时人提出的Rijndael(发音为荣代尔)算法获胜。一旦Rijndael加密算法最终作为标准,美国就有了支持电子商务发展的关键性安全工具,其电子商务与政务将更加安全保密。
Rijndael集安全、性能、效率、成本、通用性、可实现性和灵活性于一身。它可以在大型计算机、台式机甚至智能卡上安全可靠地运行。无论在反馈模式还是在非反馈模式中使用Rijndael,其软件和硬件对计算环境的适应性强、性能稳定、密钥建立时间优良、密钥灵活性强、存储需求量低,即使在空间有限的环境使用也具备良好的性能。同时,Rijndael在抗能量攻击(Power attacks)和定时攻击(Timing attack)中易于运行,能实现为一个流密码、杂凑算法,并能提供辅助密码服务,此外又不会明显改变Rijndael的性能。在分组长度和密钥长度方面,Rijndael也具有一定的灵活性。该算法允许改变圈数。
(5)RSA公钥体制
RSA算法是公开密钥密码体制中一种比较成熟的算法。公开密码体制是1976年由Diffie和Hellman等人在斯坦福大学,Merkle 在加利福尼亚大学提出来的。RSA算法是由Rivest、Shamir和 Adleman于1978年在麻省理工学院研制出来的。RSA算法是建立在“大数分解和素数检测”的理论基础上的。
(6)ECC
1985年,Neal Koblitz和Victor Miller相互独立地提出了ECC算法,即椭圆曲线密码体制(Elliptic Curve Cryptography)。ECC涉及深奥的数论理论,一般仅用160~200位的密钥便足以对付各种高保密需要。ECC作为公开密钥密码体制中的一种,在坚实的理论基础上实现高度安全性,具有存储效率、节约通信带宽以及计算效率等多方面的优越性,运算速度比RSA高10倍,是一种非常有前途的密码体制。德国、日本、法国、美国、加拿大等国的很多密码学研究小组及一些公司已实现了椭圆曲线密码体制,中国也有一些密码学者做了这方面的工作。
4 数字签名
数字签名是电子商务安全中的一项非常重要的技术,它在大型网络安全通信中的密钥分配、安全认证、公文的安全传输以及电子商务系统中的防否认等方面都具有重要作用。
类似于手书签名,数字签名应满足以下要求:收方能够确认或证实发方的签名,但不能伪造;发方发出签名的消息送收方后,就不能再否认他所签发的消息;收方对已收到的签名消息不能否认,即有收报认证;第3者可以确认收发双方之间的消息传送,但不能伪造这一过程。
数字签名有两种:一种是对整个消息的签名,一种是对压缩消息的签名,它们都是附加在被签名消息之后或某一特定位置上的一段签名图样。若按明、密文的对应关系划分,每一种又可分为两个子类:一类是确定性数字签名,其明文与密文一一对应,它对一特定消息的签名不变化(使用签名者的密钥签名),如RSA、ElGamal等签名;另一类是随机化的或概率式数字签名,它对同一消息的签名是随机变化的,取决于签名算法中的随机参数和取值。
一个签名体制一般含两个组成部分,即签名算法和验证算法。对M的签名可简记为Sig(M)=s(有时为了说明密钥k在签名中的作用,也可以将签名写成Sigk(M)或Sig(M,k)),而对s 的证实简记为Ver(s)={真,伪}={0,1}。签名算法或签名密钥是秘密的,只有签名人掌握。证实算法应当公开,以便于他人进行验证。
常用数字签名有:
(1)RSA签名
安全参数
令n=pq, p和 q是大素数,选 e并计算出d,使ed=1 mod (p-1)(q-1),公开n和e,将p,q和d保密。则所有的RSA参数为K=(n ,p,q,e,d)。
数字签名
对消息M∈Zn,定义:
S=Sig(M)= M d mod n为对M的签名。
签名验证
对给定的M,S可按下式验证:设 M‘=Se mod n。如果M=M‘(则签名为真,否则,就不接受签名。
(2)ElGamal签名
该体制由T.ElGamal在1985年给出,其修正形式已被美国NIST作为数字签名标准DSS,是Rabin体制的一种变型。
签名过程
给定消息M,发端用户选择秘密随机数k∈Zp*;计算压缩值H(M),并计算:r=g k mod p ,s=(H(M)-xr)k-1 mod(p-1) 最后将Sig(M,k)=(M,r,s)作为签名,将(M,r,s)送给对方。
验证过程
收信人收到(M,r,s),先计算H(M),并按下式验证签名:y rr s=g H(M )mod p。这是因为y rr s=g rxg sk=g (rx+sk)mod p,由上式有(rx+sk)=H(H) mod(p-1) ,故有y rr s=g h(m) modp。在此方案中,对于同一消息M,由于随机数k不同而有着不同的签名值( M,r,s)。
除了上述几种常见的签名体制外,还有盲签名、定向签名、群签名、代理签名等。目前已有多个国家和地区对数字签名立法。5 密钥管理与数字证书
使用秘密密钥密码体制时,发方和收方使用相同的密钥,所以必须设计出一种共享秘密密钥的办法。密码领域正积极进行开发密钥共享方法的研究工作,大体可分为使用密钥中心的方法、基于私钥体制的密钥管理、基于公钥体制的密钥管理和密钥第3方托管等方法。
选择合适的密钥共享方法取决于诸多因素,主要如系统的规模、提供的业务类型以及在系统中的使用模式等。
(1)密钥托管问题
由于密钥托管系统负有法律执行部门及政府智能部门的特殊任务,和非密钥托管系统相比,它的施行势必降低加密系统的安全性,增加系统的复杂性以及建立、维护、运行系统的费用。密钥托管作为一个信息安全基础设施,在推广使用时必须考虑以下几点:
1应该保证数据的保密性、完整性。
2世界范围内的可用性,要与国内外不同的密码政策相适应。
3具有足够的强度,能抗击实际使用中各种威胁及运行风险。
4实施方法的细节应该是公开的,比如Skipjack算法及LEAF产生方法。
5必须能为法律执行部门提供方便。
6滥用应该是困难的和容易发现的。
7形成一个合法的组织体系。
8必须考虑宪法赋予公民的合法权利。
9选择可信任的托管机构KEA(Key Escrow Agency)时应有很大的灵活性。
10有足够的权利使用新开发的算法和标准。
11对任何人都是容易得到的而且费用不能太高。
12为用户提供可选的安会防范,以减小诸如密钥丢失或毁坏所造成的损失。
而密钥托管目前至少在2、3、4、6、8、11与期望的相距甚远。
(2)数字证书
数字证书或公钥证书是由被称作证书机构的人或实体签署的。其中含有掌握相应密钥的持证者的确切身份或其它属性。顾客向CA(认证机构)申请证书时,可提交自己的执照、身份证或护照,经验证后,颁发证书,证书包含了顾客的名字和他的公钥,以此作为网上证明自己身份的依据。在SET中,最主要的证书是持卡人证书和商家证书,证书结构参见图3。
持卡人证书
持卡人证书并不包括账号和终止日期信息,取而代之的是用单向Hash算法根据账号、截止日期生成的一个码。
商家证书
商家证书是由金融机构签发的,不能被第3方改变。在SET环境中,一个商家至少应有一个证书。与银行打交道时,一个商家也可以有多个证书,这就表示它与多个银行有合作关系,可以接受多种付款方法。
认证机构是提供身份验证的第3方机构,由一个或多个用户信任的组织实体组成,参见图4。例如,持卡人要与商家通信,持卡人从公共媒体上获得了商家的公开密钥,但持卡人无法确定商家不是冒充的(有信誉), 于是持卡人请求CA对商家认证。CA对商家进行调查、验证和认证后,将包含商家公钥的证书传给持卡人。
6 标准化
不管是民间的、国家的还是国际的标准化组织,都积极地使某些应用的安全技术标准化。安全技术标准会方便用户,有利竞争,最终会使产品价格下降,使许多应当受到保护的应用得到合理的保护。
(1)标准化活动
国际标准化组织(ISO)SC21和SC27正分别间断进行有关共用安全框架的单个安全技术的标准化活动。最近,ISO SC27最引人注目的举动是从事一项新工程,即研究密码通信和密钥管理方法、日益增长的可信任第3方(TTP)作用及其运行准则。
同时,ISO正在系统地制订估价和批准产品安全性的安全评价标准。有人指出,安全性评价标准可能成为官方的信息产品采购准则,这个倾向值得关注。
(2)加密算法
登记加密算法的制度始于1991年(ISO/IEC9979),迄今已登记的两个日本算法是NTT公司的FEAL和日立公司的MULT12,早已登记过的其它重要算法包括美国IBM公司开发的美国标准DES,美国提出的Cipher芯片的Skipjack加密算法,瑞士开发的IDEA加密算法,英国电信公司的B-CRYPT加密算法。
(3)Internet安全标准化
Internet工程任务组(IETF)是讨论Internet工程问题的机构,下设大约90个工作小组,涉及各种活动。IETF每年召开3次全会,准备Internet草案建议和发出征求意见书(RFC)。IETF有若干个工作小组涉及到安全问题,其活动之一是强化保密邮件(PEM),意在使电子邮件安全保密。目前正对PEM进行评价,并以此作为标准化的第一步。
为了使读者了解安全保密技术的发展与应用,这里罗列了一些与信息安全相关的一些站点(参见表2),这些站点可以向大家提供非常丰富的安全保密信息。□
参考文献
1王育民,刘建伟.通信网的安全——理论与技术.西安:西安电子科技大学出版社,1999
2杨千里,王育民等.电子商务技术与应用.北京:电子工业出版社,1999
3 祁明,晏维龙等.电子商务实用教程.北京:高等教育出版社,2000
4祁明,张凌等.电子商务安全与保密.北京:高等教育出版社,2001
(收稿日期:2001-08-06)
作者简介
祁明,华南理工大学电子商务学院常务副院长,华南理工大学计算机工程与科学系副主任,全国高校电子商务协作组秘书长, 广东省公安厅计算机安全协会副会长, 广东省保密局安全技术专家组副组长。1996年在西安电子科技大学信息安全研究所获博士学位,1998年在华南理工大学信息网络工程研究中心完成博士后研究。研究方向为电子商务关键技术及应用研究,承担和参加过多项科研项目。主编专著有《电子商务实用教程》、《电子商务安全与保密》,在国际会议、国内会议和期刊杂志发表的学术论文有70余篇。
王育民,西安电子科技大学教授,博士生导师,中国电子学会和中国通信学会会士、中国密码学会理事、IEEE高级会员、中国自然科学基金研究会会员。长期从事信息论、信道编码、密码学以及通信网的安全等方面的教学和科研工作。合著书有《伪随机序列及其应用》、《信息与编码理论》、《保密学 — 基础与应用》、《通信网的安全 — 理论与技术》、《电子商务技术与应用》、《电子商务核心技术—安全电子交易协议的理论与设计》、《电子商务技术实务》等。在国内外学术刊物和会议上发表论文200余篇。