- 计算机网络安全技术研究
- 董仕
- 3543字
- 2020-06-24 14:33:08
第七节 密钥管理与交换技术
一、密钥管理技术
密钥是加密系统的可变部分,就像是保险柜的钥匙。现代加密技术采用的加密算法一般都公开,因此系统的安全完全靠密钥来保证。在计算机网络环境中,由于有很多节点和用户,需要大量的密钥。如果没有一套妥善的密钥管理办法,其危险性是可想而知的,密钥一旦发生丢失或泄露,就可能造成严重的后果。因此,密钥的管理成为加密系统的核心问题之一。
1.密钥的管理问题
对密钥进行保密就要使应该得到明文的用户得到明文,不应该得到明文的用户得不到有意义的明文,这就是密钥的管理问题。密钥管理是一项复杂细致的长期工程,即包含了一系列的技术问题,也包含了行政管理人员的素质问题,对于密钥的产生、分配、存储、更换、销毁、使用和管理等一系列环节,必须都注意到。每个具体系统的密钥管理必须与具体的使用环境和保密要求相结合,万能的、绝对的密钥管理系统是不存在的。实践表明:从密钥管理渠道窃取密钥比单纯从破译途径窃取密钥要容易得多,代价也要小得多。
依据应用对象的不同,密钥管理方式也不相同。如对于物理层加密,由于只在邻结点之间进行,因此密钥管理比较简单;而对于运输层以上(端到端)的加密,密钥管理就比较复杂;对于单结点构成的网络系统和多结点构成的分布式网络系统,密钥的管理就更加复杂。这里,我们主要讨论端到端加密的密钥管理办法,这些方法适用于主机和多终端系统,即能保护网络中通信的数据,也能保护网络中存储的数据。
一个良好的密钥管理系统,应尽可能不依赖人的因素,这不仅仅是为了提高密钥管理的自动化水平,同时也是为了提高系统的安全程度。为此,密钥管理系统有以下具体要求。
1)密钥难以被非法窃取。
2)在一定条件下,窃取了密钥也没有用。
3)密钥的分配和更换过程对用户是透明的。
一个密钥管理系统设计时,首先要明确解决什么问题,要考虑哪些因素。一般以下几个方面的因素必须考虑。
1)系统对保密的强度要求。
2)系统中哪些地方需要密钥,密钥采用何种方式预置或装入保密组件。
3)一个密钥的生命周期是多长。
4)系统安全对用户承受能力的影响。
上述因素有些是技术性的,有些则是非技术性的,只要对这些因素做认真考虑,就能设计出一个符合需求的密钥管理系统。
2.密钥管理的一般技术
(1)密钥管理的相关标准与规范
目前国际上有关的标准化机构都在着手制定关于密钥管理的技术标准和规范。ISO与ITC下属的信息技术委员会(JTC1)起草了关于密钥管理的国际规范。该规范主要由三部分组成,第一部分是密钥管理框架,第二部分是采用对称技术的机制,第三部分是采用非对称技术的机制。1997年我国开始制定安全电子商务标准第一部分,其中就包括“密钥管理框架”。
(2)对称密钥管理
利用对称密钥进行的加密是基于共同保守秘密来实现的,通信的双方采用相同的密钥,因此要保证密钥传递的安全可靠,同时还需约定密钥的操作程序。经过多年的实践和研究,可以通过非对称密钥技术实现对对称密钥的管理,使得原来繁琐、危险的管理变得简单而安全。
1)密钥的生成:生成密钥的算法应该是“强壮”的,生成的密钥空间不能低于密码算法中所规定的密钥空间。在允许随机选择时,要规定不能使用现实中有意义的字符串。可采取随机数序列发生器,以保证密钥的随机生成,如“PGP”加密工具的随机数“种子”取自用户的敲击键盘的间隔时间。
2)密钥的管理:在密钥的整个生命周期内,对密钥的各阶段的管理操作要遵守一定的原则:最小特权原则、最少设备原则和不影响正常工作原则。
密钥管理基本内容:处于存储状态的密钥必须确保安全,必要时可以对其进行加密保护。
密钥的分配、传递必须通过机要或专门的渠道进行,也可以在进行可靠的加密后通过网络传递,密钥传递机制不能与信息传递机制相同,在安全性上必须高于信息传递机制。大型网络的密钥分配和传递应设计专门协议。
要根据不同的密钥种类确定密钥更换周期,要有在紧急情况下销毁密钥的手段和措施,严防密钥丢失或脱离安全保护,要及时发现和废止已泄露或可能泄露的密钥。
用于现场加密信息的密钥最好临时注入密钥,在机器中长期驻留的密钥是容易受攻击的,若必须长期驻留则应加强物理保护措施。
重视密钥备份管理,备份是为了应对意外事件的必要补救措施,备份的保存在物理和逻辑上都应是安全的。
对于非商业的要害部门从国外进口的密码算法和设备不经消化改造不得投入运行,密码进口审批权在国家密码主管部门。
(3)非对称密钥管理
非对称密钥管理的主要形式是数字证书,网络通信双方之间可以使用数字证书来交换公有密钥。按照X.509标准,数字证书包括唯一标识证书所有者、唯一标识证书发布者、证书所有者的公有密钥、证书颁布者的公有密钥、证书的有效期等信息。证书的颁布者一般称为证书管理机构(CA),是用户间都信任的独立机构。目前微软的Internet Explorer和Netscape的Navigator等应用系统都提供了利用数字证书作为身份鉴别的手段。
(4)密钥托管
在加密方面出现的许多问题使一些政府机构正努力寻找一种安全监视的方法,如为了监视犯罪组织利用加密技术进行的犯罪活动,而执法部门难以取得有效证据等,从而提出“密钥恢复”、“密钥托管”或“受信任的第三方”的加密要求。
所谓“密钥托管”就是阻止加密系统的滥用或用于非法目的,通过立法手段,在加密系统中加入能保证执法部门能获取明文的技术措施,如前面提到的Clipper加密芯片等。因此,从广义上讲,“密钥恢复”是指任何一个受信任的第三方获取加密信息的系统。
二、密钥交换技术
网络上的两个结点系统在安全交换数据之前,必须首先建立某种约定,这种约定称为“安全关联”,指双方需要就如何保护信息、交换信息等公用的安全设置达成一致。更重要的是,必须有一种方法,使这两个结点系统安全地交换一套密钥,以便在它们的连接中使用,这种机制就是密钥交换。
Internet工程任务组IETF制定的安全关联标准法和密钥交换解决方案IKE(Internet密钥交换)负责这些任务,它提供一种方法供两个结点系统之间建立安全关联,以便对它们之间的策略协议进行编码,指定它们将使用哪些算法和什么样的密钥长度,以及实际的密钥本身。
1.Diffie-Hellman密钥交换技术
对称加密算法和对称MAC(信息校验码)都要求使用一个共享的密钥。由于一次不安全的密钥交换,加密及身份验证技术的保密性有可能完全丧失。
Diffie-Hellman密钥交换是第一种非对称密钥加密系统。利用Diffie-Hellman交换技术,可在一个不保密的、不受信任的通信信道上,在交换的双方之间建立起一个安全的共享秘密的会话。
Diffie-Hellman交换过程中涉及的所有参与者首先都必须隶属于一个组。这个组定义了要使用哪个质数p,以及底数g。Diffie-Hellman密钥交换是一个包括两部分的过程。在每一端(以Alice和Bob为例)的第一部分,需要选择一个随机的私人数字(由当事人的小写首字母表示),并在组内进行乘幂运算,产生一个公共值(当事人的大写首字母)。例如:
Alice Bob
A=gamod p B=gbmod p
他们开始交换自己的公有密钥,Alice将A给Bob,而Bob将B给Alice,他们再次执行乘幂运算,使用当事人的公共值作为底数,以生成共享的一个“秘密”,例如:
Alice Bob
Bamod p = g(ab)mod p = Abmod p
仅就A和B来说,它们完全可在一个不安全的网络中进行交换,不会对方案的安全造成干扰,g和p甚至根本就不必保护秘密。一个偷窥者(Eve-Eavesdropper)可以提前知道g和p,并在不安全的信道上将A和B拦截下来。但尽管如此,仍然无法解析出秘密。一旦Alice和Bob分享了秘密以后,他们就可用它保护自己的通信。
Diffie-Hellman密钥交换的一个缺点是易受“中间人”的攻击。在这种攻击中,Mallory会在Alice面前模仿Bob,而在Bob面前模仿Alice。Alice认为自己是在同Bob进行一次Diffie-Hellman交换,但实际交流的却是Mallory。类似地,与Bob交流的实际也是Mallory。这样,Alice可能会向Bob发送受共享密钥保护的秘密信息,认为自己真的是和Bob分享秘密。Mallory自然可对其进行解密,复制它,再用Bob拥有的秘密对其重新进行加密(Bob认为是在和Alice分享这个秘密)。这样无论是Alice还是Bob,都侦测不到信息的来源到底是哪里。应对这种所谓的“中间人”攻击的办法也很简单,只要Alice和Bob为自己的公共值加上了数字签名,便能有效地防范此类攻击。
2.RSA密钥交换技术
使用RSA加密系统,既可用公有密钥加密,亦可用私有密钥加密。此外,一个密钥加密的东西可被另一个密钥解密,利用这种能力,可进行非常简化的密钥交换。假如Alice想用对称加密算法来保护自己同Bob的通信,便可挑选一个随机数作为密钥,用Bob的公有密钥对它进行加密,再把它传给Bob。这样,只有Bob能够对密钥进行解密,因为只有他才拥有自己的私有密钥。
但这种方式也存在一个明显的问题,那就是任何人(如Mallory)都可用Bob的公有密钥加密任何东西,并不仅仅Alice才能。所以,Alice需要利用一种手段,将自己同这个密钥结合到一起。同样地,一个数字签名就可达到目的。Alice可为自己的密钥加上签名,然后用Bob的公共密钥同时对自己的密钥和签名进行加密。另外,Diffie-Hellman交换的好处是通信双方都会对最终的密钥施加影响,没有人能将一个密钥强行施加给对方。