网络安全与管理第四章密码学应用2学习目标密钥的生命周期及密钥管理的概念对称密钥体制、公钥体制的密钥管理方法消息认证的原理和方法PKI的原理数字证书的应用windows2000的证书服务34.1密钥管理4.1.1密钥产生及管理概述4.1.2对称密码体制的密钥管理4.1.3公开密钥体制的密钥管理44.1.1密钥产生及管理概述密钥的生存期密钥的产生密钥的分配启用密钥/停有密钥替换密钥或更新密钥撤销密钥销毁密钥54.1.1密钥产生及管理概述(1)密钥的产生弱密钥:姓名、生日、常用单词等ligang1983,19820812,Hello,birthday,May字典攻击把最可能的密钥组成字典,利用这个方法能够破译一般计算机40%以上的口令避开弱密钥用标点符号分开一个词,如:splen&did用一个长句子生成一个密钥,如:TimingAttackonImplementationofDiffie-Hellman.TaoIoDH64.1.1密钥产生及管理概述ViRiTVi+1加密加密加密ANSIX9.17密钥的生成Ri=Ek(Ek(Ti)⊕Vi)Vi+1=Ek(Ek(Ti)⊕Ri)74.1.1密钥产生及管理概述密钥的存储和备份口令和密码记在脑子里口令和密码记在纸上密钥存储在硬件的介质上密钥托管(前提是:管理员必须是可以信任的)秘密共享协议(m,n)门限方案84.1.2对称密码体制的密钥管理(1)密钥分配中心KDC---集中的密钥管理方式会话密钥(SessionKey):在一个逻辑连接上使用的一个一次性的密钥来加密所有的用户数据,这个密钥我们称之为会话密钥。会话密钥在会话结束后就失效。永久密钥(PermanentKey):为了分配会话密钥,在两个实体之间使用永久密钥。94.1.3公开密钥体制的密钥管理公钥证书可信的第三方,来签发和管理证书分布式密钥管理PGP:通过介绍人(introducer)的密钥转介方式104.2消息认证4.2.1数据完整性验证4.2.2单向散列函数4.2.3消息摘要算法MD54.2.4数字签名4.2.5签名算法DSA114.2.1数据完整性验证消息消息附件H消息附件Hcompare+保证接收者能够辨别收到的消息是否是发送者发送的原始数据12(1)使用对称密钥体制产生消息认证码m1m2m3..........EEEEmiMAC(2)使用散列函数来产生消息认证码散列函数可以将任意长度的输入串转化成固定长度的输出串,将定长的输出串来做消息的认证码。134.2.2单向散列函数单向散列函数的性质:输入长度任意;输出长度固定;给定一个输入X,计算H(x)很容易给定一个hash值h,想找到一个X,使H(X)=h非常难给定X,求Y,使H(X)=H(Y)很难找到(X,Y),使H(X)=H(Y)很难144.2.2单向散列函数利用单向散列函数生成消息的指纹不带密钥的单向散列函数,任何人都能验证消息的散列值;带密钥的散列函数,散列值是预映射和密钥的函数只有拥有密钥的人才能验证散列值。单向散列算法Snefru算法、N-Hash算法、MD2算法、MD4算法、MD5算法,SHA-1154.2.3消息摘要算法MD5算法的设计思想安全性:找到两个具有相同散列值的消息在计算上是不可行的。直接安全性:算法的安全性不基于任何假设,如因子分解的难度等。速度:算法适于用软件实现,基于32-bit操作数的简单操作。简单性和紧凑性:算法尽可能简单,没有大的数据结构和复杂程序。164.2.3消息摘要算法MD52、MD5算法描述以512bit的分组来处理输入消息填充消息:在消息后面附一个1,然后填充上所需要的位数的0,然后在最后的64位上附上填充前消息的长度值,填充后长度恰为512的整数倍每一分组又划分为16个32bit的子分组174.2.3消息摘要算法MD5MD5主循环:输入为512比特分组(16个32bit字)184.2.3消息摘要算法MD5轮运算每一轮要进行16次操作,分别针对512bit消息分组中的16个32bit子分组进行轮函数FF(a,b,c,d,Mj,s,ti)表示a=b+((a+(F(b,c,d)+Mj+ti)s)GG(a,b,c,d,Mj,s,ti)表示a=b+((a+(G(b,c,d)+Mj+ti)s)HH(a,b,c,d,Mj,s,ti)表示a=b+((a+(H(b,c,d)+Mj+ti)s)II(a,b,c,d,Mj,s,ti)表示a=b+((a+(I(b,c,d)+Mj+ti)s)例如:FF(a,b,c,d,M0,7,0xd76aa478)194.2.3消息摘要算法MD5链接变量四个非线性函数A=0x01234567B=0x89abcdefC=0xfedcba98D=0x76543210F(X,Y,Z)=(X∧Y)∨((¬X)∧Z)G(X,Y,Z)=(X∧Z)∨(Y∧(¬Z))H(X,Y,Z)=X⊕Y⊕ZI(X,Y,Z)=Y⊕(X∨(¬Z))(其中⊕为异或,∧为与,∨为或,¬为反)204.2.4数字签名数字签名机制作用消息源认证:消息的接收者通过签名可以确信消息确实来自于声明的发送者。不可伪造:签名应是独一无二的,其它人无法假冒和伪造。不可重用:签名是消息的一部分,不能被挪用到其它的文件上。不可抵赖:签名者事后不能否认自己签过的文件。214.2.4数字签名1、数字签名的基本原理附加在数据单元上的一些数据或是对数据单元所作的密码变换确认数据单元的来源和数据的完整性只有通过签名者的私有信息才能产生双方发生争议时,可由第三方仲裁224.2.4数字签名2、数字签名的实现方法使用对称加密和仲裁者实现数字签名MCEEDMSC'DMSKACKBCKBCKACA方仲裁第三方B方234.2.4数字签名(2)使用公开密钥体制进行数字签名A用他的私人密钥加密消息,从而对文件签名;A将签名的消息发送给B;B用A的公开密钥解消息,从而验证签名;244.2.4数字签名(3)使用公开密钥体制与单向散列函数进行数字签名MHE||MHDcompareS签名过程签名的认证254.2.4数字签名(4)加入时间标记的签名问题:把签名和文件一起重用?把消息加上时间标记,然后再进行签名264.2.4数字签名(5)多重签名A用自己的私人密钥对文件的散列值进行签名;B用自己的私人密钥对文件的散列值进行签名;B把文件与自己的签名及A的签名一起发送给C;C用A的公开密钥验证A的签名,用B的公开密钥验证B的签名;274.2.4数字签名(6)盲签名A将消息m乘以一个随机数得到m’,这个随机数通常称为盲因子,A将盲消息发给B;B在收到的消息m’上签名,然后将签名Sig(m’)发给A;A通过去除盲因子可从B在m’上的签名Sig(m’)中获得B对m的签名Sig(m);284.3Kerberos认证交换协议4.3.1Kerberos模型的工作原理和步骤4.3.2Kerberos的优势与缺陷294.3.1Kerberos模型的工作原理和步骤Kerberos协议步骤KerberosASTGS12345ServerClient304.3Kerberos认证交换协议ClientAS的消息:c,tgsASClient的消息:{Kc,tgs}Kc,{Tc,tgs}KtgsClientTGS的消息:{Ac,s}Kc,tgs,{Tc,tgs}KtgsTGSClient的消息:{Kc,s}Kc,tgs,{Tc,s}KsClientServer的消息:{Ac,s}Kc,s,{Tc,s}KsKerberosASTGS12345ServerClient314.4公钥基础设施——PKI4.4.1PKI的定义、组成及功能4.4.2CA的功能4.4.3PKI的体系结构324.4.1PKI的定义、组成及功能PKI就是一个用公钥概念和技术实现的、为网络的数据和其它资源提供具有普适性安全服务的安全基础设施。PKI概念和内容是动态的、不断发展的。完整的PKI系统必须具有权威认证机关(CA)、数字证书库、密钥备份及恢复系统、证书作废系统、应用接口等基本构成部分334.4.1PKI的定义、组成及功能PKI具有12种功能操作:产生、验证和分发密钥。签名和验证:证书的获取证书的验证保存证书本地保存的证书的获取证书废止的申请密钥的恢复CRL的获取密钥更新审计存档344.4.2CA的功能(1)证书颁发(2)证书更新(3)证书撤销(4)证书和CRL的公布(5)证书状态的在线查询(6)证书认证CA1CA3CA2U2U3U4...........PCAU1...354.4.3PKI的体系结构1、单个CA的PKI结构PKI结构简单,容易实现,其扩展性较差2、分层结构的PKIRootCAPolicyCAOperationCAUser1User2Usern个人证书代码证书呆子企业证书服务器证书363、网络结构的PKI系统CA1CA2User1User2主体CA1CA1公钥CA2签名主体CA2CA2公钥CA1签名主体User1User1公钥CA1签名主体User2User2公钥CA2签名374.5数字证书4.5.1数字证书的类型及格式4.5.2数字证书的管理4.5.3证书的认证4.5.4Windows2000Server的证书服务384.5.1数字证书的类型及格式目前已定义的几种数字证书标准有:X.509证书简单PKI证书PGP证书属性证书394.5.1数字证书的类型及格式X.509标准推荐的数字证书格式VersionSerialnumberAlgorithmID&ParametersIssuernameValidityperiodSubjectnameSubjectpublickey&algorithm404.5.1数字证书的类型及格式3、认证机构和证书机构(CA)负责颁发和认证公钥证书的机构颁发证书,负责维护证书库和证书撤销列表(CRL)414.5.2数字证书的管理1、初始化阶段实体注册:密钥对的产生:证书创建及分发:密钥备份:424.5.1数字证书的类型及格式2、应用阶段证书检索:证书验证:密钥恢复:密钥更新:433、撤销阶段证书过期;证书撤销:密钥历史:密钥档案:444.5.3证书的认证验证证书签名的是否正确有效,这需要知道签发证书的CA的真正公钥,有时可能要涉及证书路径的处理。验证证书的完整性,即验证CA签名的证书散列值与单独计算出的散列值是否一致。验证证书是否在有效期内查看证书撤销列表,验证证书没有被撤销。验证证书的使用方式与任何声明的策略和使用限制一致。454.5.4Windows2000Server的证书服务1.创建一个独立的根CA464748492.申请证书505152533.颁发证书5455564.导入浏览器证书575.吊销证书5859