| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> http和https -> 正文阅读 |
|
[网络协议]http和https |
http和https的基本概念http:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从www服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。 https:是以安全为目标的http通道,简单讲是http的安全版,即http下加入SSL层,https的安全基础是SSL,因此加密的详细内容就需要SSL。 一、http存在的问题-不安全1、http 本身不具备加密的功能,http 报文使用明文方式发送 2、无法确认发送的服务器是不是伪装服务器 3、无法确认返回的客户端是目标客户端 4、请求或响应的运输中,容易遭攻击者拦截并纂改内容 由于http的明文传输的特性,在传输过程容易遭拦截、修改或伪造请求,那么https怎么解决上述问题呢?为了保证隐私数据加密传输,网景公司设计了SSL(TLS)协议,用于对http协议传输的数据进行加密,简单说https=http+ ssl(tls) = https 二、接下来主要讲讲http是的原理解析?根据上图,https整个通讯过程可分为两大阶段:证书验证和数据传输阶段,数据传输阶段又可以分为对称加密和非对称加密阶段,具体流程根据图中序号讲解; ????????1、客户端请求 HTTPS 网址,然后连接到 server 的 443 端口 (HTTPS 默认端口,类似于 HTTP 的80端口)。 ????????2、采用 HTTPS 协议的服务器必须要有一套数字 CA (Certification Authority)证书,证书是需要申请的,并由专门的数字证书认证机构(CA)通过非常严格的审核之后颁发的电子证书 ( (当然了是要钱的,安全级别越高价格越贵))。颁发证书的同时会产生一个私钥和公钥。私钥由服务端自己保存,不可泄漏。公钥则是附带在证书的信息中,可以公开的。 ? ? ? ? ?3、服务器响应客户端请求,将证书传递给客户端,证书包含公钥和大量其他信息,比如证书颁发机构信息,公司信息和证书有效期等。 ? ? ? ? 4、客户端解析证书并对其进行验证。如果证书不是可信机构颁布,或者证书中的域名与实际域名不一致,或者证书已经过期,就会向访问者显示一个警告,由其选择是否还要继续通信。就像下面这样 ?????????可信任: ?如果证书没有问题,客户端就会从服务器证书中取出服务器的公钥A。然后客户端还会生成一个随机码 KEY,并使用公钥A将其加密。 ?????????5、客户端把加密后的随机码 KEY 发送给服务器,作为后面对称加密的密钥。 ? ? ? ? ?6、服务器在收到随机码 KEY 之后会使用私钥B将其解密。经过以上这些步骤,客户端和服务器终于建立了安全连接,完美解决了对称加密的密钥泄露问题,接下来就可以用对称加密愉快地进行通信了。 ? ? ? ? 7、服务器使用密钥 (随机码 KEY)对数据进行对称加密并发送给客户端,客户端使用相同的密钥 (随机码 KEY)解密数据。 ? ? ? ? 8、双方使用对称加密愉快地传输所有数据 总结最后来总结一下http与https的区别、https的缺点: ?HTTPS 和 HTTP 的区别:??????
https缺点:
|
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 4:22:52- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |