密钥分配与密钥管理组织.ppt

上传人:小** 文档编号:3781811 上传时间:2020-10-26 格式:PPT 页数:33 大小:785.03KB
返回 下载 相关 举报
密钥分配与密钥管理组织.ppt_第1页
第1页 / 共33页
密钥分配与密钥管理组织.ppt_第2页
第2页 / 共33页
点击查看更多>>
资源描述

《密钥分配与密钥管理组织.ppt》由会员分享,可在线阅读,更多相关《密钥分配与密钥管理组织.ppt(33页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、密钥分配与密钥管理,2/80,5.1 单钥加密体制的密钥分配,5.1.1 密钥分配的基本方法 两个用户(主机、进程、应用程序)在用单钥密码体制进行保密通信时,首先必须有一个共享的秘密密钥,为防止攻击者得到密钥,还必须时常更新密钥。因此,密码系统的强度也依赖于密钥分配技术 两个用户A和B获得共享密钥的方法有以下4种: 密钥由A选取并通过物理手段发送给B 密钥由第三方选取并通过物理手段发送给A和B 如果A、B事先已有一密钥,则其中一方选取新密钥后,用已有的密钥加密新密钥并发送给另一方 如果A和B与第三方C分别有一保密信道,则C为A、B选取密钥后,分别在两个保密信道上发送给A、B,3/80,第1和第

2、2种方法称为人工发送 在通信网中,若只有个别用户想进行保密通信,密钥的人工发送还是可行的。然而如果所有用户都要求支持加密服务,则任意一对希望通信的用户都必须有一共享密钥。如果有n个用户,则密钥数目为n(n-1)/2。因此当n很大时,密钥分配的代价非常大,密钥的人工发送是不可行的,4/80,对于第3种方法 攻击者一旦获得一个密钥就可获取以后所有的密钥;而且用这种方法对所有用户分配初始密钥时,代价仍然很大。,5/80,第4种方法比较常用 其中的第三方通常是一个负责为用户分配密钥的密钥分配中心(KDC)。 这时每一用户必须和密钥分配中心有一个共享密钥,称为主密钥。(可通过第二种方法) 通过主密钥分配

3、给一对用户的密钥ks称为会话密钥,用于这一对用户之间的保密通信。 通信完成后,会话密钥即被销毁。如上所述,如果用户数为n,则会话密钥数为n(n-1)/2。但主密钥数却只需n个,所以主密钥可通过物理手段发送。,6/80,5.1.2密钥分配的一个实例,如图:假定两个用户A、B分别与密钥分配中心KDC (key distribution center)有一个共享的主密钥KA和KB,A希望与B建立一个共享的一次性会话密钥,可通过以下几步来完成: A向KDC发出会话密钥请求,表示请求的消息由两个数据项组成: 第1项Request是A和B的身份,第2项是这次业务的惟一识别符N1,称N1为一次性随机数,可以

4、是时戳、计数器或随机数,每次的N1都应不同,且为防止假冒,应使敌手对N1难以猜测。因此用随机数作为这个识别符最为合适。,防重放,防篡改,7/80, KDC为A的请求发出应答 应答由KA加密,只有A能成功解密,且A可相信这一消息的确是由KDC 发出的。 消息中包括A希望得到的两项内容: 一次性会话密钥KS; A在中发出的请求,包括一次性随机数N1,目的是使A将收到的应答与发出的请求相比较,看是否匹配 A能验证自己发出的请求在被KDC收到之前,是否被他人篡改 A还能根据一次性随机数相信收到的应答不是重放的过去的应答 消息中还有B希望得到的两项内容: 一次性会话密钥KS; A的身份(例如A的网络地址

5、)IDA。 这两项由KB加密,将由A转发给B,以建立A、B之间的连接 并用于向B证明A的身份。,8/80, A存储会话密钥KS,并向B转发EKBKSIDA 因为转发的是由KB加密后的密文,所以转发过程不会被窃听 B收到后,可得会话密钥KS,并从IDA可知另一方是A,而且还从EKB知道KS的确来自KDC 这一步完成后,会话密钥就安全地分配给了A、B。然而还能继续以下两步工作: B用会话密钥KS加密另一个一次性随机数N2,并将加密结果发送给A A以f(N2)作为对B的应答,其中f是对N2进行某种变换(例如加1)的函数,并将应答用会话密钥加密后发送给B 这两步可使B相信第步收到的消息不是一个重放 注

6、意: 第步就已完成密钥分配,第、两步结合第步执行的是认证功能,9/80,5.1.3 密钥的分层控制,网络中如果用户数目非常多且分布的地域非常广,则需要使用多个KDC的分层结构 在每个小范围(如一个LAN或一个建筑物)内,都建立一个本地KDC。同一范围的用户在进行保密通信时,由本地KDC为他们分配密钥 如果两个不同范围的用户想获得共享密钥,则可通过各自的本地KDC,而两个本地KDC的沟通又需经过一个全局KDC。这样就建立了两层KDC 根据网络中用户的数目及分布的地域,可建立3层或多层KDC 分层结构可减少主密钥的分布,因为大多数主密钥是在本地KDC和本地用户之间共享。 分层结构还可将虚假KDC的

7、危害限制到一个局部区域,但会降低信任度,10/80,5.1.4 会话密钥的有效期,会话密钥更换得越频繁,系统的安全性就越高。 因为敌手即使获得一个会话密钥,也只能获得很少的密文。 但另一方面,会话密钥更换得太频繁,又将延迟用户之间的交换,同时还造成网络负担。 所以在决定会话密钥的有效期时,应权衡矛盾的两个方面 对面向连接的协议(如TCP) 在连接未建立前或断开时,会话密钥的有效期可以很长。而每次建立连接时,都应使用新的会话密钥。如果逻辑连接的时间很长,则应定期更换会话密钥。 无连接协议(如用户数据报协议UDP) 无法明确地决定更换密钥的频率。为安全起见,用户每进行一次交换,都用新的会话密钥。然

8、而这又失去了无连接协议主要的优势,即对每个业务都有最少的费用和最短的延迟。比较好的方案是在某一固定周期内或对一定数目的业务使用同一会话密钥。,11/80,5.1.5 无中心的密钥控制,用密钥分配中心为用户分配密钥时,要求所有用户都信任KDC,同时还要求对KDC加以保护。如果密钥的分配是无中心的,则不必有以上两个要求 然而如果每个用户都能和自己想与之建立联系的另一用户安全地通信,则对有n个用户的网络来说,主密钥应多达n(n-1)/2个。 当n很大时,这种方案无实用价值 但在整个网络的局部范围却非常有用,12/80,无中心的密钥分配时,两个用户A和B建立会话密钥需经过以下3步: A向B发出建立会话

9、密钥的请求和一个一次性随机数N1 B用与A共享的主密钥MKm对应答的消息加密,并发送给A 应答的消息中有B选取的会话密钥KS、B的身份IDB、f(N1)和另一个一次性随机数N2 A使用新建立的会话密钥KS对f(N2)加密后返回给B,13/80,5.1.6 密钥的控制使用,密钥可根据其不同用途分为会话密钥和主密钥两种类型 会话密钥又称为数据加密密钥 主密钥又称为密钥加密密钥 由于密钥用途不同,对密钥的使用方式也希望加以某种控制 如果主密钥泄露了,则相应的会话密钥也将泄露,因此主密钥的安全性应高于会话密钥的安全性 一般在密钥分配中心以及终端系统中主密钥都是物理上安全的 如果把主密钥当作会话密钥注入

10、加密设备,那么其安全性则降低,14/80,单钥体制中的密钥控制技术有以下两种: (1) 密钥标签 用于DES的密钥控制,将DES的64比特密钥中的8个校验位作为控制使用这一密钥的标签。标签中各比特的含义为: 一个比特表示这个密钥是会话密钥还是主密钥; 一个比特表示这个密钥是否能用于加密; 一个比特表示这个密钥是否能用于解密; 其他比特无特定含义,留待以后使用。 由于标签是在密钥之中,在分配密钥时,标签与密钥一起被加密,因此可对标签起到保护作用。本方案的缺点: 第一,标签的长度被限制为8比特,限制了它的灵活性和功能; 第二,由于标签是以密文形式传送,只有解密后才能使用,因而限制了对密钥使用的控制

11、方式。,15/80,(2) 控制矢量 对每一会话密钥都指定了一个相应的控制矢量,控制矢量分为若干字段,分别用于说明在不同情况下密钥是被允许使用还是不被允许使用,且控制矢量的长度可变 控制矢量是在KDC产生密钥时加在密钥之中的,16/80,首先由一杂凑函数将控制矢量压缩到与加密密钥等长,然后与主密钥异或后作为加密会话密钥的密钥,即 H=h(CV); Kin=KmH; Kout=EKmHKS 其中CV是控制矢量,h是杂凑函数,Km是主密钥,KS是会话密钥 会话密钥的恢复过程表示为: KS=DKmHEKmH KS KDC在向用户发送会话密钥时,同时以明文形式发送控制矢量 用户只有使用与KDC共享的主

12、密钥以及KDC发送来的控制矢量才能恢复会话密钥,因此必须保留会话密钥和它的控制矢量之间的对应关系 与使用8比特的密钥标签相比,控制矢量有两个优点: 第一,控制矢量的长度无限制,可对密钥的使用施加任意复杂的控制 第二,控制矢量始终以明文形式存在,可在任一阶段对密钥的使用施加控制,17/80,5.2 公钥加密体制的密钥管理,本节介绍两方面内容: 一是公钥密码体制所用的公开密钥的分配 二是如何用公钥体制来分配单钥密码体制所需的密钥 这是公钥加密的一个主要用途,18/80,5.2.1 公钥的分配,1. 公开发布 公开发布指用户将自己的公钥发给每一其他用户,或向某一团体广播 如PGP(pretty go

13、od privacy)中采用了RSA算法,它的很多用户都是将自己的公钥附加到消息上,然后发送到公开(公共)区域,如因特网邮件列表 缺点很明显,即任何人都可伪造这种公开发布 如果某个用户假装是用户A并以A的名义向另一用户发送或广播自己的公开钥,则在A发现假冒者以前,这一假冒者可解读所有意欲发向A的加密消息,而且假冒者还能用伪造的密钥获得认证,19/80,2. 公用目录表 公用目录表指一个公用的公钥动态目录表 公用目录表的建立、维护以及公钥的分布由某个可信的实体或组织承担,称这个实体或组织为公用目录的管理员 该方案有以下一些组成部分: 管理员为每个用户都在目录表中建立一个目录,目录中有两个数据项:

14、 用户名;用户的公开钥 每一用户都亲自或以某种安全的认证通信在管理者那里为自己的公开钥注册 用户如果由于自己的公开钥用过的次数太多或由于与公开钥相关的秘密钥已被泄露,可随时用新密钥替换现有的密钥,20/80, 管理员定期公布或定期更新目录表 例如,像电话号码本一样公布目录表或在发行量很大的报纸上公布目录表的更新 用户可通过电子手段访问目录表,这时从管理员到用户必须有安全的认证通信 安全性高于公开发布,但仍易受攻击 如果敌手成功地获取管理员的秘密钥(密码),就可伪造一个公钥目录表,以后既可假冒任一用户又能监听发往任一用户的消息。 公用目录表还易受到敌手的窜扰(破坏) 用户需要登录到公钥目录表中自

15、己查找收方的公钥,21/80,3. 公钥管理机构 为防止用户自行对公钥目录表操作所带来的安全威胁,假定有一个公钥管理机构来为各用户建立、维护动态的公钥目录 即由用户提出请求,公钥管理机构通过认证信道将用户所需要查找公钥传给用户 该认证信道主要基于公钥管理机构的签名,22/80, 用户A向公钥管理机构发送一个带时戳的消息,消息中有获取用户B的当前公钥的请求 管理机构对A的应答由一个消息表示,该消息由管理机构用自己的秘密钥SKAU加密,因此A能用管理机构的公开钥解密,并使A相信这个消息的确是来源于管理机构 应答的消息中有以下几项: B的公钥PKB,A可用之对将发往B的消息加密; A的请求,用于A验

16、证收到的应答的确是对相应请求的应答,且还能验证自己最初发出的请求在被管理机构收到以前是否被篡改; 抗篡改 最初的时戳,以使A相信管理机构发来的消息不是一个旧消息,因此消息中的公开钥的确是B当前的公钥 抗重放,23/80, A用PKB对一个消息加密后发往B,包含两个数据项: 一是A的身份IDA 二是一次性随机数N1,用于惟一地标识这次业务 、步骤中:B以相同方式从管理机构获取A的公开钥 这时,A和B都已安全地得到了对方的公钥,所以可进行保密通信。前5个消息用于安全的获取对方的公开钥 用户得到对方的公开钥后保存起来可供以后使用,这样就不必再发送消息、 、了 用户还可以通过以下两步进行相互认证: B

17、用PKA加密一次性随机数N1和B产生的一次性随机数N2,发往A,可使A相信通信的另一方的确是B A用PKB对N2加密后返回给B,可使B相信通信另一方的确是A 必须定期地通过密钥管理中心获取通信对方的公开钥,以免对方的公开钥更新后无法保证当前的通信,24/80,公钥管理机构方式的优缺点 每次密钥的获得由公钥管理机构查询并认证发送,用户不需要查表,提高了安全性 但公钥管理机构必须一直在线,由于每一用户要想和他人联系都需求助于管理机构,所以管理机构有可能成为系统的瓶颈 由管理机构维护的公钥目录表也易被敌手通过一定方式窜扰 4. 公钥证书 用户通过公钥证书来互相交换自己的公钥而无须与公钥管理机构联系

18、公钥证书由证书管理机构CA(certificate authority)为用户建立,25/80,证书中的数据项有与该用户的秘密钥相匹配的公开钥及用户的身份和时戳等,所有的数据项经CA用自己的秘密钥签字后就形成证书 证书的形式为CA=ESKCAT, IDA, PKA IDA是用户A的身份,PKA是A的公钥,T是当前时戳 SKCA是CA的秘密钥,CA即是为用户A产生的证书,26/80,用户可将自己的公开钥通过公钥证书发给另一用户,接收方可用CA的公钥PKCA对证书加以验证 即DPKCACA=DPKCAESKCAT,IDA,PKA=(T,IDA,PKA) 因为只有用CA的公钥才能解读证书,接收方从而

19、验证了证书的确是由CA发放的,且也获得了发送方的身份IDA和公开钥PKA 时戳T为接收方保证了收到的证书的新鲜性,用以防止发送方或敌方重放一旧证书。因此时戳可被当作截止日期,证书如果过旧,则被吊销,27/80,5.2.2 用公钥加密分配单钥密码体制的密钥,公开钥分配完成后,用户就可用公钥加密体制进行保密通信。然而由于公钥加密的速度过慢,以此进行保密通信不太合适,但用于分配单钥密码体制的密钥却非常合适 1. 简单分配 下图表示简单使用公钥加密算法建立会话密钥的过程,如果A希望与B通信,可通过以下几步建立会话密钥:,28/80, A产生自己的一对密钥PKA,SKA,并向B发送PKA|IDA,其中I

20、DA表示A的身份 B产生会话密钥KS,并用A的公开钥PKA对KS加密后发往A A由DSKAEPKAKS恢复会话密钥。因为只有A能解读KS,所以仅A、B知道这一共享密钥。 A销毁PKA,SKA,B销毁PKA。 A、B现在可以用单钥加密算法以KS作为会话密钥进行保密通信,通信完成后,又都将KS销毁 这种分配法尽管简单,但却由于A、B双方在通信前和完成通信后,都未存储密钥,因此,密钥泄露的危险性为最小,且可防止双方的通信被敌手监听, 每次公私钥由发方临时产生 但由于公钥缺少证书管理机构认证且非物理传输容易受到主动攻击,29/80,中间人攻击 如果敌手E已接入A、B双方的通信信道,就可通过以下不被察觉

21、的方式截获双方的通信: 与上面的步骤相同 E截获A的发送后,建立自己的一对密钥PKE,SKE,并将PKEIDA发送给B。 B产生会话密钥KS后,将EPKEKS发送出去。 E截获B发送的消息后,由DPKEEPKE KS解读KS。 E再将EPKAKS发往A。 现在A和B知道KS,但并未意识到KS已被E截获。A、B在用KS通信时,E就可以实施监听,30/80,2. 具有保密性和认证性的密钥分配 既可防止被动攻击,又可防止主动攻击 假定A、B双方已完成公钥交换,可按以下步骤建立共享会话密钥: A用PKB的公开钥加密A的身份IDA和一个一次性随机数N1后发往B,其中N1用于惟一地标识这一业务,31/80

22、, B用PKA加密N1和B新产生的一次性随机数N2后发往A。B发来的消息中N1的存在可使A相信对方的确是B A用PKB对N2加密后返回给B,使B相信对方的确是A A选一会话密钥KS,然后将M=EPKBESKAKS发给B,其中用B的公开钥加密是为保证只有B能解读加密结果,用A的秘密钥加密是保证该加密结果只有A能发送 B以DPKADSKBM恢复会话密钥 注意:这个方案其实是有漏洞的,即第4条消息容易被重放,假设敌手知道上次通话时协商的会话密钥Ks,以及A对Ks的签名和加密,则通过简单的重放即可实现对B的欺骗,解决的方法是将第3和第4条消息合并发送,32/80,方案的修改,修改后的过程,33/80,

23、用户A选择一保密的随机整数XA,并将YA=aXA mod p发送给用户B。类似地,用户B选择一保密的随机整数XB,并将YB=aXB mod p发送给用户A。然后A和B分别由K=YBXA mod p和K=YAXB mod p计算出的就是共享密钥,这是因为 YBXA mod p=(aXB mod p)XA mod p=(aXB)XA mod p =aXBXA mod p = aXAXB mod p=(aXA mod p)XB mod p =YAXB mod p 因XA,XB是保密的,敌手只能得到p,a,YA,YB,要想得到K,则必须得到XA,XB中的一个,这意味着需求离散对数。因此敌手求K是不可行的。 例如:p97,a5,A和B分别秘密地选XA36,XB=58,并分别计算YA=536mod9750,YB=558mod9744,在交换YA,YB后,分别计算 K=YBXA mod974436mod9775 K=YAXB mod975058mod9775 简单的DH协议(未进行认证)容易受到中间人攻击,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com