版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、SSL 网络安全技术白皮书关键词:SSL,PKI,MAC摘 要:SSL利用数据加密、身份验证和消息完整性验证机制,为基于TCP等可靠连接的应用层协议提供安全性保证。本文介绍了SSL的产生背景、安全机制、工作过程及典型组网应用。缩略语:缩略语英文全名中文解释AESAdvanced Encryption Standard高级加密标准CACertificate Authority证书机构DESData Encryption Standard数据加密标准HTTPSHypertext Transfer Protocol Secure安全超文本传输协议MACMessage Authentication C
2、ode消息验证码MD5Message Digest 5消息摘要算法5PKIPublic Key Infrastructure公钥基础设施RSARivest Shamir and Adleman非对称密钥算法的一种SHASecure Hash Algorithm安全散列算法SSLSecure Sockets Layer安全套接层VPNVirtual Private Network虚拟专有网络目 录 HYPERLINK l _bookmark0 概述 HYPERLINK l _bookmark0 3 HYPERLINK l _bookmark0 产生背景 HYPERLINK l _bookmark
3、0 3 HYPERLINK l _bookmark0 技术优点 HYPERLINK l _bookmark0 3 HYPERLINK l _bookmark0 协议安全机制 HYPERLINK l _bookmark0 3 HYPERLINK l _bookmark1 数据传输的机密性 HYPERLINK l _bookmark1 4 HYPERLINK l _bookmark1 身份验证机制 HYPERLINK l _bookmark1 4 HYPERLINK l _bookmark2 消息完整性验证 HYPERLINK l _bookmark2 5 HYPERLINK l _bookmar
4、k3 利用非对称密钥算法保证密钥本身的安全 HYPERLINK l _bookmark3 6 HYPERLINK l _bookmark4 利用PKI保证公钥的真实性 HYPERLINK l _bookmark4 7 HYPERLINK l _bookmark5 协议工作过程 HYPERLINK l _bookmark5 8 HYPERLINK l _bookmark5 SSL的分层结构 HYPERLINK l _bookmark5 8 HYPERLINK l _bookmark5 SSL握手过程 HYPERLINK l _bookmark5 8 HYPERLINK l _bookmark6
5、只验证服务器的SSL握手过程 HYPERLINK l _bookmark6 9 HYPERLINK l _bookmark7 验证服务器和客户端的SSL握手过程 HYPERLINK l _bookmark7 11 HYPERLINK l _bookmark8 恢复原有会话的SSL握手过程 HYPERLINK l _bookmark8 12 HYPERLINK l _bookmark9 典型组网应用 HYPERLINK l _bookmark9 13 HYPERLINK l _bookmark9 HTTPS HYPERLINK l _bookmark9 13 HYPERLINK l _bookm
6、ark9 SSL VPN HYPERLINK l _bookmark9 13 HYPERLINK l _bookmark10 参考文献 HYPERLINK l _bookmark10 14概述产生背景基于万维网的电子商务和网上银行等新兴应用,极大地方便了人们的日常生活,受到人们的青睐。由于这些应用都需要在网络上进行在线交易,它们对网络通信的安全性提出了更高的要求。传统的万维网协议HTTP不具备安全机制采用明文的形式传输数据、不能验证通信双方的身份、无法防止传输的数据被篡改等,导致HTTP无法满足电子商务和网上银行等应用的安全性要求。Netscape公司提出的安全协议SSL,利用数据加密、身份验
7、证和消息完整性验证机制,为网络上数据的传输提供安全性保证。SSL可以为HTTP提供安全连接,从而很大程度上改善了万维网的安全性问题。技术优点SSL具有如下优点:提供较高的安全性保证。SSL 利用数据加密、身份验证和消息完整性验证机制,保证网络上数据传输的安全性。支持各种应用层协议。虽然 SSL 设计的初衷是为了解决万维网安全性问题, 但是由于 SSL 位于应用层和传输层之间,它可以为任何基于 TCP 等可靠连接的应用层协议提供安全性保证。部署简单。目前 SSL 已经成为网络中用来鉴别网站和网页浏览者身份,在浏览器使用者及 Web 服务器之间进行加密通信的全球化标准。SSL 协议已被集成到大部分
8、的浏览器中,如 IE、Netscape、Firefox 等。这就意味着几乎任意一台装有浏览器的计算机都支持 SSL 连接,不需要安装额外的客户端软件。协议安全机制SSL协议实现的安全机制包括:数据传输的机密性:利用对称密钥算法对传输的数据进行加密。身份验证机制:基于证书利用数字签名方法对服务器和客户端进行身份验证,其中客户端的身份验证是可选的。消息完整性验证:消息传输过程中使用 MAC 算法来检验消息的完整性。数据传输的机密性网络上传输的数据很容易被非法用户窃取,SSL采用在通信双方之间建立加密通道的方法保证数据传输的机密性。所谓加密通道,是指发送方在发送数据前,使用加密算法和加密密钥对数据进
9、行加密,然后将数据发送给对方;接收方接收到数据后,利用解密算法和解密密钥从密文中获取明文。没有解密密钥的第三方,无法将密文恢复为明文,从而保证数据传输的机密性。加解密算法分为两类:对称密钥算法:数据加密和解密时使用相同的密钥。非对称密钥算法:数据加密和解密时使用不同的密钥,一个是公开的公钥, 一个是由用户秘密保存的私钥。利用公钥(或私钥)加密的数据只能用相应的私钥(或公钥)才能解密。与非对称密钥算法相比,对称密钥算法具有计算速度快的优点,通常用于对大量信息进行加密(如对所有报文加密);而非对称密钥算法,一般用于数字签名和对较少的信息进行加密。SSL加密通道上的数据加解密使用对称密钥算法,目前主
10、要支持的算法有DES、3DES、AES等,这些算法都可以有效地防止交互数据被窃听。对称密钥算法要求解密密钥和加密密钥完全一致。因此,利用对称密钥算法加密传输数据之前,需要在通信两端部署相同的密钥。对称密钥的部署方法请参见“ HYPERLINK l _bookmark3 2.4 HYPERLINK l _bookmark3 利用非对称密钥算法保证密钥本身的安全”。身份验证机制电子商务和网上银行等应用中必须保证要登录的Web服务器是真实的,以免重要信息被非法窃取。SSL利用数字签名来验证通信对端的身份。非对称密钥算法可以用来实现数字签名。由于通过私钥加密后的数据只能利用对应的公钥进行解密,因此根据
11、解密是否成功,就可以判断发送者的身份,如同发送者对数据进行了“签名”。例如,Alice使用自己的私钥对一段固定的信息加密后发给Bob,Bob利用Alice的公钥解密,如果解密结果与固定信息相同,那么就能够确认信息的发送者为Alice,这个过程就称为数字签名。SSL客户端必须验证SSL服务器的身份,SSL服务器是否验证SSL客户端的身份, 则由SSL服务器决定。SSL客户端和SSL服务器的身份验证过程,请参见“ HYPERLINK l _bookmark5 3.2 HYPERLINK l _bookmark5 SSL握手过程”。InternetAliceBobCindy冒充Bob,将自己的公钥发
12、给Alice使用数字签名验证身份时,需要确保被验证者的公钥是真实的,否则,非法用户可能会冒充被验证者与验证者通信。如错误!未找到引用源。所示, Cindy冒充Bob,将自己的公钥发给Alice,并利用自己的私钥计算出签名发送给Alice,Alice 利用“Bob”的公钥(实际上为Cindy的公钥)成功验证该签名,则Alice认为Bob 的身份验证成功,而实际上与Alice通信的是冒充Bob的Cindy。SSL利用PKI提供的机制保证公钥的真实性,详细介绍请参见“ HYPERLINK l _bookmark4 2.5 HYPERLINK l _bookmark4 利用PKI保证公钥的真实性”。C
13、indy图1 伪造公钥消息完整性验证为了避免网络中传输的数据被非法篡改,SSL利用基于MD5或SHA的MAC算法来保证消息的完整性。MAC算法是在密钥参与下的数据摘要算法,能将密钥和任意长度的数据转换为固定长度的数据。利用MAC算法验证消息完整性的过程如 HYPERLINK l _bookmark3 图2所示。发送者在密钥的参与下,利用MAC算法计算出消息的MAC值,并将其加在消息之后发送给接收者。接收者利用同样的密钥和MAC算法计算出消息的MAC值,并与接收到的MAC 值比较。如果二者相同,则报文没有改变;否则,报文在传输过程中被修改,接收者将丢弃该报文。图2 MAC算法示意图MAC算法具有
14、如下特征,使其能够用来验证消息的完整性:消息的任何改变,都会引起输出的固定长度数据产生变化。通过比较 MAC值,可以保证接收者能够发现消息的改变。MAC 算法需要密钥的参与,因此没有密钥的非法用户在改变消息的内容后, 无法添加正确的 MAC 值,从而保证非法用户无法随意修改消息内容。MAC算法要求通信双方具有相同的密钥,否则MAC值验证将会失败。因此,利用MAC算法验证消息完整性之前,需要在通信两端部署相同的密钥。MAC密钥的部署方法请参见“ HYPERLINK l _bookmark3 2.4 HYPERLINK l _bookmark3 利用非对称密钥算法保证密钥本身的安全”。利用非对称密
15、钥算法保证密钥本身的安全对称密钥算法和MAC算法要求通信双方具有相同的密钥,否则解密或MAC值验证将失败。因此,要建立加密通道或验证消息完整性,必须先在通信双方部署一致的密钥。SSL利用非对称密钥算法加密密钥的方法实现密钥交换,保证第三方无法获取该密钥。如 HYPERLINK l _bookmark3 图3所示,SSL客户端(如Web浏览器)利用SSL服务器(如Web服务器) 的公钥加密密钥,将加密后的密钥发送给SSL服务器,只有拥有对应私钥的SSL服务器才能从密文中获取原始的密钥。SSL通常采用RSA算法加密传输密钥。图3 密钥交换示意图实际上,SSL 客户端发送给 SSL 服务器的密钥不能
16、直接用来加密数据或计算 MAC 值,该密钥是用来计算对称密钥和 MAC 密钥的信息,称为 premaster secret。SSL 客户端和 SSL 服务器利用 premaster secret 计算出相同的主密钥( master secret),再利用 master secret 生成用于对称密钥算法、MAC 算法等的密钥。premaster secret 是计算对称密钥、MAC 算法密钥的关键。用来实现密钥交换的算法称为密钥交换算法。非对称密钥算法 RSA 用于密钥交换时,也可以称之为密钥交换算法。利用非对称密钥算法加密密钥之前,发送者需要获取接收者的公钥,并保证该公钥确实属于接收者,否则
17、,密钥可能会被非法用户窃取。如错误!未找到引用源。所示,Cindy冒充Bob,将自己的公钥发给Alice,Alice利用Cindy的公钥加密发送给Bob的数据,Bob由于没有对应的私钥无法解密该数据,而Cindy截取数据后,可以利用自己的私钥解密该数据。SSL利用PKI提供的机制保证公钥的真实性,详细介绍请参见“ HYPERLINK l _bookmark4 2.5 HYPERLINK l _bookmark4 利用PKI保证公钥的真实性”。利用PKI保证公钥的真实性PKI通过数字证书来发布用户的公钥,并提供了验证公钥真实性的机制。数字证书(简称证书)是一个包含用户的公钥及其身份信息的文件,证
18、明了用户与公钥的关联。数字证书由权威机构CA签发,并由CA保证数字证书的真实性。SSL客户端把密钥加密传递给SSL服务器之前,SSL服务器需要将从CA获取的证书发送给SSL客户端,SSL客户端通过PKI判断该证书的真实性。如果该证书确实属于SSL服务器,则利用该证书中的公钥加密密钥,发送给SSL服务器。验证SSL服务器/SSL客户端的身份之前,SSL服务器/SSL客户端需要将从CA获取的证书发送给对端,对端通过PKI判断该证书的真实性。如果该证书确实属于SSL 服务器/SSL客户端,则对端利用该证书中的公钥验证SSL服务器/SSL客户端的身份。协议工作过程SSL的分层结构图4 SSL协议分层如
19、 HYPERLINK l _bookmark5 图4所示,SSL位于应用层和传输层之间,它可以为任何基于TCP等可靠连接的应用层协议提供安全性保证。SSL协议本身分为两层:上层为 SSL 握手协议(SSL handshake protocol)、SSL 密码变化协议( SSL change cipher spec protocol )和 SSL 警告协议( SSL alert protocol);底层为 SSL 记录协议(SSL record protocol)。其中:SSL 握手协议:是 SSL 协议非常重要的组成部分,用来协商通信过程中使用的加密套件(加密算法、密钥交换算法和 MAC 算法
20、等)、在服务器和客户端之间安全地交换密钥、实现服务器和客户端的身份验证。SSL 密码变化协议:客户端和服务器端通过密码变化协议通知对端,随后的报文都将使用新协商的加密套件和密钥进行保护和传输。SSL 警告协议:用来向通信对端报告告警信息,消息中包含告警的严重级别和描述。SSL 记录协议:主要负责对上层的数据(SSL 握手协议、SSL 密码变化协议、SSL 警告协议和应用层协议报文)进行分块、计算并添加 MAC 值、加密,并把处理后的记录块传输给对端。SSL握手过程SSL通过握手过程在客户端和服务器之间协商会话参数,并建立会话。会话包含的主要参数有会话ID、对方的证书、加密套件(密钥交换算法、数
21、据加密算法和MAC算法等)以及主密钥(master secret)。通过SSL会话传输的数据,都将采用该会话的主密钥和加密套件进行加密、计算MAC等处理。不同情况下,SSL握手过程存在差异。下面将分别描述以下三种情况下的握手过程:只验证服务器的 SSL 握手过程验证服务器和客户端的 SSL 握手过程恢复原有会话的 SSL 握手过程只验证服务器的SSL握手过程Client HelloServer HelloCertificateServer Hello DoneClient Key ExchangeChange Cipher SpecFinishedChange Cipher SpecFinis
22、hedSSL clientSSL server图5 只验证服务器的SSL握手过程如 HYPERLINK l _bookmark6 图5所示,只需要验证SSL服务器身份,不需要验证SSL客户端身份时,SSL的握手过程为:SSL 客户端通过 Client Hello 消息将它支持的 SSL 版本、加密算法、密钥交换算法、MAC 算法等信息发送给 SSL 服务器。SSL 服务器确定本次通信采用的 SSL 版本和加密套件,并通过 Server Hello 消息通知给 SSL 客户端。如果 SSL 服务器允许 SSL 客户端在以后的通信中重用本次会话,则 SSL 服务器会为本次会话分配会话 ID,并通过
23、 Server Hello 消息发送给 SSL 客户端。SSL 服务器将携带自己公钥信息的数字证书通过 Certificate 消息发送给 SSL客户端。SSL 服务器发送 Server Hello Done 消息,通知 SSL 客户端版本和加密套件协商结束,开始进行密钥交换。SSL 客户端验证 SSL 服务器的证书合法后,利用证书中的公钥加密 SSL 客户端随机生成的 premaster secret,并通过 Client Key Exchange 消息发送给SSL 服务器。SSL 客户端发送 Change Cipher Spec 消息,通知 SSL 服务器后续报文将采用协商好的密钥和加密套
24、件进行加密和 MAC 计算。SSL 客户端计算已交互的握手消息(除 Change Cipher Spec 消息外所有已交互的消息)的 Hash 值,利用协商好的密钥和加密套件处理 Hash 值(计算并添加 MAC 值、加密等),并通过 Finished 消息发送给 SSL 服务器。SSL 服务器利用同样的方法计算已交互的握手消息的 Hash 值,并与 Finished 消息的解密结果比较,如果二者相同,且 MAC 值验证成功,则证明密钥和加密套件协商成功。同样地,SSL 服务器发送 Change Cipher Spec 消息,通知 SSL 客户端后续报文将采用协商好的密钥和加密套件进行加密和
25、MAC 计算。SSL 服务器计算已交互的握手消息的 Hash 值,利用协商好的密钥和加密套件处理 Hash 值(计算并添加 MAC 值、加密等),并通过 Finished 消息发送给 SSL 客户端。SSL 客户端利用同样的方法计算已交互的握手消息的Hash 值,并与 Finished 消息的解密结果比较,如果二者相同,且 MAC 值验证成功,则证明密钥和加密套件协商成功。SSL客户端接收到SSL服务器发送的Finished消息后,如果解密成功,则可以判断SSL服务器是数字证书的拥有者,即SSL服务器身份验证成功,因为只有拥有私钥的SSL服务器才能从Client Key Exchange消息中
26、解密得到premaster secret,从而间接地实现了SSL客户端对SSL服务器的身份验证。说明:Change Cipher Spec 消息属于 SSL 密码变化协议,其他握手过程交互的消息均属于 SSL 握手协议,统称为 SSL 握手消息。计算 Hash 值,指的是利用 Hash 算法(MD5 或 SHA)将任意长度的数据转换为固定长度的数据。验证服务器和客户端的SSL握手过程Client HelloServer HelloCertificateCertificate RequestServer Hello DoneCertificateClient Key ExchangeCertif
27、icate VerifyChange Cipher SpecFinishedChange Cipher SpecFinishedSSL clientSSL server图6 验证服务器和客户端的SSL握手过程SSL客户端的身份验证是可选的,由SSL服务器决定是否验证SSL客户端的身份。如 HYPERLINK l _bookmark7 图6中蓝色部分标识的内容所示,如果SSL服务器验证SSL客户端身份,则SSL 服务器和SSL客户端除了交互“ HYPERLINK l _bookmark6 3.2.1 HYPERLINK l _bookmark6 只验证服务器的SSL握手过程”中的消息协商密钥和加
28、密套件外,还需要进行以下操作:SSL 服务器发送 Certificate Request 消息,请求 SSL 客户端将其证书发送给SSL 服务器。SSL 客户端通过 Certificate 消息将携带自己公钥的证书发送给 SSL 服务器。SSL 服务器验证该证书的合法性。SSL 客户端计算已交互的握手消息、主密钥的 Hash 值,利用自己的私钥对其进行加密,并通过 Certificate Verify 消息发送给 SSL 服务器。SSL 服务器计算已交互的握手消息、主密钥的 Hash 值,利用 SSL 客户端证书中的公钥解密 Certificate Verify 消息,并将解密结果与计算出的
29、Hash 值比较。如果二者相同,则 SSL 客户端身份验证成功。恢复原有会话的SSL握手过程Client HelloServer HelloChange Cipher SpecFinishedChange Cipher SpecFinishedSSL clientSSL server图7 恢复原有会话的SSL握手过程协商会话参数、建立会话的过程中,需要使用非对称密钥算法来加密密钥、验证通信对端的身份,计算量较大,占用了大量的系统资源。为了简化SSL握手过程, SSL允许重用已经协商过的会话,具体过程为:SSL 客户端发送 Client Hello 消息,消息中的会话 ID 设置为计划重用的会话的 ID。SSL 服务器如果允许
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 货运公司防火门施工合同
- 会计师事务所劳动合同样本
- 常州教育培训机构租赁合同
- 园林绿化模板施工承包合同
- 家具公司企业规划
- 钢铁厂电工知识安全培训
- 2024年建筑施工合同及工程监理协议
- 食品安全中的重金属
- 施工员年终总结范例(15篇)
- 工作培训感言(3篇)
- 2023年天津公务员已出天津公务员考试真题
- 2025年高考数学专项题型点拨训练之初等数论
- 上海市浦东新区2024-2025学年六年级上学期11月期中数学试题(无答案)
- 教科版三年级科学上册《第1单元第1课时 水到哪里去了》教学课件
- 通信技术工程师招聘笔试题与参考答案(某世界500强集团)2024年
- 国际贸易术语2020
- 国网新安规培训考试题及答案
- 2024至2030年中国节流孔板组数据监测研究报告
- 黑龙江省哈尔滨市师大附中2024-2025学年高一上学期10月阶段性考试英语试题含答案
- 第六单元测试卷-2024-2025学年统编版语文三年级上册
- 【课件】Unit4+Section+B+(Project)课件人教版(2024)七年级英语上册
评论
0/150
提交评论