HTTP与HTTPS的区别及HTTPS如何安全的传输数据

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 在Https传输过程中,客户端和服务端使用非对称加密生成对称加密的密钥,然后用对称加密传输网络中的数据。这就是最优解。

首先要先了解几个基本概念

HTTP(HyperText Transfer Protocol:超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。 简单来说就是一种发布和接收 HTML 页面的方法,被用于在 Web 浏览器和网站服务器之间传递信息。

HTTP默认是工作在TCP协议80端口,用户访问网站 http:// 打头的都是标准 HTTP 服务。

HTTP协议以明文的形式发送内容,不对数据进行任何加密,容易受到攻击拦截获取到信息,因此HTTP不适合传输敏感信息,比如信用卡号,密码等支付信息。

HTTPS(Hypertext Transfer Protocol Secure:超文本传输安全协议)是一种透过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。

HTTPS默认工作在TCP协议443端口,它的工作流程一般如下:

1、TCP 三次同步握手
2、客户端验证服务器数字证书
3、DH 算法协商对称加密算法的密钥、hash 算法的密钥
4、SSL 安全加密隧道协商完成
5、网页以加密的方式传输,用协商的对称加密算法和密钥加密,保证数据机密性;用协商的hash算法进行数据完整性保护,保证数据不被篡改。
对称加密:用同一把钥匙进行加密和解密;

非对称加密:两把不同的钥匙,一把公钥,一把私钥,用公钥来加密明文,用私钥来解密密文;

这里要说一下这两种加密方式的优缺点

column1 非对称机密 对称加密
速度
效率
安全性
常见算法 RSA\DH AES\DES\IDEA

从表格中我们可以看出,非对称机密虽然安全性高,但是速度慢、效率低;而对称加密安全性低,却速度快,效率高,那如何选择使用,才是一种最优做法呢?

答案就是两者结合,在Https传输过程中,客户端和服务端使用非对称加密生成对称加密的密钥,然后用对称加密传输网络中的数据。这就是最优解。

那么钥匙哪里来的呢?从CA(数字证书认证机构)机构来,正规的Https都是需要从CA机构那边申请获取证书的,当然是要收钱的,也可以自己本地生成,区别在于自己制作的证书需要客户端验证通过才能继续访问。

那证书到底是什么,其实证书就是一对公钥跟密钥,可以理解证书就是你去商店买的一把锁,你买的锁肯定是一套的,一个锁头,一把钥匙,你可以用锁头锁上你所要锁上的东西,但是钥匙只有一把啊,就在你手上,只有你一个人能打开锁拿出东西,所以公钥就是锁头,可以锁住https传输过程中的数据,确保安全,而私钥就是要解开这把锁拿到数据的钥匙。

还有一点需要知道的是,这个证书本身是包含很多信息,比如颁发机构,可以理解为生产这个锁的地方,还有过期时间,每个东西都有保质期的嘛,还有一起其他的信息等。

接下来就是我们本篇文章的重点,Https在传输过程中,是如果结合对称加密和非对称加密,然后进行数据安全传输的。

非对称加密的公钥跟私钥我们已经有了,就是证书,是服务器去向CA机构申请获取的。

第一步,客户端去请求Https的时候,可以获取到证书,也就是非对称加密的公钥跟私钥,这部分工作是通过客户端的TLS来完成的,首先会去验证公钥是否有效,比如颁发机构,过期时间等,如果发现异常,则会弹出一个警告框,提示证书存在问题;(这个跟我们平时访问一些小网站是同个道理 😏);如果证书没有问题,那么就会生成一个随机值,注意了,这个随机值其实就是对称加密的钥匙,用证书对这个随机值进行加密得到密文,也就是用公钥对随机值进行加密,只有私钥才能解密获取随机值。

第二步,数据传输到服务器,服务器获取密文后,用证书中的私钥对密文进行解密,这样服务器就已经获取到了随机值,也就是对称加密的钥匙,这样子客户端拥有对称加密的钥匙,服务端也有了同样一把钥匙,后面传输数据就可以通过这个随机值(钥匙)来进行加解密了。

第三步,服务端传输数据给客户端,用的是第二步获取到的随机值(钥匙)对数据进行对称加密,数据到达客户端之后,客户端也要随机值(钥匙,与服务端同一把)解密,如此来进行通信。

通过上面可以得出,第一、二步主要是利用非对称加密的安全性来传输对称加密的钥匙,当客户端跟服务端都拥有同一把对称加密的钥匙之后呢,再通过这把钥匙来进行通信,也就是其实通信用的是对称加密的方式,所以效率高,速度快。

以上就是https传输数据中对称加密与非对称加密结合起来的使用详情,既安全又高效

相关文章
|
20天前
|
前端开发 JavaScript 安全
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第27天】本文介绍了HTTP/2和HTTPS在前端性能调优中的应用。通过多路复用、服务器推送和头部压缩等特性,HTTP/2显著提升了Web性能。同时,HTTPS确保了数据传输的安全性。文章提供了示例代码,展示了如何使用Node.js创建一个HTTP/2服务器。
35 3
|
8天前
|
缓存 安全 网络安全
HTTP/2与HTTPS在Web加速中的应用
HTTP/2与HTTPS在Web加速中的应用
|
12天前
|
传感器 缓存 网络协议
CoAP 协议与 HTTP 协议的区别
CoAP(Constrained Application Protocol)协议是为资源受限的设备设计的轻量级协议,适用于物联网场景。相比HTTP,CoAP具有低功耗、低带宽占用和简单易实现的特点,支持多播通信和无连接的交互模式。
|
19天前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
19天前
|
缓存 安全 API
http 的 get 和 post 区别 1000字
【10月更文挑战第27天】GET和POST方法各有特点,在实际应用中需要根据具体的业务需求和场景选择合适的请求方法,以确保数据的安全传输和正确处理。
|
19天前
|
网络协议 网络安全 API
Http和Socks的区别?
HTTP 和 SOCKS 协议各有其优势和应用场景。在选择使用哪种协议时,应根据具体需求和应用环境做出决定。HTTP 适用于 Web 服务相关的通信,而 SOCKS 则更适用于需要通用代理功能和复杂网络环境的场景。了解它们的区别和特点,有助于在不同的网络应用中做出最佳选择。
26 1
|
21天前
|
前端开发 安全 应用服务中间件
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第26天】随着互联网的快速发展,前端性能调优成为开发者的重要任务。本文探讨了HTTP/2与HTTPS在前端性能优化中的应用,介绍了二进制分帧、多路复用和服务器推送等特性,并通过Nginx配置示例展示了如何启用HTTP/2和HTTPS,以提升Web应用的性能和安全性。
21 3
|
21天前
|
前端开发 JavaScript 数据库
https页面加载http资源的解决方法
https页面加载http资源的解决方法
36 4
|
20天前
|
网络协议 API 数据格式
HTTP 和 TCP 协议的主要区别
【10月更文挑战第25天】HTTP 和 TCP 在网络通信中扮演着不同的角色,各自具有独特的功能和特点,它们相互配合,共同为实现网络应用的各种需求提供了基础支持。
|
1月前
|
缓存 安全 网络协议
HTTP和HTTPS的区别有哪些?
本文简要总结了 HTTP 和 HTTPS 的区别,从概念、端口、连接方式、使用场景、安全性等多个角度进行了对比。HTTP 是无状态的、无连接的应用层协议,适用于一般性网站和性能要求较高的应用;HTTPS 则通过 SSL/TLS 层提供加密、认证和完整性保护,适用于涉及敏感信息和高安全性的场景。文章还讨论了两者在性能上的差异,包括握手和加密开销、缓存效果以及 HTTP/2 的多路复用技术。最终,根据具体需求选择合适的协议能够更好地平衡安全性和性能。
102 2
HTTP和HTTPS的区别有哪些?

热门文章

最新文章

下一篇
无影云桌面