计算机网络(6) --- https协议

计算机网络(5) --- http协议_哈里沃克的博客-CSDN博客http协议https://blog.csdn.net/m0_63488627/article/details/132089130?spm=1001.2014.3001.5501

目录

1.HTTPS的出现

1.HTTPS协议介绍

2.补充概念

1.加密

1.解释

2.原因

3.加密方式

对称加密

非对称密钥

2.数据摘要和数字签名

数据摘要

数字签名

3.加密方案

1.只使用对称密钥加密

2.只使用非对称密钥加密

只用一对密钥

用两对密钥

3.对称密钥加密和非对称密钥加密组合

4.中间人攻击

3.证书

1.证书介绍

2.理解数据签名

3.检查证书

4.解决安全问题

证书+对称加密+非对称加密


1.HTTPS的出现

http是明文发送的,也就是说其安全性难以保证。

1.HTTPS协议介绍

1.HTTPS也是⼀个应⽤层协议.是在HTTP协议的基础上引⼊了⼀个加密层ssl/tls.

2.HTTP协议内容都是按照⽂本的⽅式明⽂传输的。这就导致在传输过程中出现⼀些被篡改的情况,其端口号为443。

2.补充概念

1.加密

1.解释

1.加密就是把明⽂(要传输的信息)进⾏⼀系列变换,⽣成密⽂.

2.解密就是把密⽂再进⾏⼀系列变换,还原成明⽂

3.在这个加密和解密的过程中,往往需要⼀个或者多个中间的数据,辅助进⾏这个过程,这样的数据称为密钥

4.发送数据前要加密,这样网络上传输的都是密文,最终到达目的主机被解密就得到原始数据了

2.原因

因为http的内容是明⽂传输的,明⽂数据会经过路由器、wifi热点、通信服务运营商、代理服务器等多个物理节点,如果信息在传输过程中被劫持,传输的内容就完全暴露了。劫持者还可以篡改传输的信息且不被双⽅察觉,这就是中间⼈攻击,所以我们才需要对信息进⾏加密。

3.加密方式

对称加密

1.加密和解密使用的是同一个密钥。

2.算法公开、计算量⼩、加密速度快、加密效率⾼

3.常⻅对称加密算法(了解):DES、3DES、AES、TDEA、Blowfish、RC2等

非对称密钥

1.需要两个密钥来进⾏加密和解密。这两个密钥是公开密钥(publickey,简称公钥)和私有密钥(privatekey,简称私钥)。

2.算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,⽽使得加密解密速度没有对称加密解密的速度快

3.常⻅⾮对称加密算法(了解):RSA,DSA,ECDSA

2.数据摘要和数字签名

数据摘要

1.数字指纹(数据摘要),其基本原理是利⽤单向散列函数(Hash函数)对信息进⾏运算,⽣成⼀串固定⻓度的数字摘要。数字指纹并不是⼀种加密机制,但可以⽤来判断数据有没有被窜改,唯一性非常强。

2.摘要常⻅算法:有MD5、SHA1、SHA256、SHA512等,算法把⽆限的映射成有限,因此可能会有碰撞(两个不同的信息,算出的摘要相同,但是概率⾮常低)

3.摘要特征:和加密算法的区别是,摘要严格意义不是加密,因为没有解密,只不过从摘要很难反推原信息,通常⽤来进⾏数据对⽐

数字签名

摘要经过加密,就得到数字签名

3.加密方案

1.只使用对称密钥加密

即客户端和服务端之间只有一个密钥进行加密和解密。当浏览器访问服务端时,服务端将密钥发送给客户端,客户端就拥有了解密的能力。

但是,这样的设置是无法满足安全要求的,因为中间人劫持能直接连接两边,服务端将密钥给了中间人,中间人再给客户端,那么客户端的安全就不能保证了。

2.只使用非对称密钥加密

只用一对密钥

服务端有公钥和私钥。当浏览器请求时,服务端发送给客户端公钥,那么此时服务器将信息发送给客户端就用私钥进行加密,即保证了客户端向服务端发送的安全性;但是我们无法保证服务端发给客户端的安全性,因为每一个客户端的公钥完全一致,那么劫持服务端发给客户端的信息,中间人也能解密。

用两对密钥

服务端和客户端都有私钥和公钥。连接时,客户端发送公钥给服务端,服务端也将公钥给服务器。这样两边的数据都能被保护起来了。客户端发信息先用服务端的公钥解密再发送;服务端发送思路同理。

缺点:1.发送速度慢 2.安全问题依然无法解决

3.对称密钥加密和非对称密钥加密组合

服务端有一对密钥,客户端只有公钥。客户端发送请求,服务端发送公钥给客户端。客户端形成对称密钥,客户端拿着服务端发来的公钥加密密钥,这样到服务端能得到加密后的对称密钥。但是,安全问题依然无法解决

4.中间人攻击

只要当链接未完成建立,中间人在开始就已经进行攻击。此时对于上面的方法依然存在安全问题。中间人在中间生成两个密钥针对服务端和客户端,这样客户端的所有请求其实都能被中间人轻而易举的获取。由于它有两边的密钥,那么破解也十分容易。

其问题的最初问题其实是:服务端发送密文的公钥时,中间人有可能获取并且篡改,但是客户端无法辨别得到的公钥的真假。

3.证书

1.证书介绍

服务端在使⽤HTTPS前,需要向CA机构申领⼀份数字证书,数字证书⾥含有证书申请者信息、公钥信息等。服务器把证书传输给浏览器,浏览器从证书⾥获取公钥就⾏了,证书就如⾝份证,证明服务端公钥的权威性

1.企业将申请认证的资料提交给CA机构。信息包括:公钥和私钥,域名,申请者等。

2.审核后,将证书发送给企业。证书的信息时明文的。

3.最后,就是每次客户端访问服务端时,服务端都会发证书给客户端,客户端确认无误再进行连接。

2.理解数据签名

1.企业发送给CA机构的证书,经过哈希得到数据摘要,数据摘要又通过CA提供的私钥进行加密变成数据签名。数据签名和证书合并就是所谓的带签名的证书。

2.数据签名是为了防篡改

3.检查证书

将带签名的证书分离出数据签名和证书。签名可以通过公钥得到数据摘要。证书也可以通过哈希得到数据摘要。这两份数据摘要一致则说明安全。

因为CA的私钥只有CA有,那么CA形成的数据摘要只有CA机构可以判断

4.解决安全问题

1.客户端请求服务端,服务端将证书发给客户端。

2.证书中有服务端的公钥。为了保证公钥的正确性,客户端会分离出证书和数据签名,证书直接哈希得到数据摘要,CA在浏览器中加入了公钥,该公钥用于数据签名,数据签名解码得到数据摘要,要知道CA的私钥只有CA有,也就意味着数据签名转换的数据摘要是绝对正确的,两个数据摘要一对比就能知道是否有中间人攻击了

证书+对称加密+非对称加密

1.首先客户端发送请求,服务器发送证书,客户端检查证书。此时客户端就得到了服务器的公钥

2.客户端生成了对称加密密钥,通过服务器的公钥加密给服务器。服务器的私钥只有服务器拥有,那么也就只有服务器能够解密出对称加密的密钥。最终得到了安全的要求

相关推荐
hope_wisdom几秒前
C++网络编程之SSL/TLS加密通信
网络·c++·ssl·tls·加密通信
hgdlip13 分钟前
家里电脑ip地址怎么设置?详细指导
网络·tcp/ip·智能路由器·家里电脑
冰水°1 小时前
3.1_文件上传漏洞
安全·网络安全·文件上传·条件竞争·.htaccess·文件上传绕过
安步当歌1 小时前
【WebRTC】视频发送链路中类的简单分析(下)
网络·音视频·webrtc·视频编解码·video-codec
米饭是菜qy2 小时前
TCP 三次握手意义及为什么是三次握手
服务器·网络·tcp/ip
yaoxin5211232 小时前
第十九章 TCP 客户端 服务器通信 - 数据包模式
服务器·网络·tcp/ip
Wh1teR0se2 小时前
[ACTF2020 新生赛]Upload 1--详细解析
web安全·网络安全
鹿鸣天涯3 小时前
‌华为交换机在Spine-Leaf架构中的使用场景
运维·服务器·网络
星海幻影3 小时前
网络基础-超文本协议与内外网划分(超长版)
服务器·网络·安全