深入SSL协议的规范和运作原理

SSL协议是1994年由Netscape提出的网络安全通信协议,广泛应用于Web浏览器与服务器之间的安全传输。它通过数据加密、身份验证和消息完整性验证提供安全通道。SSL位于TCP/IP协议栈的传输层与应用层之间,服务于HTTP等应用层协议。其安全机制包括对称密钥算法保证数据传输的机密性,非对称密钥算法进行身份验证,以及MAC算法确保消息完整性。SSL的握手过程涉及算法选择、密钥交换和身份验证,确保通信双方的真实意图和数据安全。
摘要由CSDN通过智能技术生成

1、概述

  安全套接层(Secure Socket Layer, SSL)协议是 Netscape 公司于 1994 年提出的一个网络安全通信协议,是一种在两台机器之间提供安全通道的协议。它具有保护传输数据以及识别通信机器的功能。SSL 最初是通过加密 HTTP 连接为

Web浏览器提供安全而引入的,现在已成为通用Internet服务的安全工具,目前己被工业界认可,成为 IETF 的 RFC 草案,在电子邮件、Netscape Navigator 和IE等网络浏览器、Oracle Application Server 等服务器上已广泛应用。

  SSL在 TCP上提供一种通用的通道安全机制,任何可以在TCP上承载的协

议都能够使用 SSL加以保护。在 TCP/IP四层协议族中,SSL协议位于传输层与应用层之间, 基于可靠传输协议 TCP, 服务于各种应用层协议, 如 HTTP、 POP、TELNET 等,它们在 SSL 协议上运行分别被称作 HTTPS、POPS、TELNETS 协

议等,分别对应的端口号为443、995、992 等。当然,SSL协议最广泛的用途是

为 HTTP 提供安全保障,这也是它诞生的最初目的。

               SSL 在 TCP/IP 协议栈中的位置 /

SSL协议实现的安全机制包括: 

   1)数据传输的机密性:利用对称密钥算法对传输的数据进行加密。

网络上传输的数据很容易被非法用户窃取,SSL采用在通信双方之间建立加密通道的方法保证数据传输的机密性。所谓加密通道,是指发送方在发送数据前,使用加密算法和加密密钥对数据进行加密,然后将数据发送给对方;接收方接收到数据后,利用解密算法和解密密钥从密文中获取明文。没有解密密钥的第三方,无法将密文恢复为明文,从而保证数据传输的机密性。

加解密算法分为两类: 

   对称密钥算法:数据加密和解密时使用相同的密钥。 

   非对称密钥算法:数据加密和解密时使用不同的密钥,一个是公开的公钥,

一个是由用户秘密保存的私钥。利用公钥(或私钥)加密的数据只能用相应

的私钥(或公钥)才能解密。 

与非对称密钥算法相比,对称密钥算法具有计算速度快的优点,通常用于对大量信息进行加密(如对所有报文加密);而非对称密钥算法,一般用于数字签名和对较少的信息进行加密。 SSL加密通道上的数据加解密使用对称密钥算法,目前主要支持的算法有DES、3DES、AES等,这些算法都可以有效地防止交互数据被窃听。 

对称密钥算法要求解密密钥和加密密钥完全一致。因此,利用对称密钥算法加密传输数据之前,需要在通信两端部署相同的密钥。

   2)身份验证机制:基于证书利用数字签名方法对服务器和客户端进行身份验

证,其中客户端的身份验证是可选的。

电子商务和网上银行等应用中必须保证要登录的Web服务器是真实的,以免重要信息被非法窃取。SSL利用数字签名来验证通信对端的身份。 

非对称密钥算法可以用来实现数字签名。由于通过私钥加密后的数据只能利用对应的公钥进行解密,因此根据解密是否成功,就可以判断发送者的身份,如同发送者对数据进行了“签名”。例如,Alice使用自己的私钥对一段固定的信息加密后发给Bob,Bob利用Alice的公钥解密,如果解密结果与固定信息相同,那么就能够确认信息的发送者为Alice,这个过程就称为数字签名

SSL客户端必须验证SSL服务器的身份,SSL服务器是否验证SSL客户端的身份,

则由SSL服务器决定。SSL客户端和SSL服务器的身份验证过程,使用数字签名验证身份时,需要确保被验证者的公钥是真实的,否则,非法用户可

能会冒充被验证者与验证者通信。如错误!未找到引用源。所示,Cindy冒充

Bob,将自己的公钥发给Alice,并利用自己的私钥计算出签名发送给Alice,Alice利用“Bob”的公钥(实际上为Cindy的公钥)成功验证该签名,则Alice认为Bob的身份验证成功,而实际上与Alice通信的是冒充Bob的Cindy。SSL利用PKI提供的机制保证公钥的真实性 

                              伪造公钥

   3)消息完整性验证:消息传输过程中使用 MAC算法来检验消息的完整性。

为了避免网络中传输的数据被非法篡改,SSL利用基于MD5或SHA的MAC算法来

保证消息的完整性。 MAC算法是在密钥参与下的数据摘要算法,能将密钥和任意长度的数据转换为固定长度的数据。利用MAC算法验证消息完整性的过程如图2所示。发送者在密钥的参与下,利用MAC算法计算出消息的MAC值,并将其加在消息之后发送给接收者。接收者利用同样的密钥和MAC算法计算出消息的MAC值,并与接收到的MAC值比较。如果二者相同,则报文没有改变;否则,报文在传输过程中被修改,接收者将丢弃该报文。 

                         MAC算法示意图

MAC算法具有如下特征,使其能够用来验证消息的完整性: 

   消息的任何改变,都会引起输出的固定长度数据产生变化。通过比较 MAC

值,可以保证接收者能够发现消息的改变。 

   MAC 算法需要密钥的参与,因此没有密钥的非法用户在改变消息的内容后,

无法添加正确的 MAC值,从而保证非法用户无法随意修改消息内容。 

MAC算法要求通信双方具有相同的密钥,否则MAC值验证将会失败。因此,利用

MAC算法验证消息完整性之前,需要在通信两端部署相同的密钥。

 利用非对称密钥算法保证密钥本身的安全

对称密钥算法和MAC算法要求通信双方具有相同的密钥,否则解密或MAC值验证

将失败。因此,要建立加密通道或验证消息完整性,必须先在通信双方部署一致的密钥。 

SSL利用非对称密钥算法加密密钥的方法实现密钥交换,保证第三方无法获取该密钥。如图3所示,SSL客户端(如Web浏览器)利用SSL服务器(如Web服务器)的公钥加密密钥,将加密后的密钥发送给SSL服务器,只有拥有对应私钥的SSL服务器才能从密文中获取原始的密钥。SSL通常采用RSA算法加密传输密钥。 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值