SSL/TLS

一、背景

网上购物涉及账户安全信息等,需要使用安全传输才能保障账户的安全,这时就引入了SSL/TLS的概念

它与HTTPS的联系如下:

HTTPS = HTTP + SSL/TLS


二、SSL/TLS解决的几个问题及相关技术


1.确保数据在发送过程中不易被窃听

数据机密性问题需要:

(1) 对称密码

(2) 密钥不能被攻击者预测,需要伪随机数生成器产生密钥

(3) 公钥密码Diffie-Hellman密钥交换


2.确保数据完整性

(1) 消息认证码对数据进行认证,使用单向散列函数来实现


3.服务器认证

使用公钥加上数字签名所生成的证书


三、TLS协议


1.TLS协议包括TLS记录协议和TLS握手协议

2.TLS记录协议位于TLS协议的下层,负责使用对称密码对消息进行加密通信、压缩和数据认证

3.TLS记录协议的处理过程


其中报头 = 数据类型 + 版本号 + 压缩后的长度

4.TLS握手协议负责生成共享密钥和交换证书,过程如下:


(1) 客户端向服务器发送ClientHello消息

(2) 服务器响应ServerHello消息

(3) 服务器向客户端下发证书信息

(4) 当证书消息不足以满足认证需求时,服务器会再次发送ServerKeyExchange消息

(5) 如有必要,服务器向客户端请求证书验证客户端身份

(6) 服务器完成ServerHello响应

(7) 客户端向服务器发送证书

(8) 客户端向服务器发送预备主密码(一串随机数),该主密码使用服务器的公钥进行了加密,根据此预备主密码,客户端和服务器会生成相同的主密码,然后根据主密码生成以下比特序列:

a.对称密码的密钥

b.消息认证码的密钥

c.对称密码的CBC模式中使用的初始化向量

(9) 客户端向服务器表示自己是证书持有人

(10) 客户端准备切换密码

(11) 握手协议结束

(12) 服务器向客户端表示切换密码

(13) 服务器发送finish表示握手协议结束

(14) 切换到应用数据协议,使用协商的密钥进行对称加密进行通信


四、主密码

1.主密码的计算


(a) 客户端采用 RSA 或 Diffie-Hellman 等加密算法生成预备主密码;
(b) 预备主密码结合 random client 和 random server 两个随机数通过 PseudoRandomFunction(PRF)计算得到主密码;
(c) 主密码结合 random client 和 random server 两个随机数通过迭代计算得到加密密钥;


最后:

1.通过四次握手得到三个随机数
为什么这样做?
因为这样可以保证每次得到的随机数足够随机


2.客户端用服务端公钥加密后续将要加密通信的用来计算对称密钥的预备密钥
怎样保证该公钥就是此时通信的服务器的?
使用证书下发服务器的公钥,在此之前浏览器利用证书中的数字签名来校验此证书的合
法性


3.服务器用私钥解密客户端传上来的加密密钥
4.后续通过次密钥进行通信

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值