https学习

http的最大弊端------不安全

http之所以被https取代,最大的原因是不安全,至于为什么不安全,看一下下面这张图就一目了然了。

由上图可见,http在传输数据过程中,所有数据都是明文传输,自然没有安全性可言。https使用了混合加密算法(对称加密和非对称加密),可以用密钥加密或还原数据,只要确保密钥不被第三方获取,就能确保数据传输的安全。

2.加密算法

对称加密:加密和解密都是使用同一个密钥,常见的对称加密算法有DES、3DES和AES。

优点:算法公开、计算量小、加密速度快、加密效率高、适合加密比较大的数据。

缺点:交易双方需要使用相同的密钥,也就无法避免密钥偶的传输,二密钥在传输过程中无法保证不被截获,因此对称加密的安全性得不到保证。

每次用户使用对称加密算法时,都需要使用其他人不知道的唯一密钥,这会使得发收信双方所拥有的密钥密钥数量急剧增长,密钥管理成为双方负担。对称加密算法在分布式系统上使用较为困难,主要因为密钥管理困难,使用成本高。

    

由上图可见,被加密的数据在传输过程中是无规则乱码,即便被第三方截获,在没有密钥的情况下也无法解密数据,这就保证了数据安全。有一个致命问题是,既然双方要使用相同的密钥,那就必须要在传输数据之前由一方把密码传给另一方,这个过程很有可能被截获,加密数据也会被轻松解密。

非对称加密:加密和解密使用不同的密钥(公钥和私钥),公钥和私钥是一对,如果用公钥对数据进行加密,只有对应的私钥才能解密;如果使用私钥对数据进行加密米,那只有对应的公钥才能解密。常用的非对称加密算法是RSA算法。

非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公钥对外开放,得到该公钥的乙方使用公钥对机密信息进行加密后发送给甲方,甲方再用自己保存的私钥对加密后的信息进行解密。

优点:算法公开,加密和解密使用不同的密钥,私钥不需要通过网络进行传输,安全性很高。

缺点:计算量很大,加密和解密速度对比对称加密慢很多。

由上图可见,客户端在拿到服务器的公钥后,会生成一个随机码(用KEY表示,这个KEY就是后续双方用于对称加密的密钥),然后客户端使用公钥包KEY加密后再发送给服务器,服务器使用私钥将其解密,这样双方就有了同一个密钥KEY,然后双方再使用KEY进行对称加密交互数据。在非对称加密传输KEY的过程中,即便第三方获取了公钥和加密后的KEY,在没有私钥的情况下也无法破解KEY(私钥存在服务器,泄露风险极小),这就保证了接下来对称加密的数据安全。上图流程就是https的雏形,https正好综合了两种加密算法的的优点,不仅保障了数据安全,还保证了数据的传输效率。

https原理详解

HTTPS(Hypertext Transfer Protocol Secure)是基于HTTP的扩展,用于计算机网络的安全通信,已经在互联网得到广泛的应用,在HTTPS中,原有的HTTP协议会得到TLS(安全传输层协议)或其前辈SSL(安全套接层的加密)。因此,HTTPS也常指HTTP over TLS或HTTP over SSL,也就是说HTTPS = HTTP + SSL/TLS。

  

https的整个通讯过程可以分为两大阶段:证书验证和数据传输阶段,数据传输阶段又可以分为非对称加密和对称加密两个阶段。

1.客户端请求HTTPS网址,然后连接到server的443端口(HTTPS默认端口,类似于HTTP的80端口)。

2.采用HTTPS协议的服务器必须要有一套数字CA(Certification Authority)证书,证书时需要申请的,并由专门的数字证书认证机构(CA)通过非常严格的审核之后颁发的电子证书。颁发证书的同时会产生一个公钥和私钥。私钥由服务器自己保存,不可泄漏。公钥则是附带在证书信息中,可以以公开的。证书本身也附带一个证书电子签名,这个签名用来验证证书的完整性和真实性,可以防止证书被篡改。

3.服务器响应客户端请求,将证书传递给客户端,证书包含公钥和其他信息,比如证书的颁发机构信息,公司信息和证书有效期等。

4.客户端解析证书并对其进行验证。如果证书不是可信机构颁布,或者整数中的域名与实际域名不一致,或者证书已经过期,就会向访问者显示一个警告,由其选择是否还要继续通信。

5.客户端把加密后的随机码KEY发送给服务器,作为后面对称加密的密钥。

6.服务器收到随机码KEY之后会使用私钥B将其解密。经过以上这些步骤,客户端和服务器终于建立了安全连接,完美解决了对称加密的密钥泄露问题,接下来就可以使用对称加密愉快的进行通信了。

7.服务器使用密钥(随机码KEY)对数据进行对称加密并发送给客户端,客户端使用相同的密钥(随机码KEY)解密数据。

8.双方使用对称加密愉快的传输所有数据。

相关推荐
JustHappy4 小时前
古法编程秘籍(七):互联网到底是什么?把两台电脑怎么说话搞懂就够了
前端·后端·网络协议
袁小皮皮不皮6 小时前
3.HCIP OSPF补充知识(优化版)
服务器·网络·数据库·网络协议·智能路由器
袁小皮皮不皮7 小时前
1.HCIP BFD 学习笔记(优化版)
服务器·网络·笔记·网络协议·学习·智能路由器·ip
装不满的克莱因瓶8 小时前
【自动驾驶领域】学习 Cityscapes 数据集——城市街景语义理解的标准基准
人工智能·pytorch·python·深度学习·学习·机器学习·自动驾驶
清辞8539 小时前
产品经理需求推进流程
大数据·深度学习·学习·产品经理
YM52e9 小时前
鸿蒙PC ArkTS 声明合并问题深度解析与最佳实践
学习·华为·harmonyos·鸿蒙·鸿蒙系统
用户03129591334210 小时前
第 10 篇:路由表:数据包的导航仪
网络协议
海兰10 小时前
【实用程序】电商销售分析仪表盘 — 从零搭建一个AI参与的全栈数据洞察系统
人工智能·学习·算法
ken223210 小时前
在 Libreoffice Calc中输入自定义表情字符时,需要保存之后,才能正常显示
学习
zwenqiyu11 小时前
P5283 [十二省联考 2019] 异或粽子题解
c++·学习·算法