本文给大家介绍一下著名的网络安全协议SSL,如果有需要的朋友可以参考学习,希望以下的分享对您的学习有所帮助。
安全套接字协议(Secure Socket Layer,SSL)是web浏览器与Web服务器之间安全交换的信息的协议。提供两个基本的安全服务:鉴别与保密。
SSL是Netscape于1994年开发的,后来成为了世界上著名的web安全机制,所有主要浏览器都支持SSL协议。
SSL协议由两层组成,分别是握手协议层和记录协议层。握手协议建立在记录协议之上,此外,还有警告协议、更改密码说明协议和应用数据协议等对话协议和管理提供支持的子协议。SSL协议的组成及其TCP/IP中的位置如图所示:
在图中的每一层,包括长度、描述和内容字段。SSL发出消息是将数据分为可管理的块、压缩、使用MAC和加密并发出加密结果。接受消息需要解密、验证、解压和重组、再把结果发往更高一层的客户。
1)记录协议
具有实现压缩/解压缩、加密/解密、计算机MAC等与安全有关的操作。建立之上的还有:
更改密码说明协议:此协议由一条消息组成,可由客户端或服务器发送,通知接收方后面的记录将被新协商的密码说明和密钥保护;接收方获得此消息后,立即指示记录层把即将读状态变成当前读状态;发送方发送此消息后,应立即指示记录层把即将写状态变成当前写状态。
警告协议:警告消息传达消息的严重性并描述警告。一个致命的警告将立即终止连接。与其他消息一样,警告消息在当前状态下被加密和压缩。警告消息有以下几种:
关闭通知消息、意外消息、错误记录MAC消息、解压失败消息、握手失败消息、无证书消息、错误证书消息、不支持的证书消息、证书撤回消息、证书过期消息、证书未知和参数非法消息等。
应用数据协议:将应用数据直接传递给记录协议。
2)握手协议
SSL握手协议握手协议是用来在客户端和服务端传输应用数据而数据建立的安全通信机制。
算法协商:首次通信时,双方通过握手协议协商密钥加密算法、数据加密算法和文摘算法。
身份验证:在密钥协商完成后,客户端与服务器端通过证书互相验证对方的身份。
确定密钥:最后使用协商好的密钥交换算法产生一个只有双方知道的秘密信息,客户端和服务器端各自根据这个秘密信息确定数据加密算法的参数(一般是密钥)。由此可见,SSL协议是端对端的通信安全协议。
SSL协议的三个特征:
1)保密:在握手协议中定义了会话密钥后,所有的消息都被加密。
2)鉴别:在可选的客户端认证,和强制的服务器端认证。
3)传送的消息包括消息完整性检查(使用MAC)。
SSL安全优势
1)监听和中间人式攻击
SSL使用一个经过通信双方协商确定的加密算法和密钥,对不同的安全级别应用都可找到不同的加密算法,从而用于数据加密。它的密钥管理处理比较好,在每次连接时通过产生一个密码杂凑函数生成一个临时使用的会话密钥,除了不同连接使用不同密钥外,在一次连接的两个传输方向上也使用各自的密钥。尽管SSL协议为箭筒这提供了很多明文,但由于采用RSA交换密钥具有较好的密钥保护性能,以及频繁更换密钥的特点,因此对监听和中间人式攻击而言,具有较高的防范性。
2)流量数据分析式攻击
流量数据分析式攻击的核心是通过检查数据包的未加密字段或未加保护的数据包属性,试图进行攻击。在一般情况下该攻击是无害的,SSL无法阻止这种攻击。
3)截取再拼接式攻击
对需要较强的连接加密,需要考虑这种安全性。SSL V3.0基本上可阻止这种攻击。
4)报文重发式攻击
报文重发式攻击比较容易阻止,SSL通过在MAC数据包中包含“系列号”来防止该攻击。
在上网的时候,有些网友发现,浏览器提示SSL协议未开启?这是怎么回事?该怎么解决这个问题?
之所以提示SSL协议未开启主要是基于网页在Internet选项中修改,如果是服务器的话,应该是服务没有开启或者SSL模块的问题。
我们看看解决方法:
1)首先打开浏览器,找到工具→Internet选项
2)找到高级选项卡下面的使用SSL 3.0勾选之后点击保存即可。
今天的讲解,不知大家都懂了吗?阅读更多的文章,欢迎登陆编程学习网教育或关注公众号【编程学习网】/【编程学习网IT精品课程】。