HTTP和HTTPS的区别和联系

1. 简介

HTTPS在HTTP的基础上引入了一个TLS层,采用密文进行传输,结合对称加密技术和非对称加密技术来实现数据的安全性和完整性。

客户端会生成随机密钥,并使用服务端的公钥加密后再传给服务端。根据非对称加密算法,公钥加密的消息仅能通过私钥解密,这样服务端解密后,双方就得到了相同的密钥,再用它加密应用消息。(公钥如何获取:CA证书里)

  • CA证书:保证密钥发售者身份的真实性
  • 非对称加密技术:保证消息不被冒充
  • 对称密钥传送:保证消息不被泄露
  • 为什么要采用非对称加密技术:保证密钥分发给通信双方的安全性

2. TLS 握手过程

  1. 第一次握手:客户端首先会发一个「Client Hello」消息。消息里面有客户端使用的 TLS 版本号、支持的密码套件列表,以及生成的随机数(Client Random)
  2. 第二次握手:当服务端收到客户端的「Client Hello」消息后,会发送 「Server Hello」消息:包含确认 TLS 版本号是否支持,和从密码套件列表中选择一个密码套件,以及生成随机数(Server Random)。然后,服务端为了证明自己的身份,会发送「Server Certificate」给客户端,这个消息里含有数字证书。最后,服务端发了「Server Hello Done」消息,目的是告诉客户端,我已经把该给你的东西都给你了。客户端拿到证书后, 使用CA 公钥确认服务器的数字证书的真实性。
  3. 第三次握手:如果证书没有问题(通过 CA 的公钥解密),客户端会从数字证书中取出服务器的公钥,生成一个新的随机数 (pre-master),用服务器的 RSA 公钥加密该随机数。向服务器发送如下信息:随机数、加密算法改变通知、客户端握手结束通知。
  4. 第四次握手:服务端收到后,用 RSA 私钥解密,得到客户端发来的随机数。双方根据已经得到的三个随机数,生成会话密钥(Master Secret),它是对称密钥,用于对后续的 HTTP 请求/响应的数据加解密。然后,向客户端发送最后的信息:加密通信算法改变通知、服务器握手结束通知,表示服务器的握手阶段已经结束。

3. 常见的加密算法

3.1 对称加密算法

在对称加密算法中,加密和解密使用的是同一个密钥

AES (Advanced Encryption Standard):
AES是目前最广泛使用的对称加密标准之一,提供了128、192和256位的密钥长度,因其高度的安全性和效率,在许多安全协议和系统中被采用。

DES (Data Encryption Standard):
DES是较早的加密标准,使用56位密钥,因其密钥长度较短,已被认为不够安全,容易受到暴力破解攻击,已逐渐被AES所取代。
非对称加密算法

3.2 非对称加密算法

使用一对密钥,一个公钥用于加密,一个私钥用于解密

RSA (Rivest-Shamir-Adleman):
RSA是最早和最著名的非对称加密算法之一,广泛用于数据传输和数字签名。RSA的安全性基于大数分解的难题。

ECC (Elliptic Curve Cryptography):
ECC是基于椭圆曲线数学的一种加密技术,相比于RSA,ECC可以在较短的密钥长度下提供相同或更高的安全性,在移动设备和IoT设备中特别受欢迎。

  • 32
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值