发展
--1995:网景公司推出SSL3.0协议
--1999:TLS1.0
--2006:TLS1.1
--2008: TLS1.2
--2018: TLS1.3
SSL
: Secure Sockets Layer
TLS
: Transport Layer Security
ISO/OSI
模型
应用层:HTTP协议
表示层:SSL协议在这里展开,在HTTP协议无感的情况下,对明文加密,包括握手、密钥交换、告警、对称加密
会话层:
传输层:
网路层:
数据链路层:
物理层
TLS
安全密码
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
ECDHE:密钥交换,椭圆曲线加密算法,保证浏览器和服务器之间各自独立生成密钥,使用密钥加密数据
RSA:身份验证
密码:AES:算法+128:强度+GCM:模式
SHA256:MAC或PRE,摘要算法,把不定长度字符串生成不定长度的摘要
对称加密
使用同一个密钥进行加密或解密
优点是性能好
非对称加密
公钥+私钥
使用公钥加密,使用私钥解密
使用私钥加密,使用公钥解密
公信机构
CA:公信机构
证书订阅人:服务器站点
--证书订阅人:发送CSR, request certificate issuance登记机构
--登记机构:发送request certificate issuane给CA
--CA:发布公钥和私钥,公钥在证书里保存着,交给登记机构
--登记机构:把公钥和私钥交给证书订阅人
--订阅人:把证书部署到服务器
--浏览器:请求证书
--服务器:发布公钥证书给浏览器
--CA通过CRL服务器,或者OCSP响应判断证书是否有效
证书类型
--域名验证,domain validated, DV证书,只要域名指向的IP是申请证书的服务器,实时获取
--组织验证,organization validated, OV证书,企业名称,需要几天时间,
--扩展验证,extended validation,EV证书,在浏览器会显示公司名称
证书链。Nginx
向浏览器发送证书时,发送站点的主证书,再发送二级证书。
--根证书:被操作系统或浏览器内置
--二级证书
--主证书
TLS
通讯过程
--四个目的
验证身份
达成安全套件共识
传递密钥
加密通讯
--具体过程
-浏览器:发送ClientHello, 告诉服务器支持的加密类型,随机数,SessionID,告诉浏览器哪个加密算法套件
-服务器:发送ServerHello, 告诉浏览器支持的加密算法套件
-服务器:把公钥证书发送给浏览器,包含证书链
-浏览器:验证证书
-服务器:ServerHelloDone,比如安全套件中的椭圆曲线算法,把相关参数发送给浏览器,服务器有自己的私钥,把公钥发送给浏览器
-浏览器:根据参数生成私钥,把公钥发送给服务器
-服务器和浏览器:使用公钥和密钥进行加密解密