HTTPS

HTTP

http是超文本传输协议,工作在tcp协议之上

HTTPS

https是安全的超文本传输协议
https由2部分组成 http协议+tls协议

TLS

tls是安全传输层协议,
要保证安全就要实现安全的5要素:

可用性 - 劫持
机密性 - 私钥加密,公钥解密
真实性 - 中间人
完整性 - hash校验
不可否认性 - 私钥签名,公钥验证签名

包括 密钥管理,密钥协商,加密管理,签名管理,认证管理
5步分2层实现:
握手协议和加密协议
TLS有4次握手,握手成功后,才可以利用握手协议协商好的密钥进行加密

密钥管理

用于分发公钥,保证公钥是可信任的
防止任何人都可以伪造公钥进行欺骗。

密钥协商/密钥交换

非对称密钥进行密钥管理和协商
确保加密密钥只有双方知道,这样信息只有双方可以加解密,即便信息被旁路,也无法解密获得明文。

加密管理

对称加密算法进行加密,因为非对称加密算法的加密效率不如对称加密算法。但是安全性好于对称加密算法。
对传输内容进行加密,只有双方可以解密,可以保证信息
机密性

签名管理

不可否认
私钥签名,公钥解密验证签名

认证管理

对传输信息进行哈希认证,任何人修改了信息,都会导致哈希不一致,破坏信息的完整性。如果哈希和内容一致,那么可以说内容没有被篡改过,可以保证完整性。同时校验过的信息也有一定的真实性
信息完整性、真实性

TLS的流程

TLS的初衷是一次一密,也就是交换一次数据,变一次密钥。

  1. 客户端发起请求 CLIENT HELLO

    CLIENT HELLO 携带的信息应该包括如下:

     版本  TLS1.0  TLS 1.1
     支持的协议 RSA EC2 DH  AES  DES 3DES
     随机数
     压缩算法(可选)
     sessionId(重用加密密钥,在sessionId有效期内,都不需要重新生成加密密钥,直接使用上次协商好的)
    
  2. 服务器响应公钥 SERVER HELLO

    SERVER HELLO携带的信息应该包括:

     版本  TLS1.0 TLS1.1
     从客户给的选项中选择的协议 RSA  AES DES  3DES
     服务器的证书(公钥)
     随机数
     压缩算法(可选)
    
  3. 客户端

    验证服务器的证书是否有效,
    客户端根据两个随机数生成加密密钥,
    使用服务器的公钥将加密密钥加密,签名,hash,压缩发送给服务器

  4. 服务器用私钥解密得到机密密钥

    服务器根据自己的私钥解密客户端发来的加密密钥,握手完成

HTTPS的流程

  1. tcp握手
  2. tls握手 得到加密密钥
  3. http报文交换 用上一步得到的加密密钥加密/解密
  4. tcp断开

相关概念

对称加密算法

加解密使用同一个密钥,通信双方使用1个密钥

AES

DES

3DES

RC4

非对称加密算法

加解密使用一对密钥,称为公钥和私钥,通信双方各一对密钥,a用b的公钥给发送给b的信息加密,a用a的私钥解密b发给a的信息。
公钥公开,私钥私有
公钥推导不出私钥
用公钥加密,私钥解密
私钥签名,公钥验证

RSA

EC

DH

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值