7 密钥管理技术_第1页
7 密钥管理技术_第2页
7 密钥管理技术_第3页
7 密钥管理技术_第4页
7 密钥管理技术_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

现代密码学概论7/29/202610:56AM1江苏大学计算机科学与通信工程学院主讲人:潘森杉第7讲密钥管理技术密码基本概念密钥管理由于密码技术都依赖于密钥,因此密钥的安全管理是密码技术应用中非常重要的环节。只有密钥安全,不容易被敌手得到或破获,才能保障实际通信或加密数据的安全。密钥管理方法因所使用的密码体制而异,但对密钥的管理通常包括:如何在不安全的环境中,为用户分发密钥信息,使得密钥能够安全、正确并有效地使用,以及在安全策略的指导下处理密钥自产生到最终销毁的整个生命周期,包括密钥的产生、存储、备份/恢复、装入、分配、保护、更新、泄漏、撤销、销毁等。3信息安全案例教程:技术与应用密码基本概念密钥管理密钥产生:首先要求在安全的环境下产生,可以通过某种密码协议或算法生成。其次,必须考虑具体密码算法的限制,根据不同算法检测,以避免得到弱密钥。再次,在确定要产生的密钥的长度时,应结合应用的实际安全需求,如要考虑加密数据的重要性、保密期限长短、破译者可能的计算能力等。4信息安全案例教程:技术与应用密码基本概念密钥管理密钥分配,也称密钥分发:将密钥安全地分发给需要的用户,一般地,在通信双方建立加密会话前,需要进行会话密钥的分配。密钥使用:应当根据不同需要使用不同的密钥,如身份认证使用公私钥对、临时的会话使用会话密钥。在保密通信中,每次建立会话都需要双方协商或分配会话密钥,而不应当使用之前会话所使用的会话密钥,更不能永远使用同一个会话密钥。甚至在有些保密通信系统中,同一次会话经过一定时间或一定数据量之后,会强制要求通信各方重新生成会话密钥。5信息安全案例教程:技术与应用密码基本概念密钥管理除安全存储外,密钥在分发或传输过程中,也需要加强安全保护。如密钥传输时,可以拆分成两部分,并委托给两个不同的人或机构来分别传输,通过使用其他密钥加密来保护。6信息安全案例教程:技术与应用密码基本概念密钥管理密钥要能被撤销。密钥撤销的原因包括与密钥有关的系统被迁移,怀疑一个特定密钥已泄漏并受到非法使用的威胁,或密钥的使用目的被改变,等等。一个密钥停用后可能还要保持一段时间,如用密钥加密的内容仍需保密一段时间,所以密钥的机密性要保持到所保护的信息不再需要保密为止。7信息安全案例教程:技术与应用7/29/202610:56AM8认证密钥建立协议引言目的:认证的密钥建立协议,协议执行完毕后要满足:只有Alice和Bob能够知道K(或者可能还有他们共同信任的某个主体T知道);Alice和Bob应该知道对方主体知道K;Alice和Bob应该知道K是新生成的。场景:Alice和Bob,虽然彼此互不认识,但是都认识Trent,并且分别和Trent共享长期密钥(KAT与KBT),Alice和Bob要通过可信第三方建立共享密钥K,7/29/202610:56AM9消息保密协议协议1:从Alice(发起者)到Bob(响应者)7/29/202610:56AM10消息保密协议协议1:从Alice(发起者)到Bob(响应者)7/29/202610:56AM11协议设计特征思考:考虑的一些实际问题会话共享密钥K由Alice生成,Bob对满意吗?譬如:K的随机性不够好,由于密钥共享,从而影响了Bob的安全性Bob不信任Alice,不愿意接受这样一个密钥,因为Alice不是很关注安全性,选择K仅仅是为了方便记忆??让共同信任的第三方Trent来产生密钥安全问题分析K足够新鲜吗,可否有假冒、伪造等攻击协议交互过程足够安全吗?7/29/202610:56AM12协议2:来自Trent的会话密钥7/29/202610:56AM13攻击:Malice冒充Bob根据Dolev-Yao威胁模型,Malice是网络的合法用户7/29/202610:56AM14攻击:Malice冒充Bob此攻击为内部攻击,仅在Malice是Trent的合法用户才有效根据Dolev-Yao威胁模型,Malice是网络的合法用户,7/29/202610:56AM15上述攻击形成的主要原因在于Bob的身份是明文发送的,可以通过隐藏Bob的身份来修改协议。修改:Alice发送给Trent:Alice,KAT{Bob}上述修改是否有效?攻击二:Malice(Alice)发送给Trent:Alice,KAT{Malice}KAT{Malice}可以由历史行为记录获得Bob的最终身份可以通过IP地址获得,因为为了包的正确传递,消息里包含有Bob的地址。7/29/202610:56AM16三、又一种攻击来自Trent的会话密钥协议:Malice(Trent)向Alice发送:KAT{K’},…7/29/202610:56AM17攻击的一个小结Malice可以通过改变或不改变Bob的身份来和Alice通信Malice改变协议中的某些消息而不被发现是可能的。为此,需要一个能防止消息被篡改的安全服务7/29/202610:56AM18消息认证协议消息认证,也有时被称为数据完整性协议(其实,是有差异的),让有正确密钥的合法主体检测任何受保护协议消息的未授权改变。7/29/202610:56AM19KAT{Bob},KAT{K}KBT{Alice},KBT{K}KAT{Bob},KAT{K}KBT{Alice},KBT{K}KBT{Alice},KBT{K}这样更改是否合适?7/29/202610:56AM20这两种不同的比较说明:消息认证服务需要使得接收者能够验证将要建立的会话密钥同它的使用者之间的密码绑定是否准确,这种绑定通过“解密-检验”模式进行。额外的说明:这种由接受者进行的“解密-检验”验证模式,并不是一个正确的“运算模式”。最好的模式是“再加密-检验”,但是我们目前能理解的知识只有“发送者加密,接收者解密”,因此更好的方法需要……7/29/202610:56AM21对消息认证协议的“重放攻击”

假定:Alice和Trent共享密钥KAT,Bob和Trent共享KBT;Alice和Bob希望建立一个新的共享密钥K(会话密钥).1.AT:Alice,Bob2.T找到KAT和KBT,

随机产生K,并回复A:3.A解密

验证B的身份,向B发送:Trent,{Alice,K}KBT4.B解密{Alice,K}KBT

,验证A的身份,并发送{A,B}KMalice可以冒充Trent,重放历史密钥K。脆弱性的来源:(1)和可信第三方的主密钥为长期密钥,很少更新(2)会话密钥要求经常更新,历史密钥很容易泄漏7/29/202610:56AM22询问应答(握手)协议

用来检验协议中的消息是否为旧消息的一次重放假定:Alice和Trent共享密钥KAT,Bob和Trent共享KBT;Alice和Bob希望建立一个新的共享密钥K(会话密钥).A随机生成NA,发送

Alice,Bob,NA2.T随机产生K,并回复A:3.A解密NA并验证,验证B的身份,向B发送:Trent,{Alice,K}KBT4.B解密验证A的身份,生成NB,向B发送{B,NB}K5.A回复{A,NB–1}K注释1:Nonce,仅用一次的随机数注释2:本协议是著名的Needham-Schroeder对称密钥认证协议,是认证和密钥建立协议中最著名的协议,发表于1978年。7/29/202610:56AM23Denning和Sacco对上述协议的攻击(1981年)Bob认为他正在和Alice共享一个新的会话密钥,但实际上这个密钥并不是新的,Malice有可能已经知道这个密钥。A随机生成NA,发送

Alice,Bob,NA2.T随机产生K,并回复A:3.A解密NA并验证,验证B的身份,向B发送:Trent,{Alice,K}KBT4.B解密验证A的身份,生成NB,向B发送{B,NB}K5.A回复{A,NB–1}K7/29/202610:56AM24实体认证协议实体认证类似于消息认证,也是通过验证一种密码算法实现不同之处在于,实体认证提供了一种主体(示证主体)活现性的证据。如果示证主体在最近的一个事件后,执行了一种密码运算,而且验证主体知道这是个最近的事件,那么就证明了证据的活现性。7/29/202610:56AM25Needham-Schroeder协议中,握手(询问-应答)机制提供了一种实体认证——完成了从Trent到Alice的实体认证,即Alice知道Trent真实存在着。假定:Alice和Trent共享密钥KAT,Bob和Trent共享KBT;Alice和Bob希望建立一个新的共享密钥K(会话密钥).A随机生成NA,发送

Alice,Bob,NA2.T随机产生K,并回复A:3.A解密NA并验证,验证B的身份,向B发送:Trent,{Alice,K}KBT4.B解密验证A的身份,生成NB,向B发送{B,NB}K5.A回复{A,NB–1}K说明:Alice收到消息行2时,Alice通过解密运算揭示她的nonceNA,表明在她发送nonceNA后,Trent仅进行了加密运算(因为密钥仅仅他们两人共享)。因此,该事件完成了实体认证。但是,该协议对于Bob来说,没有获得Trent活现性的实体认证证据,如何改进?7/29/202610:56AM26时间戳的使用通常的方法就是增加协议中的消息流,即增加一次Bob和Trent之间的握手,如何增加?使用时间戳来避免增加消息流Alice和Bob收到消息后,同时验证|Clock-T|<t1+t2Clock,是接受者当地时间;t1,是Trent的时钟和当地时钟之间正常差值的区间t2

,是所期望的网络延迟时间说明:网络中维护一个普遍可以获取的高质量的时钟是比较困难的。7/29/202610:56AM27使用时间戳的实体认证协议(双方)假定:Alice和Trent共享密钥KAT,Bob和Trent共享KBT;Alice和Bob希望建立一个新的共享密钥K(会话密钥).A随机生成NA,发送

Alice,Bob,NA2.T随机产生K,并回复A:3.A解密NA并验证,验证B的身份,向B发送:Trent,{T,Alice,K}KBT4.B解密验证A的身份,生成NB,向B发送{B,NB}K5.A回复{A,NB–1}K7/29/202610:56AM28Needham-Schroeder公钥认证协议该协议可以看作两个逻辑分离协议的交织:第1、2、4、5关系到如何获得公钥;第3、6、7关系到Alice和Bob的认证。7/29/202610:56AM29

Lowe的攻击方案(1995)说明:这是对上述公钥认证协议3-6-7形成的认证协议的攻击;这个攻击中包含了两次运行上述认证协议;第一次运行时,Malice和Alice建立了一个合法的会话第二次运行时,Malice伪装成Alice和Bob建立一个假的会话。7/29/202610:56AM30最新的组合安全和安全性的逻辑证明上述的攻击奏效的重要原因时Alice无意的为Malice解密了Bob的NB概念:预言机(oracle)一个主体无意识的为攻击者执行了一个密码运算时,该主体被用作预言机,或提供了预言机服务。密码和算法的安全:即使用户为攻击者提供了预言机服务,它们也是安全的。安全性的逻辑证明组合安全7/29/202610:56AM31上述攻击的危险——如果Bob是一家银行?如何修补KA{Bob,NA,NB}修补后,Malice还能利用Alice作为预言机来解密这条消息吗?7/29/202610:56AM32Abadi-Needham密码协议设计原则

如果主体的身份对于消息的意义来说是必要的,那么为了保险起见,应当在消息中明确置入主体的名字。其它安全问题

“解密-检验消息认证”的设计特征引起,该设计已经被称为一个错误的密码运算模式。认证协议如此容易出错,激励着人们去考虑系统化的方法来开发正确的协议。……最新的系统化方法是什么?认证协议所用的密码技术相对简单,然而,更深的研究有:认证协议的原则、结构以及对认证协议攻击的分类,开发正确认证协议的形式化方法……7/29/202610:56AM33信息安全系统与其它信息系统的不同复杂系统很容易含有设计错误用户与环境友好的,去避免某些可能导致错误的用法敌对的,其存在的目的就是为了攻击系统要经常以环境对所有的安全系统的敌意,提醒我们开发安全系统时应当小心7/29/202610:56AM34公钥认证框架

——基于目录的X.509与基于非目录的Shamir签名公钥密码系统中密钥的生成过程中始终包含着如下步骤:公钥=F(私钥)F是一个私钥空间映射到公钥空间的有效单向函数,这使得公钥总包含一段看似随机的成分。主体的公钥必须以一种可验证的和可信的方式与主体的身份信息相关,因为为了传递一条以公钥加密的秘密信息,发送者必须确信这个看似随机的公钥确实属于所声称的签名人。引言7/29/202610:56AM35公钥密码系统的实际应用中,需要一个能够简单验证公钥与主体身份相关的验证机制,这样的机制可以在认证框架中实现“公钥的拥有者可以向系统认证”建立公钥系统系统认证框架有两种不同的方法:一种称为公钥证书基础设施(PKI),是基于目录的认证框架;另一种称为基于身份的公钥密码学,是基于非目录的公钥认证框架。基于目录的认证框架密钥管理的困难:面对面的交换密钥,以某种安全的方式保存,但是扩容能力并不理想开放的通信系统中,往往通信双方事先并不认识,大多数情况下,双方只通信一次,每个主体都要管理不现实的巨大数量公钥,也不能体现公钥密码学的优势。7/29/202610:56AM36公钥证书服务:对密钥协商协议向公钥系统的扩充证书机构(CA):提供密钥管理的可信的第三方,是一个特殊的主体,在其服务域内所有的主体都信任他,并通过间接的方式被更大的域内的主体知道和信任。公钥证书:对于CA域内的每个端用户而言,CA发放一个公钥证书来证实用户的公钥数据,公钥证书是一个包含多项数据的结构化数据记录,包含:持有者唯一可以识别的身份公钥参数CA的签名,提供持有者的身份与她/他的公钥的密码绑定密钥信道:一个主体如果信任CA,也信任CA所发放的证书,这样验证主体通过公钥建立了一条由证书到他/她的安全信道。7/29/202610:56AM37一个非正式的公钥证书示例:身份信息发行CA的公钥信息数据项附加信息描述对公钥CA签名的验证算法有效期使用条件等7/29/202610:56AM38基于目录的信道:基于证书服务的公钥信道离线的信任:CA所要求的信任,比对称密钥协商协议中可信的第三方所要求的信任弱的多,这里所提供的安全服务是消息的认证,这个认证不需要任何秘密,验证只需要CA的公钥就可以验证CA的签名,这个服务可以是离线的,CA不需要和端用户一起运行协议,离线服务可以通过增大规模来处理大规模系统。CA的公钥可以用来验证她所发行的证书,反过来,CA的公钥也可以包含在另一个CA所签发的证书中(信任的委托、转移)……7/29/202610:56AM39证书的发行证书的吊销(两种方式)CA核实请求证书主体身份的有效性这类核实应该包括一些物理的非密码学的识别方法,譬如银行开户时所做的一样主体证明她/他知道要签发的公钥对应的私钥可以是用户生成对一条询问消息签名的形式,签名可以用公钥来验证可以是用户和CA之间进行零知识证明的形式,某些应用要求公钥的秘密部分具有特定的结构,这是可以设计能证明所需结构的零知识协议。CA应该维护一个在线可用的吊销证书的最新列表CA在整个系统发布一个“变化吊销列表”,仅包含最近被吊销的证书,用户更新本地的副本。吊销证书应该由吊销CA加盖时戳,在吊销以前主体所生成的签名依然有效7/29/202610:56AM40基于目录表的公钥认证框架示例(1)X.509公钥证书框架目录信息树(DIT)

:X.509公钥证书基础设施是标准的公钥证书框架,规模呈树状层次结构增加节点代表一个主体,其公钥证书由它相邻的父节点发行叶子节点表示端用户节点中间节点代表不同级别或不同域的CA根节点代表根CA,是整个系统中众所周知的主体,根CA应该保证自己的公钥的可靠性。每个CA都有服务于一个很大的域的潜力,所以DIT的深度不需要很大两个端用户主体通过在DIT中向上找一个离他们最近的父节点来建立一条安全的通信信道7/29/202610:56AM41(2)PGP“信任网”PGP(PrettyGoodPrivacy)信任网:PGP是一种安全电子邮件软件,PGP信任网是拥有大量业余用户的公钥证书框架,也称为PGP密钥环,这种认证模型的规模按非层次结构的方式增大。任何人都可以通过对他们的密钥证书(一个<name,key>对)进行签名而称为CA,这样整个签名关系形成一个网状结构。网状结构中任一CA都不是完全可信赖的,或者根本不能信赖。PGP的理论是拥有足够多的这种签名就可以信任这种<name,key>结合,因为并非所有的签名者都是坏人。7/29/202610:56AM42(3)简单公钥基础设施(SPKI)X.500的局限性:全局可区分的名字:类似一个全球在线的电话簿,每个用户都有一个记录,其证书中的Subjectname必须是一个全局可区分的名字公钥证书在应用中的基本工作:回答是否允许远程密钥持有者进行某种访问或者某种授权操作。做出这种回答的依据不是密钥持有者姓名的拼写,而是该持有者是否被授权。目录表的机密性和命名规则的非单一性:姓名的目录表通常是有价值的机密的;而且全局唯一的命名需要单一的命名规则,可是很多已有的姓名都没有基于该规则……7/29/202610:56AM43SPKI是具有授权和委托功能的认证框架SDSI(简单分布式安全基础设施)名字:包含一个人的名字和它的公钥值的一个杂凑值:是JimTherese的专用SPKI名字,其中公钥的SHA-1杂凑函数值使得SPKI的名字具有全局唯一可识别性,即使有同名JimTherese授权消息:可能是绑定在公钥上的一个授权描述,因此证书能直接显示请求者是否被授权进行某一行动委托消息:描述请求者对另一个人委托授权的权利S表达式:是SPKI认证方案的核心。例如表示OrgEU中所有用户被授权阅读的对象是文档类型,且该文档的扩展名是doc并且位于Belgium(比利时)7/29/202610:56AM44(4)与X.509公钥证书基础设施相关的协议CMP/证书管理协议:支持PKI各部分之间的在线交互,例如用于CA与密钥对相关的用户系统之间,或者两个相互颁发证书的CA之间的管理协议。OCSP/在线证书状态协议:能够确定一个已经识别证书的(吊销)状态,可以用来满足一些支持比吊销列表更及时的吊销信息操作要求,也可以用来获取一些附加的状态信息。TSP/因特网X.509公钥基础设施时戳协议:由一个发向时戳服务器的请求和时戳服务器(TSA)返回的应答组成。不可否认服务要求在指定时间以前建立数据的存在性,这个协议可以做支持此类服务的基本构件。OP/因特网X.509公钥基础设施运行协议FTP和HTTP协议是使用文件传输协议FTP和超文本传输协议HTTP从PKI资料库获得证书和证书吊销列表(CRL)的协议规范的说明7/29/202610:56AM45基于非目录的公钥认证框架Shamir基于身份的公钥密码学:公钥的随机化使得认证过程中,必须把一个主体的身份信息与它的公钥结合起来。这种结合可以通过树状层次结构来实现,而维护这种树状层次结构会导致系统异常复杂而且成本过高用身份信息作为公钥,可以大大减少公钥认证的复杂性计算过程不能公开,且委托给可信的第三方TA,TA拥有专有的主密钥。因为私钥由TA生成,所以用户必须无条件信任TA。可以将计算过程交给多个个体共同运算完成,获取私钥也必须由这些个体共同完成,则使得这种无条件信任可以接受。7/29/202610:56AM46Shamir的基于ID的签名方案该方案中有4个算法:(1)建立:这个算法由TA运行来生成系统参数和主密钥。(2)用户密钥生成:也有Trent执行,输入主密钥和一条任意来自{0,1}*的比特串作为ID,输出与ID对应的私钥(3)签名:输入一条消息和签名者的私钥,输出一个签名(4)验证:输入一个消息

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论