《计算机网络安全技术第6章.ppt》由会员分享,可在线阅读,更多相关《计算机网络安全技术第6章.ppt(79页珍藏版)》请在三一办公上搜索。
1、第六章 密钥管理,加密技术一般地采用加密算法来实现,而加密算法必须有密钥来控制。过去的加密设计人员总是对算法的保密来增加密码的强度,现在的加密系统算法是公开的,明文的保密主要依赖于密钥的保密。在计算机网络环境中,由于用户和节点很多,需要大量的密钥。信息系统的安全性取决于密钥的保护。密钥技术的核心是利用加密手段对大量数据加以保护,因而可归结为对若干核心参量密钥的保护。因此密钥的管理成为加密系统的核心的首要问题。,6.1 密钥管理的问题,密钥的管理是一项复杂细致的长期工作,既包含了一系列的技术问题,又包含了行政管理人员的素质问题。在密钥的产生、分配、注入、存储、更换、使用和管理等一系列环节中,必须
2、注意到每一个细小的环节,否则就会造成意想不到的损失。每个具体系统的密钥管理必须与具体的使用环境和保密要求相结合,万能的密钥管理体制是不存在的。实践表明,从密钥管理渠道窃取密钥比单纯从破译途径窃取密钥要容易得多,代价要小得多。,评价密钥管理系统性能好坏的标准,一个好的密钥管理系统应该尽量不依赖于人的因素,这不仅是为了提高密钥管理的自动化水平,根本的目的还是为了提高系统的安全程度。为此,有以下具体要求:1)密钥难以被非法窃取;2)在一定条件下,窃取了密钥也没有用;3)密钥的分配和更换过程在用户看来是透明的,用户不一定亲自掌握密钥。因此,常常用以上几点要求来评价一个密钥管理系统性能好坏的标准。,一个
3、系统设计时,首先要明确解决什么问题,有哪些因素要考虑,这是设计好一个系统的前提。一般来说,以下几个方面的因素必须考虑:系统对保密强度的要求;系统中哪些地方需要密钥,这些密钥采用什么方式预置或装入保密组件;多长时间要更换一次密钥,即一个密钥规定使用的限期是多少;密钥在什么地方产生;系统的安全性与用户的承受能力。,密钥的种类和作用,数据加密密钥 基本密钥 主密钥 其他密钥(1)终端密钥:(2)主机密钥,数据加密密钥,在一个数据通信网中,假定一个主体(可以是应用程序或终端用户等)要通过网络与一个客体(也是一个应用程序或终端用户)通信,为了保证数据的安全性,主体就需要用一个特定的加密算法和密钥来对数据
4、进行加密,而客体也必须采用相同的算法和密钥对已加密的数据进行解密。对数据加密的这种密钥一般定义为数据加密密钥,也称为初级密钥。当初级密钥直接用于通信保密时,称为初级通信密钥。当初级密钥直接用于文件保密时,称为初级文件密钥。当初级通信密钥直接用于通信过程的会话数据保密时,称为会话密钥。数据加密密钥可以由系统实体请求通过硬件或软件自动生成,也可以由用户自己提供。,基本密钥,为了提高系统的保密性,通常要求对数据加密的密钥只能在一次会话中有效,通话结束,数据加密密钥消失,这种密钥可以由主体通过乱码随机产生器产生。这就大大提高了保密性,但也存在一个问题,那就是主体随机产生的这个密钥(数据加密密钥)必须让
5、客体知道,否则客体就无法得到明文。让客体知道这个密钥的方法有两种:一种是通过秘密信道或信使送到客体手中,这种方法显然不适合现代电子通信;另一种方法(也是目前比较通用的方法)是通过通信网发到客体。由于通信网不能用明文的形式发送,因此就需要使用另一种密钥对其加密。这种密钥就叫做基本密钥,也叫二级密钥,它用于加密保护数据的密钥。当基本密钥直接用于保护初级通信密钥时,称为二级通信密钥;当二级密钥直接用于保护初级文件密钥时,称为二级文件密钥。基本密钥应由安装人员请求系统自动产生,也可由密钥安装人员提供。,主密钥,在一个大的网络系统中可能有上千个节点或端用户。若要实现全网开通,每个节点就需要与其他节点或端
6、用户通信的基本密钥。这些基本密钥要形成一张表,保存在节点(或端节点的保密装置)内。若以明文的形式保存,有可能被窃取。为了保证它的安全,通常还需要一个密钥对基本密钥表进行加密保护。这个密钥就被称为主密钥,它是密钥管理方案中级别最高的密钥,用于对存储在主机系统中的数据加密密钥和基本密钥提供保护。,其他密钥,(1)终端密钥:每一终端配置唯一的一个二级通信密钥,并且由密钥安装人员装入终端的密码装置。(2)主机密钥主机要进行各种不同的密码操作,因此在主机中同时配置主密钥和基本密钥。主机还要产生和存储数据加密密钥和基本密钥。,密钥的生成,密钥的产生目前主要是利用噪声源技术。噪声源的功能是产生二进制的随机序
7、列或与之相对应的随机数,它是密钥产生设备的核心部件。噪声源的另一个用途是物理层加密环境下进行信息扩充,使网络具有防止流量分析的功能。当采用序列编码时,也有防止乱数空发的功能。噪声源还被用于某些身份验证技术中,如对等实体鉴别中。为了防止口令被窃取,常常使用随机应答技术,这时的提问和应答是由噪声源控制的。噪声源产生随机序列,按照产生的方法可分为:,(1)伪随机序列:用数学方法和少量的种子密钥产生的周期很长的随机序列。伪随机序列一般都有良好的,能受理论检验的随机统计特性,但当序列的长度超过了唯一解距离时,就成了一个可预测的序列。(2)物理随机序列:用热噪声等客观方法产生的随机序列。实际的物理噪声往往
8、要受到温度、电源、电路特性等因素的限制,其统计特性常常带有一定的偏向性。(3)准随机序列:用数学的方法和物理的方法相结合产生的随机序列。准随机序列可以克服前两者的缺点。,物理噪声源基本上有三类:基于力学的噪声源技术、基于电子学的噪声源技术、基于混沌理论的噪声源技术。(1)基于力学噪声源的密钥产生技术通常利用硬币或骰子抛撒落地的随机性产生密钥。(2)基于电子学噪声源的密钥产生技术这种方法利用电子学方法对噪声器件(如真空管、稳压二极管等)的噪声进行放大、整形后产生出密钥随机序列。(3)基于混沌理论的密钥产生技术混沌理论是一门新学科。利用混沌理论的方法,不仅可以产生噪声,而且噪声序列的随机性好,产生
9、效率高。,密钥的保护,1密钥的分配 2密钥的注入 3密钥的存储 4 密钥的更换 5保密装置,1密钥的分配,密钥的分配一般要解决两个问题:一是引进自动分配密钥机制,以提高系统的效率;二是尽可能减少系统中驻留的密钥量。密钥分配是密钥管理系统最为复杂的问题,根据不同的用户要求和网络系统的大小,有不同的解决方法。,过去密钥的分配主要是采用人工分配,今后人工分配方法也不会完全废除,特别是保密要求很高的部门。分配高级密钥采用人工分配是可取的,只要密钥分配人员是忠诚的,而且实施计划是周密的,则人工分配密钥时安全的。随着计算机等高技术措施引入人工分配密钥,人工分配密钥的安全将得到加强。然而,人工分配密钥却不适
10、应现代计算机网络。利用计算机网络的数据处理和数据传输能力实现密钥分配自动化,无疑有利于密钥的安全,反过来又提高了计算机网络的安全。,计算机网络的密钥分配方法有:,(1)只用会话密钥在一个较小的网络中,一种最简单的方法是只是用一个密钥(即会话密钥)。有一专门机构生成密钥后,将其发到各端用户,保存在保密装置内。在通信双方通信时,就直接使用这个会话密钥对信息加密。如果在一个网中只使用这一种密钥,在密钥更换时就必须在同一时间,在网内的所有节点(或终端)上进行。密钥的这种设备管理起来比较简单,但因为在某一段时间内对网上传输的所有数据都采用同一密钥加密,故保密性不好。,(2)采用会话和基本密钥为了提高保密
11、性,可使用两种密钥会话密钥和基本密钥。对于这种方法,进行数据传输的过程是:主体在发送数据之前首先产生会话密钥,用基本密钥对其加密后,通过网络发送到客体;客体收到后用基本密钥对其解密,双方就可以进行通信了;会话结束,会话密钥消失。由于数据加密的密钥只在一次会话内有效,会话结束,会话密钥就消失。下次会话时,在产生新的会话密钥,因此大大提高了系统的安全性。为了防止会话密钥和中间一连串加密结果被非法破译,加密方法和密钥必须保存在一个定义为保密装置的保护区中。基本密钥必须以秘密信道的方式传送,由专人注入保密装置,不能以明文形式存在于保密装置之外。,(3)采用非对称密钥密码体制的密钥分配非对称密钥密码体制
12、不仅可以对数据加密,实现数字签名,也可用于对密钥的分配。采用非对称密钥密码体制,每个用户都需要有一对密钥,这一对密钥分别表示为DK和EK。DK用于解密(也称为秘密密钥),这个密钥只有该用户自己知道;EK用于加密(也称为公开密钥),全网络互通,用户都知道。如果用户A想与用户D通信,则用户A可用用户D的公开密钥对会话密钥进行加密,发送到用户D;用户D用自己保存的密钥解密,就可得到需要的会话密钥。其他用户虽然也知道用户D的公开密钥,但不知道相应的秘密密钥,它就得不到相应的会话密钥。,2密钥的注入,密钥的注入通常是采用人工方式。在可能的情况下,重要密钥可由多人、分彼此分开完成注入,并且注入的内容应不能
13、被显示出来。为了掌握密钥的注入过程,所有密钥应按编号进行管理。密钥常用的注入方法有:键盘输入、软盘输入、专用密钥注入设备(即密钥枪)输入。除了正在进行加密操作的情况之外,密钥应当以加密保护的形式存储。密钥的注入过程应当有一个封闭的环境,不存在可能被窃听装置接受的电磁泄漏或其他辐射,所有接近注入的人员应该是绝对可靠的。,采用密钥枪或密钥软盘与键盘输入的口令相结合,只有在输入了合法的加密操作口令后,才能激活密钥枪或软盘里的密钥信息。因此,应建立一定的接口规约。在密钥注入完成后,不允许存在任何可能导出密钥的残留信息,比如应将内存中使用过的存储区清零。当将密钥注入设备用于远程传递密钥时,注入设备本身应
14、设计成像加密设备那样的封闭式里逻辑单元。密钥注入后,还要检验其正确性。,3密钥的存储,在密钥注入后,所有存储在加密设备里的密钥平时都应以加密的形式存放,而对这些密钥的操作口令应该由操作人员掌握。这样,即使装有密钥的加密设备被破译者拿到,也可以保证密钥系统的安全。加密设备应有一定的物理保护措施。一部分最重要的密钥信息应采用掉电保护措施,使得在任何情况下,只要拆开加密设备,这部分密钥就会自动丢掉。如果采用软件加密的形式,应有一定的软件保护措施。重要的加密设备应有紧急情况下自动消除密钥的功能。在可能的情况下,应有对加密设备进行非法使用的审计,把非法口令输入等事件的发生时间记录下来。高级专用加密设备应
15、做到:无论是通过直观的方法还是自动(电子、X射线、电子显微镜等)方法都不能从密码设备中读出信息。对当前使用的密钥应有密钥合法性验证措施,以防止被篡改。,4 密钥的更换,密钥的使用时有寿命的,一旦密钥的有效期到,就必须消除原密钥存储区,或者用随机产生的噪声重写。为了保证加密设备能连续工作,也可以在新密钥生效后,旧密钥还可保持一段时间,以防止在密钥更换期间不能解密的死锁。密钥的更换,可以采用批密钥的方式,即一次性注入多个密钥,在更换时可按照一个密钥生效,另一个密钥废除的形式进行。替代的次序可采用密钥的序号,如果批密钥的生效和废除是顺序的,则序数低于正在使用的密钥的所有密钥都已过期,相应的存储区都应
16、清零。,5保密装置,密钥变换和数据加密的基本操作都用一个保密装置来实现的,它是一种专用的、具有很高安全性和可靠性的数据保护工具。保密装置可用硬件和软件实现,用硬件实现更有利于保密和提高效率。目前国外都采用微处理器和软件相结合的技术来实现。硬件实现加密算法,软件实现控制和检测功能,其硬件组成如图6.2所示,65 网络系统的密钥管理方法,在加密系统中,算法是很重要的,但一般情况下算法是公开的,秘密全部寓于密钥之中,所以密钥的管理更为重要,而且面向网络的密钥管理尤为重要。如前所述,密钥的传统管理方法是采用密文传送的通信方法以外的安全通信手段将密钥传送。下面介绍几种常用的密钥管理方法。,Diffie-
17、Hellman密钥管理方法,DH方法是1976年Diffie和Hellman提出的Diffie-Hellman密钥交换方法。选择大素数q和生成元a(1aq),其中q和a是公开的,下面以通信双方A和B为例,介绍DH方法的思想。A和B分别选择任意的数Xa和Xb作为自己的秘密信息,首先计算公开的信息Ya和Yb:,接着A和B相互地给对方发送Ya,Yb,然后计算共有密钥。,由A计算,由B计算和Kab相同的值Kba:,A(或B)秘密地拥有Xa(或Xb),并拥有通信对方的公开信息Yb(或Ya),就可以计算Kab(或Kba)。Kab(或Kba)的安全性要得到了确保。为了加深理解上面的原理,下面给出DH法的一个
18、例子。假设前面公式中的基本值a和q赋值为a=5,q=563,设A的秘密信息为Xa=9,设B 的秘密信息为Xb=14。计算A和B的公开信息分别为Ya和Yb:,=59mod 563=78=514mod563=534Xa和Xb是秘密信息,Ya和Yb是公开信息。A和B使用Xa、Xb、Ya、Yb可以计算共有密钥:,=5349 mod 563=117=7814 mod 563=117在这里,A和B的共有密钥是117,就可以进行加密通信了。,表6.1 使用Diffie-Hellman密钥管理方法实现加密的过程 发信者A 受信者B 前期准备 秘密信息Xa 秘密信息Xb 公开信息Ya=公开信息事先通信 取得B
19、的公开信息Yb 取得A的公开信息Ya共有密钥生成 计算Kab=计算Kba=会话钥生成 由随机数生成器生成会话钥数据信息加密 用会话钥加密明文信息会话钥被加密 用Kab将会话钥加密密文送信 数据密文和加密后的会话钥 接收从A发来的数据密文 一起送给B 和加密后的会话钥解密会话钥 用Kba将会话钥密文解密获得 会话密钥,数据信息解密 用会话钥将数据密文解密获 得数据明文,基于公开钥加密体制的密钥管理方法,1)需要的密钥对需要的密钥对是DH方法的两倍。受信者B的秘密钥和公开钥分别为Kh和Kq,其中秘密钥Kh只有受信者B拥有,公开钥Kq是公开的。对于公开钥加密方式,KhKq。A从B一方得到公开钥,处理
20、过程如表6.2和图6.4所示。使用Kq对会话钥明文Kc进行加密(E变换)形成密文Ks。使用Kh对Ks解密(D 变换)形成会话钥明文Kc,过程表示如下:Ks=E(Kq,Kc)Kc=D(Kh,Ks)用公开钥对会话钥进行加密,用会话钥对数据加密,两部分密文内容一起送给B方。B方使用自己的秘密钥将密文解密,已获得会话钥明文,用会话钥将数据密文解密,获得数据明文信息。,表6.2 基于公开钥加密体制的密钥管理方法,发信者A 受信者B 密钥对生成 生成秘密钥Kh,公开钥Kq事先通信 取得B 的公开信息Kq 会话钥生成 由随机数生成器生成会话钥Kc数据信息加密 用会话钥Kc加密明文信息会话钥被加密 用Kq将会
21、话钥Kc加密成Ks Ks=E(Kq,Kc)密文送信 数据密文和加密后的会话钥Ks一起 接收从A发来的数据密,送给B 和加密后的会话钥Ks,用Kh将Ks解密获得会话钥明,文Kc,数据信息解密 用会话钥Kc将数据密文解密,获得数据明文,2)伪造篡改问题 使用公开钥加密方式的密钥管理问题之一,就是伪造篡改问题。使用公开钥进行密钥管理的场合,从对方直接取得受信者的公开钥,密钥服务器是必需的,这时,产生怎样的疑问呢?取得的公开钥是自己通信对方的公开钥吗?第三者(盗听者)会不会篡改呢?并且,接受密文时,密文是谁生成发出的?送信者是谁?受信者是谁?这就是伪造篡改问题。解决这一问题的手段就是向系统中加入认证证
22、书CA(certification authority)机制。送信者取得受信者公开钥时,公开钥具有认证证书作的签名。并且,送信者送信时也要签名。就可以防止伪造篡改问题,而认证证书的伪造篡改问题怎样防止呢?这可以采用层次性认证证书机制来解决。关于认证证书CA机制稍后讲述。,公开钥,会话钥被解密,会话钥,会话钥,数据加密,数据解密,会话钥被加密,秘密钥,随机数 生成器,明文,密文,会话钥密文,明文,图6.4 基于公开钥加密体制的密钥交换,基于KPS的密钥管理方法,1.基本原理给出系统参与者的公开的认证子ID,向系统中心准备随机构成的秘密数据G。把发信者A的认证子定义为IDa时,计算Xa=GIDa。
23、把这个计算结果Xa称为A的秘密算法。把接受者B的认证子定义为IDb,计算Xb=GIDb。把这个计算结果Xb称为B的秘密算法。A,B双方通信时,把各自的认证子传递给对方,由对方的认证子及自己的秘密算法生成密钥,A方的共有密钥为:Kab=XaIDb=(IDaG)IDb=IDaGIDbB方的共有密钥为:Kba=XbIDa=(IDbG)IDa=IDbGIDa其中,IDbGIDa=IDaGIDb,也就是A和B有相同的共有密钥。这种方法叫做线性模式。,2.线性模式,1986年,松本努教授和今井秀树教授提出了一种线性模式。其主要原理介绍如下:首先把表示各用户的文字信息变成n比特的数据。对应单向函数h和密钥长
24、度k比特,定义单向函数g。在管理KPS的中心,准备随机的k个nn行列式:M1,M2,Mk个行列式元素的值必须是0或1,而且,各行列式必须关于对角线对称。这样的对称矩阵M1,M2,Mk相当于基本原理一节中的G。,例:假设n=4,k=3,管理中心的对称矩阵M1,M2,M3设定如下:从M1到M3构成了KPS方式的基本核心。A和B进行加密通信。首先两人将电子邮件地址的认证子向中心登录,将认证子用单向函数变成n个比特。A和B的认证子用单向函数变成n个比特后的结果表示为IDa,IDb:IDa=h(A)=(0101)IDb=h(B)=(0011)在登录中心里,首先从M1到M3与IDa作乘法运算,从而计算出到
25、。这种计算方法与一般行列式计算方法相同,相关的乘法运算时用异或原理。这里以A为例,=M1IDa=(1001)=M2IDa=(1010)=M3IDa=(0010),3.抗干扰模型,得到的结果 到 在基本原理上同秘密算法的Xa。将单向函数h和g及秘密算法(到)装入抗干扰模型,传给A方。抗干扰模型具有这样的特点:对模型内的信息很难进行不正当的读取或篡改。这个模型内的个人信息,A自己也看不见。对于B方,用同样的方法计算秘密算法Xb(到)时,得到=M1IDb=(0011)=M2IDb=(1110)=M3IDb=(1001),把这些装入抗干扰模型,传递给B。从A向B 通信的场合,A方要在抗干扰模型中进行下
26、面的工作。(1)把B的认证子输入给单向函数h,单向函数h对全部用户有相同的定义。所以得出IDb=(0011),(2)得到的B的结果(0011)和A的秘密信息的一个 相乘。此时加法运算规则是用异或原理IDb*=0*1+0*0+1*0+1*1=1(3)同理把IDb和、,做相乘计算。(4)把得到的结果按顺序进行排列,形成kab=(101)(5)借助单向函数g计算得到的kab是共有密钥。在B一方,把A的认证子通过单向函数的计算得到IDa=(1010)。然后同样的进行到与IDa的计算。IDa*=10+00+11+01=1IDa*=11+01+11+00=0IDa*=11+00+10+01=1所以kba=
27、(101),kab和kba是相等的,是共有密钥。,6.6分布式环境中公钥和单钥结合的密钥管 理体制,网络和分布式环境中,认证服务器星罗棋布,密钥量惊人,如何科学地管理、分配、存储密钥,方便地实现远域服务,是一个严峻的问题。下面介绍一种采用公钥和单钥密码体制相结合的方法来设计认证和密钥分配协议。域内的认证和密钥分配以单钥密码体制为基础,并采用随机数技术防止重放攻击,避免了时戳技术的局限性。域间的认证与密钥分配采用Diffie-Hellman密钥交换体制设计,有利于简化网络密钥管理。分层式公钥分配框架如下所述。,CA0,CA1,CA1,CA1,CA2,CA2,CA3,CA3,CA2,第0层,第1层
28、,第2层,第3层,认证服务器,认证服务器,用户,用户,图 6.6 分层式公钥分配架构,在分布式环境中,当用户要申请使用另一个区域的服务时,需要申请远域服务票据,这就需要两个区域的认证服务器AS之间安全的信息交换。若采用单钥体制,两个认证服务器之间需要共享一个秘密密钥,但是在分布式环境中,认证服务器星罗棋布,密钥的管理、分配和存储是一个严峻的问题。一般而言,公钥认证体制可较为方便地实现这种域间认证,同时可以简化网络密钥的管理。但是,公钥体制的安全性依赖于公钥的真实性,否则非常容易受到中间人攻击,这就需要在系统中引入公证机制,由可信赖的公证机构为用户和网络认证服务器签发公钥证件,以保证公钥的真实性
29、。对于大型的计算机分布式环境而言。采用单一的公证机构为网络中的所有用户和认证服务器签发公钥证件是很困难的,而且不便于网络的业务扩充。图6.6为基于树型公钥证件签发模式树型公钥分配架构的一种适合计算机分布式环境的、可在全球扩展的分层式公钥分配架构,它可以有效、合理地简化网络管理机制。,图6.6中第0层的CA0可以视为全球性的证件签发机构,第1层的CA1可以视为是国家级的证件签发机构,第2层的CA2代表省/州级的证件签发机构,而第3层的CA3则是本地区证件签发机构。实际上,CA的层数应根据网络的分布规模决定,可以少于四层。我们仅以图6.6中虚线箭头所指链路为例,给出各级CA签发的证件链样式。为了便
30、于描述,首先定义一些符号:PK(I),SK(I),(I=0,1,2,3),表示第I层CA的公钥和秘密钥。ID(l+1),(I=0,1,2),表示第I层CA为I+1层CA分配的身份代号。PKM,SKM,IDM,表示第4层持证者M(认证服务器或用户)的公钥,私钥和身份代号。C(l+1),(I=0,1,2),表示第I层CA为I+1层CA签发的证件。sign(X;Y),表示用密钥X对消息Y进行签名。h(X),表示对消息X的杂凑函数值。,(1)第0层的CA0负责向第1层的CA1分配密钥并签发公钥、证件:PK(0),C(1)。(2)第1层的CA1负责向第2层的CA2分配密钥并签发公钥、证件链:PK(0)P
31、K(1),C(1)C(2)。(3)第2层的CA2负责向第3层的本地证件机构CA3分配密钥并签发公钥、证件链:PK(0)PK(1)PK(2),C(1)C(2)C(3)。(4)位于最低层的CA3负责向它的服务区域内的认证服务器AS分配密钥并签发公钥、证件链:PK(0)PK(1)PK(2)PK(3),C(1)C(2)C(3)CAS。同时给所有入网用户分配密钥并签发公钥、证件链:PK(0)PK(1)PK(2)PK(3),C(1)C(2)C(3)Cu。所有证件的签发都是脱机(Off-line)的,即不包括在实时认证协议中。以C(1)为例说明证件样式:C(1)=P,N(1),lifetime,PK(1),
32、ID(1),sign(SK(0);h(P,N(1),ID(1),PK(1),lifetime),式中,P,是由CA0选择的一个大素数和GF(P)上的本原元(CA1,CA2和CA3不用另外选择),N(1)是CA0为CA1签发证件时产生的随机数,lifetime为证件有效期。这样每个认证服务器和用户都得到一个证件链,可以用一个简化的样式来表示:Cert-AS:CA0CA1,CA1CA2,CA2CA3,CA3AS,Cert-User:CA0CA1,CA1CA2,CA2CA3,CA3User,式中YX表示实体Y给实体X签发的证件。,1、认证和密钥分配协议下面的协议描述中,E(X;Y)表示采用X对消息Y
33、进行公钥加密,e(X;Y)表示采用X对消息Y进行单钥加密。1、初始登录协议中采用基于公钥体制的初始登录方式代替口令键入联机,并获得与AS共享的秘密认证钥。这种利用公钥体制验证身份、交换密钥的方法是目前计算机网络中最流行的做法,它能够有效地防止口令猜测攻击。设用户A已经向本服务区域的证件签发机构申请入网,并获得了证件链Cert-A。(1)认证服务器AS按一定时间间隔,向其域内用户公布其证件链和随机数RN1(每次公布消息时,RN1需要重新产生)。ASA:Cert-AS,RN1(2)用户A首先对AS证件链进行验证。验证通过后,产生随机数RN2,向AS发送询问消息。AAS:E(PKAS;Cert-A,
34、RN1,RN2,sign(SKA;h(RN1,RN2),(3)收到消息后,AS用私钥解密消息,验证Cert-A和签名的合法性。若均合法,存储RN2,向用户A回送应答信息。ASA:e(RN2;IDA,IDAS)(4)用户A收到消息,验证通过后,将RN2作为与AS共享的认证钥kA,AS=RN2。初始化登录中,用户和其域内的认证服务器所共同信赖的证件签发机构位于CA3层上,仅须采用CA3的公钥证件对CA3AS和CA3A进行验证。初始登录完成用户在认证服务器的注册。因无需键入口令,从而避免了口令的一切不安全性;每过一定时间重新登录,用户的认证密钥是暂时存储并经常更换的,一次泄漏不会造成太大的危害,从而
35、提高协议的可修复性,同时也解决了密钥存储、管理方面的问题。,2认证和密钥分配协议用户A完成初始登录后,可以和用户B进行通信(假定B已经在其域内的认证服务器ASB登录,并获得共享的认证密钥KB,AS)。1)域内认证(1)A首先向AS请求访问用户B。NA是表示消息新鲜性的随机数。AAS:DA,e(KA,AS;IDB,NA)(2)AS解密消息,根据B查询其所在的域,如果发现B在本域内,则按域内认证进行以后的操作。由于协议中避免使用时戳,为了防止重放攻击,必须增加AS与B之间的一次交互,使B能够向AS提供随机数,保证以后传递的消息的新鲜性。AS产生随机数NAS,并向B发出通知 ASB:e(KB,AS;
36、IDA,IDB,NAS)(3)B解密AS发来的消息后,产生随机数NB,和地址信息一起加密回送给AS。BAS:e(KB,AS;IDA,NAS+1,IDA,NB)(4)AS产生A,B的会话密钥sk,连同B的身份代号和地址信息用KA,AS加密送至A,给B的消息以票据的方式传给A。ASA:e(KA,AS;IDB,addressB,sk,NA),e(KB,AS;IDA,IDB,sk;NB),(5)A解密AS发来的消息得到会话密钥sk,验证NA正确性。验证通过后,A将AS传递的B的票据发送给B,并将自己的身份、地址信息以及随机数NA用sk加密同时发送给B。AB:e(KB,AS;IDA,IDB,sk,NB)
37、e(sk;IDA,addressA,NA)(6)B解密A发来的消息得到sk后,验证其有效性。验证通过后,再解密得到A的地址信息,然后B发送给A用sk加密的认证符,证明自己的身份。BA:e(sk;NA+1)A对认证符验证通过后,则可以采用sk作为与B进行保密通信的会话密钥。,2)域间认证(1)A首先向其域内的认证服务器ASh请求访问用户B。AASh:IDA,e(KA,AS;IDB,NA)(2)ASh解密消息,根据B查询其所在的域ASv,并产生随机数Nhv。计算。AShASv:(3)ASv选择随机数Nvh,计算:,。ASvASh:Svh,e(Kvh;Cert-ASv,sign(SKv;h(Shv,
38、Svh)(4)ASh对证件Cert-ASv和签名进行验证,验证通过后向ASv发送下面的消息。AShASv:e(Khv;Cert-ASh,sign(SKh;h(Shv,Svh),IDA,IDB,Nh),(5)ASv解密收到的消息后,对公钥证件Cert-ASh和签名进行验证。两个认证服务器对双方证件链的合法性的验证过程如下:在接收到对方的证件链后,首先比较、判断双方共同信赖的证件机构处于哪一层上。如果所共同信赖的CA位于CA3层上,仅须采用CA3的公钥对CA3ASh和CA3ASv进行验证;如果共同信赖的CA位于CA2层上,证件链CA2 CA3,CA3ASh和CA2CA3,CA3ASv将被验证。对于
39、其它情况可以类推,直到采用CA0的公钥对整个的证件链进行验证。验证通过后,ASv向B发出通知。ASvB:e(KB,AS;IDA,IDB,Nv)(6)B解密ASv发来的通知后,产生随机数NB,将地址信息和随机数加密回送给ASv。BASv:e(KB,AS;IDA,Nv+1,IDB,NB)(7)ASv解密消息后,产生A和B的会话密钥sk,连同B的身份代号和地址信息用Kvh加密送至ASh,给B的消息以票据的方式同时传送给ASh。ASvASh:e(Kvh;Nh+1,IDB,addressB,sk,e(KB,AS;IDA,IDB,NB,sk)(8)ASh解密消息,并验证消息的有效性。验证通过后,将会话密钥
40、sk,B的身份代号和地址信息以及给B的票据转发给A。AShA:e(KA,AS;IDA,IDB,addressB,sk,NA,e(KB,AS;IDA,IDB,NB,sk)。,(9)A解密ASh发来的消息得到会话密钥sk,验证NA的正确性。验证通过后,A将ASh传递的B的票据发送给B,并将自己的身份、地址信息以及随机数NA用sk加密同时发送给B。AB:e(KB,AS;IDA,IDB,NB,sk),e(sk;IDA,addressA,NA)(10)B解密A发来的消息得到sk后,再解密得到A的地址信息,然后B发送给A用sk加密的认证符,证明自己的身份。BA:e(sk;NA+1)A对认证符验证通过后,则
41、可以采用sk作为与B进行保密通信的密钥了。,3协议安全性分析在上面的协议中,用户和认证服务器的公钥证件链是由公证机构签发的。除了公证机构之外,任何人均不了解公证机构的私钥,因此公钥证件链不能被公证机构之外的任何人伪造或篡改。协议中,用单钥加密算法来证实认证密钥携带者的身份。攻击者不了解用户的秘密认证钥,不能假冒用户。公钥签名算法和单向函数用来证实域间认证服务器的身份,攻击者不知道认证服务器的私钥不能伪造签名,因而不能假冒。而且签名的使用还可以有效地防止中间人攻击。在协议中,NA,NB,NA,Nv,Nh,Nvh,Nhv均为随机数,每次执行方案都需要改变一次。即使攻击者截获了某些消息,也不能利用它
42、们来假冒协议中的任何实体进行欺诈,因此协议可以防止重放攻击。协议中,用户的身份和地址信息在域间认证时是加密后传输的,这样可以隐藏用户的真实身份,防止攻击者对用户的跟踪,实现匿名传输。,协议采用基于公钥技术的初始登录,有效地避免了口令猜测攻击;协议中采用随机数技术来保证消息的新鲜性,避免了使用时戳技术所要求的整个网络时钟同步的困难性。协议在域内认证时采用单钥体制,实现简单,速度快;域间认证时采用公钥体制,有利于整个网络和分布式环境的结构简化,并可以极大地消除域间的某些不安全因素,提高网络和分布式环境的整体安全性。在域内,协议的安全性依赖于认证服务器的安全性;而在域间认证与密钥交换的安全性则依赖于
43、公证机构的可信赖程度,如果公证机构是可信赖的,则协议就是安全的。,67 密钥托管随着保密通信在现代社会中的作用日益加强,保密通信设备已广泛地用于党政部门,企业内部,银行系统等,对这些部门的信息保密起了很好的作用。但这些部门内部人员以及一些犯罪分子也可利用该通信设备合法传送他们的犯罪信息,进行犯罪活动,如恐怖威胁,有组织贩毒,泄露企业内部秘密,危害国家及企业的利益,为了监视和防止这种犯罪活动,人们提出了密钥托管概念。自从美国政府公布托管加密标准(EESEscrowed Encryption Standard)以来,该领域受到了世界广泛的关注,并且有关该领域的研究也随之成为近几年密码学界的另一个热
44、点。密钥托管的前提是:用户不应具有在他们中间分配其它秘密密钥的能力,否则用户用这些密钥替代密钥托管机构能控制的密钥,从而绕过密钥托管,使密钥托管失效。密钥托管可以简单地理解为把通信双方每次的会话密钥交给合法的第三方,以便让合法的第三方利用得到的会话密钥解密双方通信的内容,从而来监视双方通信。一般而言合法的第三方为政府部门和法律执行部门等。密钥托管的一个最简单方法就是由一个(或多个)可信的政府代理机构为个人保管秘密密钥。这样经过适当的授权,政府就能检索存储的秘密密钥,进而对窃听到的通信进行解密。密钥托管方法主要有:使用单钥密码体制,公钥密码体制,单钥密码与公钥密码体制结合,秘密共享,公正密码体制
45、,下面将详细分析各种密钥托管方法成立的条件和特点。,1密钥托管方法本部分讨论的密钥托管方法使用的一些记号为:通信双方是发送者A,接受者B,密钥托管者G。下面这些方法主要讨论如何建立一个特定的数据恢复域(DRF),DRF中包括加密后的会话密钥以及其它一些特定的信息,G可从DRF中恢复出会话密钥,从而能恢复出双方通信的内容。1)单钥密码体制在使用单钥密码体制进行密钥托管时,必须要求把单钥密码体制放在一个具有防拆性功能的芯片中,该单钥密码体制使用的密钥称为超级密钥UK,UK及单钥密码体制仅为少数几个政府托管部门知道,甚至UK可由几个政府部门托管,其它任何人都不知道该单钥密码体制和UK。下面有两种形式
46、的密钥托管方法。(1)只具有密钥托管功能的密钥托管方法,在A与B开始通信时,他们通过密钥交换协议得到一个相同的会话密钥CK,在用CK加密双方通信的同时,CK与A和B的身份IDa,IDb及通信时间T连接在一起作为明文输入装有单钥密码体制的芯片中,在UK的控制下得到一个DRF,DRF和密文一起传送。如果G需要解密A和B通信的内容,只需利用一个装有相应单钥密码体制的芯片,在UK的作用下,解密DRF,从而得到通信双方的身份和通信时间及每次通信的会话密钥,因此能得到双方通信的内容。即用户形成的DRF为DRF=e(UK,CKIDaIDbT)G解密DRF从中分离出CKCKIDaIDbT=d(UK,DRF)去
47、掉IDa,IDb和T后,得到CK。e表示用单钥密码体制的加密算法,d表示用单钥密码体制的相应解密算法,表示连接。,(2)具有身份鉴别功能的密钥托管方法在每一个用户i开始进行通信前,他们都选择一个秘密密钥Ski,通过该芯片在UK的作用下得到一个公开密钥PKi。这里Ski和PKi仅为G用来鉴别用户i的身份,并不是一对用于加解密的密钥。在A与B开始通信时,他们通过密钥交换协议得到一个相同的会话密钥CK,在用CK加密双方通信的同时,CK与通信时间T连接在一起用SKa进行加密得到一个输出,该输出与A和B的身份IDa,IDb连接在一起作为明文输入到装有单钥密码的芯片中,在UK的控制下得到一个DRF,DRF
48、和密文一起传送。如果G需要解密A和B通信的内容,利用一个装有单钥密码体制的相应解密芯片,在UK的作用下得到A和B的身份及加密后的CK,G通过A的身份找到PKa,从而利用PKa得到SKa进而得到通信双方的会话密钥,因此能得到双方通信的内容。此外它还具有验证A的身份功能,因为只有A能构成该DRF。,即用户形成的DRF为DRF=eg(UK,eu(SKa,CKT)IDaIDb)G解密DRF,分离出CK为eu(SKa,CKT)IDaIDb=dg(UK,DRF)去掉IDa,IDb后,得到eu(SKa,CKT),因为dg(UK,PKa)=SKa,G能得到Ska,CKT=du(SKa,eu(SKa,CKT)去
49、掉T后得到CK。eg表示用芯片内单钥密码体制的加密算法,dg表示用芯片内单钥密码体制的相应解密算法。eu表示用任何一种单钥密码体制的加密算法,du表示用相应的单钥密码体制的解密算法,这个算法可公开,它也很容易构造,在此不再论述。,2)公钥密码体制使用公钥密码体制进行密钥托管时,我们讨论4种形式的密钥托管。(1)只具有密钥托管功能的密钥托管事先G选择一个秘密密钥SKg,公开相应的公开密钥PKg。在A与B进行通信时,A把双方约定的会话密钥CK,IDa,IDb及通信时间T用PKg进行加密后形成DRF,DRF与用CK加密后的通信内容一起传送,解密时G只需要利用SKg来从DRF中恢复出双方的会话密钥CK
50、。从而能解密双方的通信内容。即用户形成的DRF为DRF=E(PKg,CKIDaIDbT)G解密DRF从中分离出CK为CKIDaIDbT=D(SKg,DRF)去掉IDa,IDb和T后,得到CK。E表示公钥密码体制的加密算法,D表示公钥密码体制的相应解密算法。,(2)具有用户身份鉴别功能的密钥托管在每一个用户i开始进行通信前,他们都选择一个秘密密钥SKi,公开相应的公开密钥PKi,而且G也要选择一个秘密密钥SKg,公开相应的公开密钥PKg。在A与B进行通信时,A把双方约定的会话密钥CK及通信时间T先用自己的秘密密钥SKa进行加密后,与IDa,IDb连接在一起,然后用公开密钥PKg进行加密,形成DR