1密钥管理(一)《现代密码学》第九章2上章内容回顾数字签名的基本概念一般数字签名算法RSA数字签名技术数字签名标准基于离散对数的数字签名椭圆曲线数字签名3本章主要内容密钥管理简介密钥分配密钥协商PKI及数字证书简介秘密共享密钥托管4密钥管理简介现代密码体制要求密码算法是可以公开评估的,整个密码系统的安全性并不取决对密码算法的保密或者是对密码设备等保护,决定整个密码体制安全性的因素是密钥的保密性。也就是说,在考虑密码系统的安全性时,需要解决的核心问题是密钥管理问题.5密钥管理简介密钥管理就是在授权各方之间实现密钥关系的建立和维护的一整套技术和程序。在一定的安全策略指导下完成密钥从产生到最终销毁的整个过程,包括密钥的生成(分配和协商)、存储、托管、使用、备份/恢复、更新、撤销和销毁等.6密钥用户登记用户初始化密钥生成密钥更新密钥正常使用密钥撤销密钥注销与销毁密钥存档密钥备份新用户密钥使用期结束旧密钥到期密钥受到威胁提前中止密钥变化现有用户密钥状态使用前使用中使用后过期密钥安装密钥恢复密钥丢失/损坏恢复的密钥解决争议7密钥管理简介使用前状态:密钥不能用于正常的密码操作。使用状态:密钥是可用的,并处于正常使用中。使用后状态:密钥不再正常使用,但为了某种目的对其进行离线访问是可行。过期状态:密钥不再使用,所有的密钥记录已被删除。8密钥管理简介密钥生成密钥的大小与产生机制直接影响密码系统的安全,所以,对于一个密码体制,如何产生好的密钥是很关键的,密钥生成是密钥生命周期的基础阶段。1)密钥的生成一般首先通过密钥生成器借助于某种噪声源产生具有较好统计分析特性的序列,以保障生成密钥的随机性和不可预测性,然后再对这些序列进行各种随机性检验以确保其具有较好的密码特性。2)用户可以自己生成所需的密钥,也可以从可信中心或密钥管理中心申请,密钥长度要适中。3)不同的密码体制,其密钥的具体生成方法一般是不相同的,与相应的密码体制或标准相联系。9密钥管理简介密钥存储密钥的安全存储实际上是针对静态密钥的保护对静态密钥的保护常有两种方法:基于口令的软保护;文件形式或利用确定算法来生成密钥。基于硬件的物理保护;存入专门密码装置中(存储型、智能型)。10密钥管理简介密钥使用利用密钥进行正常的密码操作,如加密、解密、签名等,通常情况下,密钥在有效期之内都可以使用。应注意使用环境对密钥的安全性的影响。11密钥管理简介密钥备份:指密钥处于使用状态时的短期存储,为密钥的恢复提供密钥源,要求安全方式存储密钥,防止密钥泄露。密钥恢复:从备份或存档中获取密钥的过程称为密钥恢复。若密钥丧失但未被泄露,就可以用安全方式从密钥备份中恢复。12密钥管理简介密钥存档:当密钥不再正常时,需要对其进行存档,以便在某种情况下特别需要时(如解决争议)能够对其进行检索。存档是指对过了有效期的密钥进行长期的离线保存,密钥的后运行阶段工作.密钥托管:为政府机构提供了实施法律授权下的监听功能.13密钥管理简介密钥更新:在密钥有效期快结束时,如果需要继续使用该密钥,为保证密钥的安全性,该密钥需要由一个新的密钥来取代,这就是密钥更新。密钥更新可以通过再生密钥取代原有密钥的方式来实现。密钥撤销:若密钥丢失或在密钥过期之前,需要将它从正常使用的集合中删除。密钥销毁:对于不再需要使用的密钥,要将其所有复本销毁,而不能再出现。14密钥管理简介主密钥主密钥密钥加密密钥密钥加密密钥会话密钥会话密钥加密解密注入注入明文密文明文密钥的分层管理15密钥管理简介会话密钥(SessionKey)在一次通信或数据交换中,用户之间所使用的密钥,是由通信用户之间进行协商得到的。它一般是动态地、仅在需要进行会话数据加密时产生,并在使用完毕后立即进行清除掉的,也称为数据加密密钥(DataEncryptingKey)。密钥加密密钥(KeyEncryptingKey)一般是用来对传输的会话密钥进行加密时采用的密钥,又称为二级密钥(SecondaryKey)。密钥加密密钥所保护的对象是实际用来保护通信或文件数据的会话密钥。主密钥(MasterKey)对应于层次化密钥结构中的最高层次,它是对密钥加密密钥进行加密的密钥,主密钥应受到严格的保护。会话密钥更换得越频繁,系统的安全性就越高。因为敌手即使获得一个会话密钥,也只能获得很少的密文。但另一方面,会话密钥更换得太频繁,又将延迟用户之间的交换,同时还造成网络负担。所以在决定会话密钥的有效期时,应权衡矛盾的两个方面。16无密钥密钥分配K中间人攻击KaKaKabKab(Kab)a^{-1}Kb(Kb)b^{-1}DDH问题17单钥系统的密钥分配方法两个用户(主机、进程、应用程序)在用单钥密码体制进行保密通信时,首先必须有一个共享的秘密密钥。两个用户A和B获得共享密钥的方法:①如果A、B事先已有一密钥,则其中一方选取新密钥后,用已有的密钥加密新密钥并发送给另一方。②如果A和B与第三方C分别有一保密信道,则C为A、B选取密钥后,分别在两个保密信道上发送给A、B。密钥分配1)密钥分级管理事先有的密钥是密钥加密密钥,密钥加密密钥的分配需要其他机制和体系完成;2)直接用新分配的密钥Ks作为下次分配密钥的共享加密密钥,(攻击者获得一个密钥就可获取以后所有的密钥)C通常被称为KDC(密钥分配中心)18密钥分配(1)无中心的密钥分配两个用户A和B建立会话密钥需经过以下3步:①A向B发出建立会话密钥的请求和一个一次性随机数N1。②B用与A共享的主密钥MKm对应答的消息加密,并发送给A。应答的消息中有B选取的会话密钥、B的身份、f(N1)和另一个一次性随机数N2。③A使用新建立的会话密钥KS对f(N2)加密后返回给B。19密钥分配单钥系统的密钥分配20(2)有中心的密钥分配(简化Kerberos协议)①A向KDC发出会话密钥请求:Request||N1第1项是A和B的身份,第2项是这次业务的惟一识别符N1,称N1为一次性随机数,可以是时戳、计数器或随机数。密钥分配每次请求所用的N1都应不同,且为防止假冒,应使敌手对N1难以猜测21②KDC为A的请求发出应答EKA(Ks||Request||N1||EKB(Ks||IDA||N1))消息中包括A希望得到的两项内容:一次性会话密钥KS;A在①中发出的请求;随机数N1消息中还有B希望得到的两项内容:一次性会话密钥KS;A的身份(例如A的网络地址)IDA。密钥分配这两项由KB加密,将由A转发给B,以建立A、B之间的连接并用于向B证明A的身份。应答是由KA加密的消息,因此只有A才能成功地对这一消息解密。A能验证自己发出的请求在被KDC收到之前,是否被他人篡改。而且A还能根据一次性随机数相信自己收到的应答不是重放的过去的应答。22③A存储会话密钥,并向B转发EKB(KS‖IDA||N1).密钥分配B收到后,可得会话密钥KS,并从IDA可知另一方是A,而且还从EKB知道KS的确来自KDC转发的是由KB加密后的密文,所以转发过程不会被窃听23④B用会话密钥KS加密另一个随机数N2,并将加密结果EKs(N2)发送给A.⑤A以f(N2)作为对B的应答,其中f是对N2进行某种变换的函数,并将应答用会话密钥加密后EKs(f(N2))发送给B。密钥分配这两步可使B相信第③步收到的消息不是一个重放第③步就已完成密钥分配,第④、⑤两步结合第③步执行的是认证功能。24密钥分配25网络中如果用户数目非常多而且分布的地域非常广,一个KDC就无法承担为用户分配密钥的重任。问题的解决方法是使用多个KDC的分层结构。同一范围的用户在进行保密通信时,由本地KDC为他们分配密钥。两个不同范围的用户想获得共享密钥,则可通过各自的本地KDC,而两个本地KDC的沟通又需经过一个全局KDC。密钥分配26公钥系统的密钥分配(1)利用公钥加密算法的密钥分配①A把自己的身份IDA和公钥证书发送给B。②B用A的公开钥PKA加密随机选取的会话密钥Ks,发送EPKA(Ks)给A。只有A能解读②中的加密消息,所以B发来的消息中N1的存在可使A相信对方的确是B。密钥分配27密钥分配28密钥分配(2)具有保密性和认证性的密钥分配ABEPKB(IDA,N1)EPKA(Ks||SSKB(Ks)||N1||N2)EPKA(IDB,N1,N2)EPKB(N2)29密钥分配①A用B的公开钥加密A的身份IDA和一个一次性随机数N1后发往B,其中N1用于惟一地标识这一业务。②B用A的公开钥PKA加密A的一次性随机数N1和B新产生的一次性随机数N2后发往A。因为只有B能解读①中的加密,所以B发来的消息中N1的存在可使A相信对方的确是B。30密钥分配③A用B的公钥PKB对N2加密后返回给B,以使B相信对方的确是A。④A选一会话密钥KS,然后将M=EPKB[KS,SSKA[KS],N1,N2]发给B,其中用B的公开钥加密是为保证只有B能解读加密结果,用A的秘密钥加密是保证该加密结果只有A能发送。⑤B以DPKA[M]恢复会话密钥。31密钥协商密钥协商是保密通信双方(或更多方)通过公开信道的通信来共同形成秘密密钥的过程。一个密钥协商方案中,密钥的值是某个函数值,其输入量由两个成员(或更多方)提供。密钥协商的结果是:参与协商的双方(或更多方)都将得到相同的密钥,同时,所得到的密钥对于其他任何方都是不可知的。32密钥协商D-H密钥协商设p是一个大素数,gЄZp是模p本原元,p和g公开,所有用户均可获取,并可为所有用户所共有。⑴用户A随机选取一个大数a,0≤a≤p-2。计算Ka=ga(modp),并将结果传送给用户B。⑵用户B随机选取一个大数b,0≤b≤p-2。计算Kb=gb(modp),并将结果传送给用户A。⑶用户A计算K=(Kb)a(modp);用户B计算K=(Ka)b(modp)。用户A和用户B各自计算生成共同的会话密钥K。这是因为:K=(Kb)a=(gb)a=gab=(ga)b=(Ka)b。33密钥协商中间人攻击AMB142334密钥协商1.A选择,计算;发送给M(B);2.M对某个,计算;发送给B;3.B选择,计算;发送给M(A);4.M向A发送;5.A计算;B计算;1,1up(mod)ggpg1,1mp(mod)mmggpmg1,1ubpb(mod)bggpbgmg1(mod)mkgp2(mod)bmkgpA用gma加密秘密信息S发送给B,M截取消息并解密阅读S,随后用密钥gmb再加密S传送给B。反之亦然。35密钥协商简化站-站协议(STS协议)W.Diffie和P.C.VanOrschot等人于1992年提出DH密钥协商协议的改进协议----站对站协议(1)协议基于公钥基础设施,存在可信中心CA。设CA(A)为A的公钥证书,CA(B)为B的公钥证书(2)协议利用数字签名技术。设A的签名算法为SigA,签名验证算法为VerA;B的签名算法为SigB,签名验证算法为VerB。36密钥协商设p是一个大素数,是模p的一个本原元,p和个公开。(1)A随机选取x,,计算并将ga传送给用户B。(2)B随机选取y,,计算。然后计算和用户B将传送给用户A。pgZ02xp(mod)xaggp02yp(mod)ybggpmodyaKgp((mod,mod))xyBKBEESiggpgp((),mod,)yBCBgpE37密钥协商(3)用户A先验证C(B)的有效性。然后计算,解密EB,再验证B的签名的有效性。确认有效后,计算把自己的公钥证书C(A)以及EA发给用户B。(4)用户B解密后,验证C(A)的有效性,再解密验证A的签名的有效性。modxbKgp((mod,mod))xyBKBEESiggpgpA和B可以证实对方已经拥有了协议中产生的共享密钥中间人攻击不再奏效38本节要点回顾密钥管理简介密钥分配密钥协商391.在公钥体制中,每一用户U都有自己的公开钥PKU和秘密钥SKU。如果任意两个用户A、B按以下方