HTTPS协议与对称加密和非对称加密之间的结合

一、先提提HTTP协议

HTTP协议:超文本传输协议

是位于应用层的一种协议,主要用于分布式、协作式和超媒体信息系统。它是万维网(World Wide Web)数据通信的基础,允许用户代理(如浏览器)和Web服务器之间进行通信,以便传输数据,包括但不限于HTML文档、图像、视频以及其他各种类型的文件,HTTP协议通常只负责简单的请求和响应,其间的数据是明文传输,所以安全性很低。

HTTP协议定义了多种请求方法,如如GET、POST、PUT、DELETE、PATCH等,但是最常用的还是GET和POST

GET:更加侧重获取数据,如在网站上的翻页,点击某个板块等等

POST:侧重于提交数据,如网站的登陆,注册信息等等

概括为一种沟通的语言,客户端向服务器发送请求,服务器收到后响应。


二、HTTPS协议:

HTTPS协议是HTTP协议的一个更安全的版本,不是一个全新的协议,其通过SSL/TLS协议对传输的数据进行加密,一定程度上确保了用户和服务器之间交换的数据不被第三方篡改,保证数据的机密性和完整性。

对称加密:

对称加密算法使用单一密钥进行加密和解密操作,即加密数据的密钥与解密数据的密钥是相同的。

如:f(x)=x+1 加密

       g(x)=x-1 解密

这个密钥必须保密,并在发送方和接收方之间安全地共享。

特点:

加密速度相对快:由于加密和解密使用相同的密钥,计算量相对较小,适合加密大量数据。

密钥管理相对麻烦和不安全:双方都需要知道并妥善保管密钥,如果让第三方知道,那么数据将不再安全。

非对称加密:

对象:私钥和公钥;

如果用A的私钥加密,就只能用A的公钥解密;

如果用A的公钥机密,就只能用A的私钥解密。

特点:

加密速度相对慢:计算比较复杂,加密速度比较慢,不适合大量数据的加密。

相对安全:任何人都可以用公钥加密数据,但只有持有对应私钥的人才能正确解密,即使公钥被获取,也依然无法解密对应的数据

证书:

在数据传输加密中,需要用到一种数字证书,它是由受信任的证书颁发机构(CA)签发的,用于在网络上验证服务器身份,并在客户端(如浏览器)和服务器之间建立安全连接。

客户端向服务器发送请求时会查看服务器证书,服务器在某些场景也会查看客户端的证书,比如涉及金钱交易的网银场景。

在某些浏览器(如Google)URL栏的一侧会显示该连接是受信任的,安全的,没有证书则反之。


数据在传输中加密的过程

如图:Alice为发送者,Bob为接收者

public

Alice:

信息摘要=hash(原始信息)
数字签名=A_Private(摘要)
--------要传给Bob---------
加密信息=S_key(数字签名,原始信息,Alice的证书)
密钥信封=B_public(S_key)
Bob:

B_privete(密钥信封)=B_privete(B_public(S_key)) = S_key
S_key(加密信息) = S_key(S_key(数字签名,原始信息,Alice的证书)) = 数字签名,原始信息,Alice的证书(包含Alice的公钥,A_public)
收到的信息摘要 = hash(原始信息)
信息摘要 = A_public(数字签名)
收到的信息摘要 == 信息摘要?
 如果相等,就代表没有被篡改。


通过wireshark抓取数据包具体流程如下图:

HTTPS协议建立连接时,通过抓包也能看到会进行TCP握手

值得一提的是,HTTP/HTTPS协议的重定向机制,例如进入到网站是HTTPS协议的,但是输入的url是HTTP开头的,会自动重定向为HTTPS。

总结HTTPS协议两种加密之间的联系

HTTPS协议中,通过结合对称加密和非对称加密的优点来实现高效且安全的数据传输,比HTTP增加了一个TLS,TLS的作用就是弄出一个对称密钥,简单来说就是客户端与服务器首先通过非对称加密的方式交换一个对称密钥。接下来,客户端和服务器使用刚才交换的对称密钥进行数据的加密和解密,因为对称加密算法的性能更好,更适合大量数据的加解密。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值