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.双方使用对称加密愉快的传输所有数据。

相关推荐
CAir2几秒前
一问读懂并了解HTTP代理的基本原理
网络·网络协议·http·代理
北京耐用通信4 分钟前
阀岛的“超级大脑”:耐达讯自动化网关让EtherNet/IP转DeviceNet“说同一种语言”
人工智能·物联网·网络协议·网络安全·自动化·信息与通信
weixin_409383127 分钟前
简单四方向a*寻路学习记录3 将角色世界坐标传给地图数组 计算上下左右四个格子到目的地的f 选择最小的f方向
学习·a星
卓码软件测评17 分钟前
具有CMA和CNAS双重资质的软件测试机构【Gatling脚本开发资源请求处理:html、css、js自动下载配置】
websocket·网络协议·测试工具·单元测试·测试用例
学编程的闹钟21 分钟前
浅谈VMProtectV2.13.8的IAT修复
学习
盐焗西兰花23 分钟前
鸿蒙学习实战之路-多端交互最佳实践
学习·交互·harmonyos
AI绘画哇哒哒24 分钟前
AI 智能体长期记忆系统架构设计与落地实践
人工智能·学习·算法·ai·程序员·产品经理·转行
JH灰色1 小时前
【大模型】学习路线
学习
林林宋2 小时前
nvidia&cuda&gpu 关系学习
学习
喜欢流萤吖~2 小时前
POST 与 GET:HTTP 请求方法的本质区别
网络·网络协议·http