1、第五章密钥管理技术第五章第五章 密钥管理技术密钥管理技术o 5.1 密钥管理概述o 5.2 对称密钥的管理o 5.3 非对称密钥的管理o 5.4 密钥管理系统o 5.5 密钥产生技术o 5.6 密钥的分散管理与托管5.1密钥管理技术概论密钥管理技术概论在现代的信息系统中用密码技术对信息进行保密,其安全性实际取决于对密钥的安全保护。在一个信息安全系统中,密码体制、密码算法可以公开,甚至所用的密码设备丢失,只要密钥没有被泄露,保密信息仍是安全的。而密钥一旦丢失或出错,不但合法用户不能提取信息,而且非法用户可能会窃取信息。因此密钥管理成为信息安全系统中的一个关键问题 密钥管理的定义密钥管理是处理密钥
2、自产生到最终销毁的整个过程的的所有问题,包括系统的初始化,密钥的产生、存储、备份/装入、分配、保护、更新、控制、丢失、吊销和销毁等。其中分配和存储是最大的难题。密钥管理不仅影响系统的安全性,而且涉及到系统的可靠性、有效性和经济性。当然密钥管理也涉及到物理上、人事上、规程上和制度上的一些问题。密钥管理的内容o 产生与所要求安全级别相称的合适密钥;o 根据访问控制的要求,决定每个密钥哪个实体应该接受密钥的拷贝;o 用可靠办法使这些密钥对开放系统中的实体是可用的,即安全地将这些密钥分配给用户;o 某些密钥管理功能将在网络应用实现环境之外执行,包括用可靠手段对密钥进行物理的分配。密钥交换是设计网络认证
3、,保密传输等协议功能的前提条件。密钥选取也可以通过访问密钥分配中心来完成,或经管理协议作事先的分配。密钥管理的三个层面(1)理论因素o 按照信息论的理论,密文在积累到足够的量时,其破解是必然的。o 假设Alice和Bob在使用对称密钥进行保密通信时,必然拥有相同的密钥。n Kerberos系统中为了避免攻击者通过穷举攻击等方式获得密钥,必须经常更新或是改变密钥,对于更新的密钥也要试图找到合适的传输途径。n 假设Alice在向Bob发送信息时,始终不更新密钥,那么在攻击者Mallory对信息M的收集量满足一定要求时,其成功破译系统的可能性会增大。o 两个通信用户Alice和Bob在进行通信时,必
4、须要解决两个问题n 必须经常更新或改变密钥n 如何能安全地更新或是改变密钥。密文熵 H(K)H(K)/L 密钥熵 L(密文量)通信示意密钥管理的三个层面(续)(2)人为因素o 破解好的密文非常的困难,困难到即便是专业的密码分析员有时候也束手无策,当然可以花费高昂的代价去购买破译设备,但可能得不偿失。商业上的竞争对手更愿意花费小额的金钱从商业间谍或是贿赂密钥的看守者从而得到密钥,因此导致安全的漏洞。实际上这种人为的情况往往比加密系统的设计者所能够想象的还要复杂的多,所以需要有一个专门的机构和系统防止上述情形的发生。(3)技术因素o 用户产生的密钥有可能是脆弱的;o 密钥是安全的,但是密钥保护有可
5、能是失败的。5.2 对称密钥的管理对称密钥的管理本节提示o 5.2.1 对称密钥交换协议o 5.2.2 加密密钥交换协议5.2.1 对称密钥交换协议对称加密对称加密是基于共同保守秘密来实现的。采用对称加密技术的双方必须要保证采用的是相同的密钥,要保证彼此密钥的交换安全可靠,同时还要设定防止密钥泄密和更改密钥的程序。对称密钥对称密钥的管理和分发工作是一件具有潜在危险和繁琐的过程。可通过公开密钥加密技术实现对称密钥的管理,使相应的管理变得简单和更加安全,同时还解决了对称密钥体制模式中存在的管理、传输的可靠性问题和鉴别问题。对称密钥交换协议o 如果用户Alice和Bob间的相互通信使用相同密钥K进行
6、加密传输的话,由于Alice和Bob间要经常更换密钥,那么这个密钥如何来建立和传输是一个重要的问题,建立传输密钥的信道必须是安全的。o Diffie-Hellman算法1976是一个公开的密钥算法,其安全性基于在有限域上求解离散对数的困难性。Diffie-Hellman协议的具体实现在密码学中已有体现。对称密钥的密钥交换Diffie-Hellman协议的三方密钥传输 o假设Alice、Bob和Coral是需要通信的三方;o首先,Alice、Bob、Coral三方协商确定一个大的素数n和整数g(这两个数可以公开),其中g是n的本原元。;o由此所产生密钥过程为:nAlice首先选取一个大的随机整数
7、,并且发送 给Bob。nBob首先选取一个大的随机整数,并且发送 给Coral。nCoral首先选取一个大的随机整数,并且发送 给Alice。nAlice计算 给Bob。nBob计算 给Coral。nCoral计算 给Alice。nAlice计算 作为秘密密钥。nBob计算 作为秘密密钥。nCoral计算 作为秘密密钥。o秘密密钥 ,由于在传送过程中,攻击者Mallory只能得到X、Y、Z和X1、Y1、Z1,而不能求得x,y和z,因此这个算法是安全的。Diffie-Hellman协议很容易能扩展到多人间的密钥分配中去,因此这个算法在建立和传输密钥上经常使用。ngkxyzmodngXxmodng
8、YymodngZzmodnZXxmod1nXYymod1nYZzmod1nZkxmod1nXkymod1nYkzmod15.2.2 加密密钥交换协议o 加密密钥交换(Encryption Key Exchange,EKE)协议o 因特网密钥交换(Internet Key Exchange,IKE)协议o 基于Kerberos的Internet密钥协商(Kerberroized Internet Negotiation of Keys,KINT)协议 加密密钥交换(EKE)协议EKE(Encryption Key Exchange)协议由Steve Bellovin 和 假设A和B共享一个密钥或
9、是口令 ,那么产生密钥 的过程为:n(1)A选取随机的公(私)密钥 ,使用 作为加密密钥,并且发送 给B。n(2)B计算求得 ,然后选取随机的对称密钥 ,使用 和 加密,发送 给A。n(3)A计算求得 ,那么此时这个数值就是产生的 。随后,鉴别和验证:n(4)A选取随机数字串 ,使用 加密后,发送 给B。n(5)B计算求得 后,选取随机数字串 ,使用 加密后,发送 给A。n(6)A计算求得数字串 后,判断此时的数据串是否含有先前发送的数字串 。若是则取出数字串 ,使用 加密后,发送 给B;否则取消发送。n(7)B计算求得 后,判断此时的数据串是等于先前发送的 ,若是则选用密钥 作为通信密钥;否
10、则取消通信。PAEKP)(AEKEpBEKAEKAEKP)(BEKEEAEKpKBEKKARK)(AkREARBRK),(BAkRRE),(BARRARBRK)(BkREBRBRK因特网密钥交换协议o因特网密钥交换(Internet Key Exchange,IKE)协议由RFC2409文档描述的IKE密钥交换属于一种混合型协议,由IETF工作组定义完善。IKE协议沿用了ISAKMP(ISAKMP的含义是密钥管理协议,ISAKMP本身并不建立会话密钥,但是能够与各种不同的会话密钥建立协议)的基础、Oakley的模式以及SKEME的共享和密钥更新技术,从而提供完整的密钥管理方案。Oakley密钥
11、决定协议采用混合的Diffie-Hellman技术建立会话密钥。IKE技术主要用来确定鉴别协商双方身份、安全共享联合产生的密钥。o由于目前广泛应用于VPN隧道构建的IKE密钥交换协议存在潜在的不安全因素,因此这一协议的推广应用有可能暂停,对此不做详细阐述。IKE协议存在的安全缺陷包括可能导致服务器过载的大量初始安全连接请求,及占用服务器处理能力的大量不必要安全验证等,这类缺陷可能会招致严重的DoS攻击及敏感信息泄露。基于Kerberos的Internet密钥协商协议基于Kerberos的Internet密钥协商(Kerberroized Internet Negotiation of Keys
12、,KINT)协议是一个新的密钥协商协议,相对于IKE而言,它的协商速度更快、计算量更小、更易于实现。KINT使用Kerberos机制实现初期的身份认证和密钥交换,通过Kerberos提供对于协商过程的加密和认证保护。KINT将Kerberos快速高效的机制结合到密钥协商过程中,加快了身份认证和密钥交换的过程,缩减了协商所需要的时间。5.3 非对称密钥的管理非对称密钥的管理本节提示o 5.3.1 非对称密钥的技术优势o 5.3.2 非对称密钥管理的实现5.3.1 非对称密钥的技术优势o 无论是对称密钥还是公开密钥,都要涉及到密钥保护的问题。一个密钥系统是否是完善的,有时候取决于能否正常地保有密钥
13、。对称密钥加密方法的致命弱点就在于它的密钥管理十分困难,因此其很难在电子商务和电子政务中得到广泛应用。o 非对称密钥的的管理相对于对称密钥就要简单的多,因为对于用户Alice而言,只需要记住通信的他方Bob的公钥,即可以进行正常的加密通信和对Bob发送信息的签名验证。非对称密钥的管理主要在于密钥的集中式管理非对称密钥的技术优势o在使用对称密码系统时,发送加密信息的时候无须担心被截取(因为截取的人无法破译信息)。然而,如何安全地将密钥传送给需要接收消息的人是一个难点。公开密钥密码系统的一个基本特征就是采用不同的密钥进行加密和解密。使用公开密钥密码系统,公开密钥和私有密钥是成对的,而且公开密钥可以
14、自由分发而无须威胁私有密钥的安全,但是私有密钥一定要保管好。通过公开密钥加密的信息只有配对的私有密钥才能解密。非对称密钥地安全问题在于一个用户如何能正常且正确地获得另一个用户的公钥而不用担心这个公钥是伪造的。o在公开密码系统发明之前,维护一个庞大的密钥管理系统几乎是不可能的。因为在采用对称加密密码系统的情况下,随着用户数目的增加,密钥的需求量按几何级数增加。公开密钥密码系统的发明对一个大规模网络的密钥管理起了极大的推动作用。虽然公开密钥密码系统有那么多优点,但公开密钥密码系统的工作效率没有对称密钥密码系统好。公钥加密计算复杂,耗用的时间也长,公钥的基本算法比常规的对称密钥加密慢很多。为加快加密
15、过程,通常采取对称密码和公开密钥的混合系统,也就是使用公开密钥密码系统来传送密码,使用对称密钥密码系统来实现对话 非对称密钥假设Alice和Bob相互要进行通话,他们按照如下步骤进行(电子信封技术):o1)Alice想和Bob通话,并向Bob提出对话请求。o2)Bob响应请求,并给Alice发送CA证书(CA证书是经过第三方认证和签名,并且无法伪造或篡改)。这个证书中包括了Bob的身份信息和Bob的公开密钥。o3)Alice验证CA证书,使用一个高质量、快速的常用对称密钥加密法来加密一个普通文本信息和产生一个临时的通话密钥;然后使用Bob的公钥去加密该临时会话密钥。然后把此会话密钥和该已加密文
16、本发送给Bob。o4)Bob接收到信息,并使用自己的私钥恢复出会话密钥。o5)Bob使用临时会话钥对加密文本解密。o6)双方通过这个会话密钥会话。会话结束,会话密钥也就废弃。通信的双方为每次进行交换的数据信息生成唯一的对称密钥,并使用公开密钥对该密钥进行加密,然后再将加密后的密钥和使用该对称密钥加密的信息一起发送给相应的通信方。由于对每次信息交换都对应生成了唯一的一把密钥,因此各通信方就不再需要对密钥进行维护和担心密钥的泄露或过期。这种方式的另一优点是即使泄露了对称密钥也只将影响一次通信。而不会影响到通信双方之间所有的通信数据。这种方式还提供了通信双方发布对称密钥的一种安全途径,因此适用于建立
17、贸易和电子商务的双方。5.3.2 非对称密钥管理的实现o 公开密钥管理利用数字证书等方式实现通信双方间的公钥交换。o 国际电信联盟(ITU)制定的标准X.509对数字证书进行了定义,该标准等同于国际标准化组织(ISO)与国际电工委员会(IEC)联合发布的ISO/IEC 9594-8 195标准。o 数字证书能够起到标识贸易双方的作用,目前网络上的浏览器,都提供了数字证书的识别功能来作为身份鉴别的手段。目前国际有关的标准化机构都着手制定关于密钥管理的技术标准规范。o ISO与IEC下属的信息技术委员会(JTC1)起草的关于密钥管理的国际标准规范主要由3部分组成:n 密钥管理框架;n 采用对称密钥
18、技术的机制;n 采用非对称密钥技术的机制。5.4 密钥管理系统密钥管理系统本节提示o 5.4.1 基本概念o 5.4.2 密钥的分配o 5.4.3 计算机网络密钥分配方法o 5.4.4 密钥注入和密钥存储o 5.4.5 密钥更换和密钥吊销5.4.1 密钥管理基本概念o密钥的管理需要借助于加密、认证、签字、协议、公证等技术。密钥管理系统是依靠可信赖的第三方参与的公证系统。o密钥的种类繁杂,但一般将不同场合的密钥分为以下几类:(1)初始密钥n由用户选定或系统分配的,在较长的一段时间内由一个用户专用的秘密密钥。要求它既安全又便于更换。(2)会话密钥n会话密钥是两个通信终端用户在一次会话或交换数据时所
19、用的密钥。这类密钥往往由系统通过密钥交换协议动态产生。会话密钥使用的时间很短,从而限制了密码分析者攻击时所能得到的同一密钥加密的密文量。在不慎丢失时,由于使用该会话密钥加密的数据量有限,因此对系统的保密性影响不大。(3)密钥加密密钥(Key Encrypting Key,KEK)n用于传送会话密钥时采用的密钥。(4)主密钥(Mater Key)n主密钥是对密钥加密密钥进行加密的密钥,存于主机的处理器中。o密钥安全保密是密码系统安全的重要保证,保证密钥安全的原则是除了在有安全保证环境下进行密钥的产生、分配、装入以及存入保密柜内备用外,密钥决不能以明文的形式出现。密钥存储时,还必须保证密钥的机密性
20、、认证性和完善性,防止泄漏和修改。5.4.2 密钥的分配 密钥的分配要解决两个问题:o 密钥的自动分配机制,自动分配密钥以提高系统的效率;o 应尽可能减少系统中驻留的密钥量。密钥分配是密钥管理系统中最为复杂的问题,根据不同的用户要求和网络系统的大小,有不同的解决方法。根据密钥信息的交换方式,密钥分配可以分成3类:n 人工密钥分发;n 基于中心的密钥分发;n 基于认证的密钥分发。(1)人工密钥分发o 在很多情况下,用人工的方式给每个用户发送一次密钥。然后,后面的加密信息用这个密钥加密后,再进行传送,这时,用人工方式传送的第一个密钥就是密钥加密密钥。o 对一些保密要求很高的部门,采用人工分配是可取
21、的。只要密钥分配人员是忠诚的,并且实施的计划周密,则人工分配密钥是安全的。随着计算机通信技术的发展,人工分配密钥的安全性将会加强。然而,人工分配密钥却不适应现代计算机网络的发展需要,利用计算机网络的数据处理和数据传输能力实现密钥分配自动化,无疑有利于密钥安全,反过来又提高了计算机网络的安全。(2)基于中心的密钥分发(1/2)o 基于中心的密钥分发利用可信任的第三方,进行密钥分发。可信第三方可以在其中扮演两种角色:n 密钥分发中心(Key Distribuion Center,KDC);n 密钥转换中心(Key Translation Center,KTC)。o 此方案的优势在于,如果用户知道自
22、己的私钥和KDC的公钥,就可以通过密钥分发中心获取他将要进行通信的他方的公钥,从而建立正确的保密通信。o 大多数的密钥分发方法都适合于特定的应用和情景。例如,依赖于时间戳的密钥分发方案比较适合本地认证环境,因为在这种环境中,所有的用户都可访问大家都信任的时钟服务器。(2)基于中心的密钥分发(2/2)o 在Kerberos中,如果主体Alice和Bob通信时需要一个密钥,那么,Alice需要在通信之前先从KDC获得一个密钥。这种模式又称为拉模式(pull model)。o 美国金融机构密钥管理标准(ANSI X9.17)要求通信方Alice首先要和Bob建立联系,然后,让Bob从KDC取得密钥。
23、这种模式称推模式(push model),表示是由Alice推动Bob去和KDC联系取得密钥。o 从安全性方面,推模式和拉模式没有优劣之分,至于要实现哪种模式要看具体的环境而定。在Kerberos实现认证管理的本地网络环境中,把获取密钥的任务交给大量的客户端,这样可以减轻服务器的负担。而在使用X9.17设计的广域网环境中,采用由服务器去获得密钥的方案会好一些,因为服务器一般和KDC放在一起,而客户端通常和KDC离得很远。拉模型示意 Alice Bob KDC 推模型示意 Alice Bob KDC(3)基于认证的密钥分发o 基于认证的密钥分发也可以用来进行建立成对的密钥。基于认证的密钥分发技术
24、又分成两类:n 用公开密钥加密系统,对本地产生的加密密钥进行加密,来保护加密密钥在发送到密钥管理中心的过程,整个技术叫做密钥传送;n 加密密钥由本地和远端密钥管理实体一起合作产生密钥。这个技术叫做密钥交换,或密钥协议。最典型的密钥交换协议是Diffie-Hellman密钥交换。5.4.3 计算机网络密钥分配方法(1)只使用会话密钥o 这个方法适合比较小的网络系统中不同用户间的保密通信。它由一专门机构生成密钥后,将其安全发送到每个用户节点,保存在安全的保密装置内。在通信双方通信时,就直接使用这个会话密钥对信息加密。这个密钥被各个节点所共享。但这种只使用这一种密钥的通信系统的安全性低,而且由于密钥
25、被每个节点共享,容易泄露。在密钥更新时就必须在同一时间,在网内的所有节点(或终端)上进行,比较繁琐。o 这种情况不适合现在开放性、大容量网络系统的需要。计算机网络密钥分配方法(2/3)(2)采用会话和基本密钥o为了提高保密性、可使用两种密钥会话密钥和基本密钥。对于这种方法,进行数据通信的过程是:主体在发送数据之前首先产生会话密钥,用基本密钥对其加密后,通过网络发送到客体;客体收到后用基本密钥对其解密,双方就可以开始通话了;会话结束,会话密钥消失。由于数据加密密钥只在一次会话内有效,会话结束,会话密钥消失,下次再会话时,再产生新的会话密钥,实现了密钥的动态更新,一次一密,因此大大提高了系统的保密
26、性。o为了防止会话密钥和中间一连串加密结果被非法破译,加密方法和密钥必须保存在一个被定义为保密装置的保护区中。基本密钥必须以秘密信道的方式传送,注入保密装置,不能以明文形式存在于保密装置以外。o基于这种情况的密钥分配已经产生了很多成熟的密钥协议。例如简单的Wide-Mouth Frog密钥分配协议,讨论的比较多的Yahalom密钥分配协议,可以有效防范重传攻击的Needham-Schroeder协议,还有著名的Kerberos协议。计算机网络密钥分配方法(3/3)(3)采用非对称密码体制的密钥分配o 非对称密钥密码体制不仅可对数据进行加密,实现数字签名,也可用于对称密码体制中密钥的分配。当系统
27、中某一主体A想发起和另一主体B进行秘密通信时,先进行会话密钥的分配。A首先从认证中心获得B的公钥,用该公钥对会话密钥进行加密,然后发送给B,B收到该信息后,用自己所唯一拥有的私钥对该信息解密,就可以得到这次通信的会话密钥。这种方法是现在目前比较流行的密钥分配方法。5.4.4 密钥注入和密钥存储 密钥注入密钥注入o密钥的注入通常采用人工方式。特别对于一些很重要的密钥可由多人、分批次独立、分开完成注入,并且不能显示注入的内容,以保证密钥注入的安全。密钥的注入过程应当在一个安全、封闭的环境,以防止可能被窃听,防止电磁泄露或其他辐射造成的泄密等。当然,进行密钥注入工作的人员应当是绝对可靠的,这是前提条
28、件。o密钥常用的注入方法有:键盘输入、软盘输入、专用密钥注入设备(密钥枪)输入。采用密钥枪或密钥软盘应与键盘输入的口令相结合的方式来进行密钥注入更为安全。只有在输入了合法的加密操作口令后,才能激活密钥枪或软盘里的密钥信息。因此,应建立一定的接口规约。在密钥注入过程完成后,不允许存在任何可能导出密钥的残留信息,比如应将使用过的存储区清零。当将密钥注入设备用于远距离传递密钥时,注入设备本身应设计成像加密设备那样的封闭式物理逻辑单元。密钥注入后,还要检验其正确性。密钥存储o在密钥注入后,所有存储在加密设备里的密钥平时都以加密的形式存放,而对这些密钥的操作口令应该实现严格的保护,专人操作,口令专人拥有
29、或用动态口令卡来进行保护等。这样可以防止装有密钥的加密设备丢失也不至于造成密钥的泄露。o而且加密设备应有一定的物理保护措施。一部分最重要的密钥信息应采用掉电保护措施,使得在任何情况下,只要拆开加密设备,这部分密钥就会自动丢掉。o如果采用软件加密的形式,应有一定的软件保护措施。重要的加密设备应有紧急情况下自动消除密钥的功能。在可能的情况下,应有对加密设备进行非法使用的审计,把非法口令输入等事件的发生时间等纪录下来。高级专用加密设备应做到:无论通过人工的方法还是自动的(电子、X射线、电子显微镜等)方法都不能从密码设备中读出信息。对当前使用的密钥应有密钥合法性验证措施,以防止被篡改。密钥存储(续)o
30、通过这些保护措施的使用,应该做到存储时必须保证密钥的机密性、认证性和完整性,防止泄露和篡改。比较好的解决方案是:将密钥储存在磁条卡中,使用嵌入ROM芯片的塑料密钥或智能卡,通过计算机终端上特殊的读入装置把密钥输入到系统中。当用户使用这个密钥时,他并不知道它,也不能泄露它,他只能用这种方法使用它。若将密钥平分成两部分,一半存入终端,一半存入ROM钥卡上。即使丢掉了ROM钥卡也不致泄露密钥。将密钥做成物理形式会使存储和保护它更加直观。对于难以记忆的密钥可用加密形式存储,利用密钥加密密钥来加密。o公钥密码中的公钥不需要机密性保护,但应该提供完整性保护以防止篡改。公钥密码中的私钥必须在所有时间都妥善保
31、管。如果攻击者得到私钥的副本,那么它就可以读取发送给密钥对拥有者的所有机密通信数据,还可以像密钥对的拥有者那样对信息进行数字签名。对私钥的保护包括它们的所有副本。因此必须保护带有密钥的文件,可能包含这个文件的所有备份也应保护。o私钥管理成了公钥系统安全中薄弱的环节,从私钥管理途径进行攻击比单纯破译密码算法的代价要小得多,如何保护用户的私钥成了防止攻击的重点。大多数系统都使用密码对私钥进行保护。这样可以保护密钥不会被窃取,但是密码口令必须精心选择,以防止口令攻击。私钥存储方案 o(1)用口令加密后存放在本地软盘或硬盘o(2)存放在网络目录服务器中o(3)智能卡存储o(4)USB Key存储用口令
32、加密后存放在本地软盘或硬盘o 将私钥用用户口令进行加密后存放在软盘或硬盘中。例如电子邮件安全PGP采用的方法是利用私钥环文件来存放用户的私钥,在每对公开/私有密钥对中的私有密钥部分是经过用户口令的单向函数加密后存放的。私有密钥环只存储在创建和拥有密钥对的用户机器上,并且只有知道口令的用户可以访问私有密钥环。o 利用口令保护私有密钥非常简洁。但是用户使用时需要插入软盘或者利用存放在硬盘的文件,限制了用户使用的灵活性,例如用户需要在不同的机器上对网络进行访问,就必须将这些数据存入多台硬盘中,而一旦口令或者私钥被修改又需要对每台机器上的数据进行修改。而且存放文件容易被复制,虽然这些数据经过用户的口令
33、加密,但是一旦这些数据被别人复制就存在离线口令猜测攻击漏洞。这种方法适合于机器和用户固定的办公环境。存放在网络目录服务器中o 将用户的私钥集中存放在特殊的服务器中,用户可以通过一定的安全协议使用口令来获得自己的私钥和修改自己的私钥和口令。这种方式称为私钥存储服务(Private Key Storage Service,PKSS)。在DCE-PKSS等协议中就定义了这样的服务。这时用户私钥的安全程度取于用户口令的好坏和PKSS服务器的安全。o 采用专有的私钥存储服务器的优点在于由专职系统管理人员和专门的服务器对用户私钥进行集中存储和管理,用户必须通过相应的安全协议证实自己的身份后才能获得加密后的
34、私钥,用户可以不限定在固定的某台机器上,减轻了第一种方法中密钥分散管理带来的不便和负担。但是由于在安全协议的设计中都假定用户选择的口令都是随机的,忽略了用户倾向于选择有一定意义的词和字母数字组合作为口令,所以也会遭到口令猜测攻击。智能卡存储o 智能卡同普通信用卡的大小差不多,并提供了抗修改能力,用于保护其中的用户证书和私钥。利用智能卡来存放用户的私钥比使用口令方式有更高的安全性。智能卡提供了让非授权人更难获取网络存取权限能力。采用智能卡进行认证时,需要特殊的硬件读卡,但是目前能够提供高安全保护的自带加密算法的加密挑战/响应卡和加密计算器成本还比较高,难以全面推广。USB Key存储o USB
35、Key,又称为电子钥匙,外形与普通的U盘类似。目前作为数字签名载体的智能卡以及读卡器逐渐开始被USB Key(又称为电子钥匙)产品所替代,后者除能实现智能卡的所有功能之外,还利用USB技术将智能卡、读卡器的功能集于一身。USB Key 内置CPU,可使得用户的私钥不出卡,所有的运算均在硬件内完成,从根本上保证了用户的私钥的安全,杜绝了用户密钥被截取的可能性。USB Key非常方便随身携带,并且密钥和证书不可导出,USB Key的硬件不可复制,更显安全可靠。由于使用计算机的USB端口,不需要专门的读取设备,不仅如此,USB Key的热插拔、易携带的特点也成为其迅速占领市场的重要因素。5.4.5
36、密钥更换和密钥吊销(1)密钥更换o密钥的使用是有寿命的,一旦密钥有效期到,必须消除原密钥存储区,或者使用随机产生的噪声重写。为了保证加密设备能连续工作,也可以在新密钥生成后,旧密钥还可以保持一段时间,以防止密钥更换期间不能解密的死锁。密钥的更换,可以采用批密钥的方式,即一次注入多个密钥,在更换时可以按照一个密钥生效,另一个密钥废除的形式进行。替代的次序可以采用密钥的序号,如果批密钥的生成与废除是顺序的,则序数低于正在使用的密钥的所有密钥都已过期,相应的存储区清零。(2)密钥吊销o密钥的寿命不是无限的。由于会话密钥只能存在于一个会话中,所以在会话结束时,这个密钥会被删除,不需要吊销它。一些密钥可
37、能需要在给定的时间段内有效,一般来说,公钥对的有效期为一年到两年。有效的公钥会给出失效日期,在这个日期之后,读到该证书的系统不会认为它是有效的,因此不需要吊销已经失效的证书。不过,此类密钥也可能丢失或者被攻击。在发生这种情况时,密钥的拥有者必须将密钥不再有效并且不应该继续使用这一情况通知其他用户。对于私钥加密系统,如果密钥被攻击,那么启用新的密钥。o对于公钥的情况,如果密钥对被攻击或吊销,则没有明显的途径可以通知公钥的潜在使用者这个公公钥不再有效。在某些情况下,公钥被发布给公钥服务器。那些希望与密钥的拥有者通信的他们都可以连接到该服务器,以获得有效的公钥。通信他方必须定期访问密钥服务器,以查看
38、密钥是否被吊销,密钥的拥有者必须向所有潜在的密钥服务器发送吊销消息。密钥服务器还必须在原始证书有效期到期之前保留这条吊销信息。5.5 密钥产生技术密钥产生技术 本节提示o 5.5.1 密钥产生的制约条件o 5.5.2 如何产生密钥o 5.5.3 针对不同密钥类型的产生方法5.5.1 密钥产生的制约条件1.通信的双方密钥选择o 保密通信的双方间是否能选择合适的密钥,对算法的安全性有致命影响。一个不合适的密钥有可能很容易被对方破解,这种密钥被称为弱密钥。导致弱密钥的产生有以下两种情形:n(1)密钥产生设置的缺陷和密钥空间的减少;n(2)人为选择的弱密钥。密钥产生设置的缺陷和密钥空间的减少o 对于一
39、个64位比特串的密钥,可以有1019种可能的密钥,然而实际上所对应的密钥空间中的密钥值比预计的要少的多。人为选择的弱密钥o 用户通常选择易于记忆的密钥,但这给密码破译提供了便利。o 防止产生弱密钥的最佳方案是产生随机密钥,当然,这是不利于记忆的,可以将随机密钥存储在智能卡中。在密钥产生的过程中,需要的是真正5.5.1 密钥产生的制约条件的随机数。o 密钥产生的制约条件有3个:随机性、密钥强度和密钥空间。密钥产生的制约条件2.密钥的尺度 o 针对密钥的产生还要考虑密钥的尺度要求。密钥尺度,也就是密钥的长度,对密钥的强度有直接的影响。密钥的尺度涉及到两个问题:多长的密钥才适合保密通信的要求;密钥系
40、统对于对称/非对称密钥长度的匹配问题。n(1)密钥尺度的要求与信息的安全需要环境有关。n(2)对称/非对称密钥长度的匹配。诚然,使用对称密钥的算法在实现上比公开密钥的算法要快很多,而且密钥长度也要短。但是,公钥技术具有更大的实际使用效果。不同信息安全需要对于对称/非对称密钥尺度的要求 对称/非对称密钥长度的匹配无论是使用对称密钥算法还是公开密钥算法设计的系统,都应该对密钥长度有具体的要求,以防止穷举等攻击的破译。穷举攻击是指用所有可能的密钥空间中的密钥值破译加密信息。因此,表明同时使用128位的对称密钥算法和384位的公开密钥算法是没有什么安全意义的,如果希望使用的对称算法的密钥长度是128位
41、,那么使用的公开算法的密钥长度至少应为2304位。5.5.2 如何产生密钥o 现代通信技术中需要产生大量的密钥分配给系统中的各个节点或实体,依靠人工产生密钥的方式不能适应现在对密钥大量需求的现状,因此实现密钥产生的自动化,不仅可以减轻人为制造密钥的工作负担,而且可以消除人为差错引起的泄密。o 本节主要介绍:n 1.密钥产生的硬件技术n 2.密钥产生的软件技术1、密钥产生的硬件技术噪声源技术是密钥产生的常用方法。因为噪声源具有产生二进制的随机序列或与之对应的随机数的功能,因此成为密钥产生设备的核心部件。噪声源还有一个功能是在物理层加密的环境下进行信息填充,使网络具有防止流量分析的功能。当采用序列
42、密码时,也有防止乱数空发的功能。噪声源还被用于某些身份验证技术中,如对等实体鉴别中。为了防止口令被窃取,常常使用随机应答技术,这时的提问与应答是由噪声源控制的。因此噪声源在信息的安全传输和保密中有着广泛的应用。噪声源输出随机数序列(1)伪随机序列o伪随机序列也称作伪码,具有近似随机序列(噪声)的性质,而又能按一定规律(周期)产生和复制的序列。因为真正的随机序列是只能产生而不能复制的,所以称其是“伪”的随机序列。一般用数学方法和少量的种子密钥来产生。伪随机序列一般都有良好的、能受理论检验的随机统计特性,但当序列的长度超过了唯一解的距离时,就成了一个可预测的序列。常用的伪随机序列有m序列、M序列和
43、R-S序列。(2)物理随机序列o物理随机序列是用热噪声等客观方法产生的随机序列。实际的物理噪声往往要受到温度、电源、电路特性等因素的限制,其统计特性常带有一定的偏向性,因此也不能算是真正的随机序列。(3)准随机序列o用数学方法和物理方法相结合产生的随机序列。这种随机序列可以克服前两者的缺点,具有很好的随机性。物理噪声源(1)基于力学噪声源的密钥产生技术o通常利用硬币、骰子等抛散落地的随机性产生密钥。例如,用1表示硬币的正面,用0表示硬币的反面,选取一定数量随机地抛撒并纪录其落地后的状态,便产生出二进制的密钥。这种方法效率低,而且随机性较差。(2)基于电子学噪声源的密钥产生技术o这种方法利用电子
44、方法对噪声器件(如真空管、稳压二极管等)的噪声进行放大、整形处理后产生密钥随机序列。根据噪声迭代的原理将电子器件的内部噪声放大,形成频率随机变化的信号,在外界采样信号CLK的控制下,对此信号进行采样锁存,然后输出信号为0、1随机的数字序列。(3)基于混沌理论的密钥产生技术o在混沌现象中,只要初始条件稍有不同,其结果就大相径庭,难以预测,而且在有些情况下,反映这类现象的数学模型又是十分简单,甚至一维非线性迭代函数就能显示出这种混沌特性。因此利用混沌理论的方法,不仅可以产生噪声,而且噪声序列的随机性好,产生效率高。2、密钥产生的软件技术 o X9.17(X9.17-1985金融机构密钥管理标准,由
45、ANSI美国国家标准定义)标准定义了一种产生密钥的方法。o X9.17标准产生密钥的算法是三重DES,算法的目的并不是产生容易记忆的密钥,而是在系统中产生一个会话密钥或是伪随机数。其过程如下:o 假设表示用密钥对比特串进行的三重DES加密,是为密钥发生器保留的一个特殊密钥。是一个秘密的64位种子,是一个时间标记。产生的随机密钥可以通过下面的两个算式来计算:o 对于128位和192位密钥,可以通过上法生成几个64位的密钥后,串接起来就可以。)(iikkiVTEER)(1iikkiRTEEVANSI X9.17 密钥产生的过程 5.5.3 针对不同密钥类型的产生方法 o(1)主机主密钥的产生o(2
46、)加密密钥的产生o(3)会话密钥的产生主机主密钥的产生o 这类密钥通常要用诸如掷硬币、骰子,从随机数表中选数等随机方式产生,以保证密钥的随机性,避免可预测性。而任何机器和算法所产生的密钥都有被预测的危险。主机主密钥是控制产生其他加密密钥的密钥,而且长时间保持不变,因此它的安全性是至关重要的。加密密钥的产生o 加密密钥可以由机器自动产生,也可以由密钥操作员选定。密钥加密密钥构成的密钥表存储在主机中的辅助存储器中,只有密钥产生器才能对此表进行增加、修改、删除、和更换密钥,其副本则以秘密方式送给相应的终端或主机。一个由n个终端用户的通信网,若要求任一对用户之间彼此能进行保密通信,则需要个密钥加密密钥
47、。当n较大时,难免有一个或数个被敌手掌握。因此密钥产生算法应当能够保证其他用户的密钥加密密钥仍有足够的安全性。可用随机比特产生器(如噪声二极管振荡器等)或伪随机数产生器生成这类密钥,也可用主密钥控制下的某种算法来产生。会话密钥的产生o 会话密钥可在密钥加密密钥作用下通过某种加密算法动态地产生,如用初始密钥控制一非线性移存器或用密钥加密密钥控制AES算法产生。初始密钥可用产生密钥加密密钥或主机主密钥的方法生成。5.6 密钥的分散管理与托管密钥的分散管理与托管 本节提示:o 5.6.1 密钥分散技术o 5.6.2 密钥的分散、分配和分发o 5.6.3密钥的托管技术o 5.6.4部分密钥托管技术5.
48、6.1 密钥分散技术o 在密钥数据库中,系统的安全依赖于唯一的主密钥。这样,一旦主密钥被偶然或蓄意泄露,整个系统就容易受到攻击。如果主密钥被丢失或损坏,则系统的全部信息便不可访问。因此就提出了密钥的分散管理问题。o 密钥的分散管理就是把主密钥拷贝给多个可靠的用户保管,而且可以使每个持密钥者具有不同的权力。其中权力大的用户可以持有几个密钥,权力小的用户只持有一个密钥。也就是说密钥分散把主密钥信息进行分割,不同的密钥持有者掌握其相应权限的主密钥信息。密钥的分散管理 K/k k1/用户 1 k2/用户 2 kn/用户 n 密钥分散技术o 在这个密钥模型下,网络中所有节点都拥有公钥 ,把私有密钥 分配
49、给 个不同的子系统。这样,不同子系统的私有密钥分别是 。即各个子系统分别掌握私钥的一部分信息,而要进行会话的真实密钥是所有这些子系统所掌握的不同密钥的组合,但不是简单的合并。这样做的好处是,攻击者只有将各个子系统全部破解,才能得到完整的密钥。但是,这种机制也有很明显的缺陷,就是节点多的话,要得到所有 个子系统的私有密钥才能完成认证,这会导致系统效率不高。采用存取门限机制可以解决认证过程复杂,低效的问题。一般来说,门限子系统的个数不应该少于 个子系统的一半,这样才能保证系统的安全。假设实际密钥 ,通过3个服务器进行分散管理,而设定的门限值是2,即只要能获得两个服务器所掌握的密钥信息,就可以获得实
50、际进行通信的密钥 。Kknnkk,1nnkk提高密钥管理的安全性o 通过这种门限存取机制可以大大提高系统的运行效率,使得这种机制的实现具有了可行性。密钥管理的复杂性主要体现在密钥的分配和存储,对于不是主密钥的其他密钥,也可以分散存储。为了提高密钥管理的安全性,采用如下两种措施:n 尽量减少在网络系统中所使用的密钥的个数;n 采用(k,w)门陷体制增强主密钥的保密强度,即将密钥E分成w个片段,密钥由k(kw)个密钥片段产生,小于或等于k-1个片段都不能正确产生E,这样小于或等于k-1个密钥片段的泄露不会威胁到E的安全性。网络管理结构 目前有3种基本的网络管理结构:集中式、层次式和分布式结构,可以