讲师姓名:林麟大纲加密对称加密非对称加密公共密钥体系证书服务SSL身份验证常见身份验证方法NTLM和Kerberos身份验证协议与微软操作系统加密的优势数据保密性确保只有特定的接受者才能查看内容数据完整性通过Hash算法确保数据不被篡改认证数字签名提供认证服务不可否定性数字签名允许用户证明信息交换确实发生过金融组织用于电子货币交易加密的种类和强度加密种类对称加密(Symmetric)非对称加密(Asymmetric)哈希算法(Hash)加密强度算法强度密钥的保密性密钥的长度配方数=2的n次方计算机和密码破译能力花销(US$)对称/非对称密钥长度(bit)40/38456/51264/76880/1792128/2304$10万.2秒3.5小时37天7000年10^18年$100万.02秒21分钟4天700年10^17年$1亿2毫秒2分钟9小时70年10^16年$10亿.2毫秒13秒1小时7年10^15年$1000亿2微秒.1秒32秒245天10^14年加密算法示例最早的恺撒密文就是一种简单的字母替换加密算法,算法本身非常简单但同时也是最容易破解的算法。其加密方式就是按照其在英文字母表里的顺序将字母循环移位。整个算法可归结为下面的公式F(x)=(x+s)mod26x是原文字母s是一个常数缺点:字母出现的频率没有变化对称加密在加密和解密过程中使用同一个密钥常见对称加密算法Dataencryptionstandard(64/2bit,16round,56bitkey)TripleDES(128key)SymmetricalgorithmscreatedbytheRSASecurityCorporationInternationalDataEncryptionAlgorithmBlowfishandTwofishSkipjackMARSRijndaelandSerpentAdvancedEncryptionStandardDES描述DES是一种block密文,意思是把数据加密成64位的block。使用相同的密钥来加密和解密。每64位的数据又被分成两半,并利用密钥对每一半进行运算(称做—次round)。DES进行16个rounds,并且对于每个round运算所使用密钥的位数是不同的。理论破解概率:1/70,000,000,000,000,000非对称加密在加密和解密过程中使用不同密钥密钥交换手动交换密钥首先和接收方交换公钥PGP和S/MIME自动交换密钥通过一系列的握手过程可以自动地安全地交换信息(包括私钥)SSL和IPSec非对称加密非对称加密特点加密解密速度慢强度高实施难度大通常与对称加密配合使用非对称加密算法RSADSADiffie-HellmanDiffie-hellman研发人员DiffieHellman时间:1976年核心原理密钥保密算法公开RSA算法研发人员RonRivestAdiShamirLeonardAdleman核心原理大数分解难其安全性一直未能得到理论上的证明。RSA算法——密钥对的产生选择两个大素数,p和q。计算:n=p*q(n称为模数)然后随机选择加密密钥en(经常为3或65537),要求e和(p-1)*(q-1)互质。最后,利用Euclid算法计算解密密钥d,满足e*d=1(mod(p-1)*(q-1))其中n和d也要互质。数e和n是公钥,d是私钥。两个素数p和q不再需要,应该丢弃,不要让任何人知道。RSA算法——加密解密信息加密信息m(二进制表示)时,首先把m分成等长数据块m1,m2,...,mi,块长s,其中2^s=n,s尽可能的大。对应的密文是:ci=mi^e(modn)(a)解密时作如下计算:mi=ci^d(modn)(b)RSA可用于数字签名,方案是用(a)式签名,(b)式验证。具体操作时考虑到安全性和m信息量较大等因素,一般是先作HASH运算RSA算法1978年就出现了这种算法,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:RonRivest,AdiShamir和LeonardAdleman。但RSA的安全性一直未能得到理论上的证明。RSA的安全性依赖于大数分解。公钥和私钥都是两个大素数(大于100个十进制位)的函数。据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。公共密钥体系(PKI)域控制器SSL和IPSec证书服务证书申请与吊销ActiveDirectory证书发布PKI应用程序客户端计算机公共密钥体系——加密明文密文User1明文User2证书服务User2的公钥User2的私钥公共密钥体系——数字签名计算摘要User1(发送方)明文User1的私钥摘要加密摘要123User2(接受方)User1的公钥46对比5计算摘要应用PKI的产品Outlook/OWASMIMERADIUS/RAS+SmartcardWirelessPKI支持源码签名(codesigning)电子邮件数字签名Smartcard登录SSL实用协议分析——SSL身份验证身份验证方法whatyouknow密码whatyouhave智能卡/证书whoyouare物理/生物特征whereyouare源IP地址(IIS)DNS反向解析常用的身份验证技术KerberosV5身份验证与密码或智能卡一起使用的用于交互式登录的协议。它也是适用于服务的默认的网络身份验证方法。SSL/TLS身份验证用户尝试访问安全的Web服务器时使用的协议。NTLM身份验证客户端或服务器使用早期版本的Windows时使用的协议。摘要式身份验证摘要式身份验证将凭据作为MD5哈希或消息摘要在网络上传递。Passport身份验证Passport身份验证是提供单一登录服务的用户身份验证服务。NTLM身份验证协议WindowsNT使用NTLM与远程机器建立一个会话,这个会话是一个安全隧道,通过它参与隧道的机器之间可以互通信息,事件的顺序如下1.会话请求者(客户)对会话接收者(服务器)传送一个数据包,请求安全隧道的建立。2.服务器产生一个随机的64位数(挑战)传送回客户。3.客户取得这个由服务器产生的64位数,用试图建立连接的帐号的口令打乱它,将结果返回到服务器(响应)。4.服务器接受响应发送到本地安全验证(LSA),LSA通过使用用户正确的口令核实响应确认请求者身份。如果请求者的帐号是服务器的本地帐号,核实本地发生;如果请求的帐号是一个域的帐号,响应传送到域控制器去核实。当对挑战的响应核实为正确,一个访问令牌产生,然后传送给客户。客户使用这个访问令牌连接到服务器上的资源直到建立的会话被终止。Kerberos身份验证到服务器的身份认证更高效相互身份认证代理身份认证简化的信任管理互操作性基本概念——鉴别码AliceBobI'mAlice,KAB{Alice,timestamp}KAB{timestamp}1423鉴别码共享密钥如何解决密钥分发问题!基本概念——密钥分配ClientServerClientwantsServerKClient{useSCSforServer}KDCinventssessionkeySCSKServer{useSCSforClient}会话密钥长效密钥!如何解决server密钥保存问题基本概念——会话票证(SessionTicket)ClientClientwantsServerKClient{useSCSforServer},ticket=KServer{useSCSforClient}KDCinventssessionkeySCS基本概念——C/S相互身份验证ClientServerSCS{Client,time},ticket=KServer{useSCSforClient}SCS{time}需求NTLMKerberos速度传递式身份验证,慢单一票据系统,快智能卡不支持支持文档微软专利标准,少开放式标准,多数据保护在早期的NTLM中几乎没有任何数据保护提供基于密码的强保护网络兼容性只与微软网络兼容与任何基于Kerberos的网络兼容操作系统兼容性兼容Windows2000之前的操作系统必须在Windows2000或之后的操作系统的域环境中NTLM对比Kerberos身份验证协议与微软操作系统NTLMKerberos微软产品