HTTPS通信原理-证书交换

TLS握手过程

握手简述(以RSA为例):

  • client hello:客户端给出TLS协议版本号,支持的加密算法、随机数Client random、扩展字段
  • server hello:服务端确认双方可支持的加密算法,并把数字证书下发给客户端。同时也会生成一个随机数Server random
  • 客户端验证证书的有效性,并重新生成一个随机数Pre-main secret,使用证书中的公钥加密随机数,发送给服务端
  • 服务端使用私钥获取随机数
  • 客户端与服务端根据约定的加密算法,使用前面的三个随机数,生成对话密钥Session key,用来加密后续会话。

TLS需要知道的名词

1.会话密钥Session key
这是握手的最终结果。它是对称密码的密钥,并允许客户端和服务器相互加密消息。

2.客户端随机Client random
这是由客户端创建的32个字节的序列。它对于每个连接都是唯一的,并且应该包含四个字节的时间戳,后跟28个随机字节。最近,谷歌浏览器切换为使用32个字节的随机数,以防止客户端指纹。这些随机值通常称为随机数(nonce)。

3.服务器随机数(Server random)
服务器随机数与客户端随机数相同,只是服务器生成的随机数相同。

4.Pre-main密钥(Pre-main secret)
这是一个48字节的数据块。它可以与客户端随机变量和服务器随机变量结合使用,以使用“伪随机函数”(PRF)创建会话密钥(Session key)。

5.密码套件Cipher suite

CipherSpecs 用于认证加密算法和信息摘要算法的组合,通信双方必须同意这个密码规范才能进行通信。而 CipherSuites 则定义了 SSL / TLS 安全连接中所使用的加密算法的组合,该组合包含三种不同的算法:

  • 握手期间所使用的的密钥交换和认证算法 (最常用的是 RSA 算法)
  • 加密算法 (用于握手完成后的对称加密,常用的有 AES、3DES等)
  • 信息摘要算法 (常用的有 SHA-256、SHA-1 和 MD5 等)

CipherSuites是用于组合构成TLS连接的算法的唯一标识符。它为以下列出的每个功能定义一种算法:

  • 密钥建立(通常是Diffie-Hellman变体或RSA)
  • 认证(证书类型)
  • 机密性(对称密码)
  • 完整性(哈希函数)

例如,密码套件是“ ECDHE-ECDSA-AES256-GCM-SHA384”,它定义了一个使用以下内容的会话:

  • Elliptic Curve Diffie-Hellman Ephemeral(ECDHE)密钥交换以建立密钥
  • Elliptic Curve Digital Signature Algorithms(ECDSA)进行身份验证
  • 256-bit Advanced Encryption Standard in Galois/Counter mode (GCM) 用于确保机密性
  • 384位的SHA(安全哈希算法)确保完整性

RSA握手

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HTTPSHTTP(Hypertext Transfer Protocol)协议的加密版本,它是超文本传输协议在安全层面上的升级,主要用来保护数据传输的安全,防止数据被窃取或篡改。HTTPS的工作原理大致包括以下几个关键步骤: 1. **SSL/TLS握手**: 客户端(浏览器)发起一个HTTPS连接请求,会首先发送一个“ClientHello”消息给服务器,请求使用SSL/TLS进行加密通信。服务器收到后返回一个包含服务器证书、公钥和服务器支持的加密算法列表的“ServerHello”消息。 2. **证书验证**: 客户端验证服务器证书,确保证书是由受信任的CA(Certificate Authority,证书颁发机构)签发的,并且证书中的域名与请求的URL匹配。这个过程确认服务器的身份。 3. **密钥交换**: 服务器使用私钥对一个预定义的随机数(称为“ premaster secret”)进行签名,生成一个共享的加密密钥(session key),用于后续的数据加密。 4. **加密通信**: 使用共享的session key,客户端和服务器之间开始使用TLS套件中的对称加密算法(如AES)进行数据的加密传输,保证了数据的机密性。 5. **数据传输**: 加密后的HTTP请求和响应在双方之间交换,只有拥有正确密钥的客户端和服务器才能解密并读取内容。 6. **完整性校验**: 除了加密,HTTPS还使用哈希函数(如SHA-1或SHA-256)对数据进行校验,确保在传输过程中数据没有被篡改。 7. **访问控制**: HTTPS还可以结合服务器配置的HSTS(HTTP Strict Transport Security)策略,强制客户端始终使用HTTPS连接,提高安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值