一、SSL简介
1、概念
SSL (Secure Sockets Layer)安全套接层。是由Netscape公司于1990年开发,用于保障Word Wide Web(WWW)通讯的安全。主要任务是提供私密性,信息完整性和身份认证。1994年改版为SSLv2,1995年改版为SSLv3.
TLS(Transport Layer Security)安全传输层协议,)用于在两个通信应用程序之间提供保密性和数据完整性。该标准协议是由IETF于1999年颁布,整体来说TLS非常类似SSLv3,只是对SSLv3做了些增加和修改。
SSL全称为 Socket Security Layer,TLS全称为Transport Layer Security,这两者没有本质的区别,都是做的传输层之上的加密(介于传输层及应用层之间)。TLS是后续SSL版本分支的名称,花费长时间去争论两者的优劣没有意义。目前TLS最新版本为 TLS1.2(也称为SSL3.3)
2、所处位置
在传统的TCP/IP结构中的应用层和传输层中间有SSL,以达到信息加密等作用
3、SSL/TLS解决的问题
信息加密; 数据签名; CA数字证书认证
-
信息被窃听(wiretap),第三方随时随地获得通讯内容;
SSL/TLS 实现了传输信息的加密。
-
数据被篡改(tampering),第三方可修改传输中的数据;
SSL/TLS 实现了数据签名及校验。
-
身份被冒充(pretending),第三方可冒充通讯者身份传输数据;
SSL/TLS 采用了CA数字证书认证机制。
4、SSL知名协议
- HTTP over SSL(https)
TCP+443端口+SSL
加密网页浏览
二、原理
1、SSL协议结构
SSL的体系结构中包含两个协议子层:
-
底层是SSL记录协议层(SSL Record Protocol Layer)
作用:
1、高层协议提供基本的安全服务。
2、SSL记录协议针对HTTP协议进行了特别的设计,使得超文本的传输协议HTTP能够在SSL运行。
3、记录封装各种高层协议,具体实施压缩解压缩、加密解密、计算和校验MAC等与安全有关的操作。
-
高层是SSL握手协议层(SSL HandShake Protocol Layer)。
握手层的这些协议用于SSL管理信息的交换,允许应用协议传送数据之间相互验证,协商加密算法和生成密钥等。
SSL握手协议的作用是协调客户和服务器的状态,使双方能够达到状态的同步。
2、流程概括 -- 握手阶段
SSL/TLS是通过动态密钥来实现加密的。而动态密钥需要在握手阶段进行协商。 为了保证在握手阶段数据的保密性,不可避免的会用到 对称算法,非对称算法,数字证书签名等方法
一个SSL/TLS 握手过程需要协商的信息包括:
1 协议的版本号;
2 加密算法,包括非对称加密算法、动态密钥算法;
3 数字证书,传输双方通过交换证书及签名校验对彼此进行鉴权;
4 动态密钥,传输数据过程使用该密钥进行对称加解密,该密钥通过非对称密钥进行加密传输。
3、流程解析
一个典型的SSL/TLS 握手流程包括双向认证,如下所示:
2: server会发出client certificate requet。请求客户端的证书信息 ==> 校验客户端的身份 (双向校验)
参考文档:
https://blog.csdn.net/qq_38265137/article/details/90112705
https://www.cnblogs.com/littleatp/p/6219630.html
如果本篇博客有任何错误和建议,欢迎大佬们批评指正
我是知逆,我们下期见
Peace