一文说透https中的s是什么?
- 窃听风险,“有心人”窃听到具体的通信内容,信息被不该知道的人,知道了,比如盗取QQ账号。
- 篡改风险,“有心人”篡改了通信内容。不该知道的人,虽然没有知道信息的内容,但是他在信息序列上加上、删除、或者编辑了原来的的内容。比如强制植入垃圾广告
- 冒充风险,“有心人”冒充银行、淘宝等网站,诱导用户输入一些敏感信息,从而盗取用户账户中的钱财等,俗称钓鱼网站。
所以https解决了三个问题,防窃听、防篡改、防冒充。
四、基础的加密算法和基于这些加密算法的加密机制
1、对称加密算法
加密密钥和解密密钥是一样的,加密过程和解密过程是对称的,所以叫做对称加密算法。
优点:加密速度快
缺点:需要双方都有密钥,怎么样传输密钥是最大的问题。
2、非对称加密算法(公开密钥加密算法)

几点说明:
- 加密密钥和解密密钥是不一样的,所以是非对称加密。
- 加密密钥和解密密钥是成对的,可以互相加解密,也就是用其中一个加密,用另一个可以解密。
- 一个公钥,一个私钥,公钥公开,私钥只能自己持有,是自己的一个特征,就好像身份证上的照片,而且不能通过其中一个推算出另一一个。
3、混合加密--数字信封技术

通过公开密钥加密算法传输对称加密算法的密钥,这样就解决了对称加密算法的密钥分发问题。
在实际的通信过程中,HTTPS 采用的是对称加密和非对称加密结合的「混合加密」方式:
4、摘要算法(哈希算法)

几点说明:
- 哈希算法也是一种加密算法。
- 同样的明文输入,输出的密文相同;无论多长的明文,密文的长度都是相同的。不同的明文,哪怕只是很长明文中改动一个字符,输出的密文也会不同。
- 哈希算法不可逆,就是不可能通过密文解密出明文。但是可以通过加密同样的明文,来比对在传输过程中密文是否被改动过。
5、数字证书
1、服务器把自己的公钥在数字证书认证机构(CA)注册,数字证书认证机构用自己的私钥加密服务器的公钥,得到服务器的数字证书,并发给服务器。
2、在客户端和服务器通信时,服务器把自己的CA证书发送给客户端。
3、客户端用数字证书认证机构的公钥解密服务器的数字证书,得到服务器的公钥。并用服务器的公钥加密通信信息,传给服务器。
4、服务器用自己的私钥解密客户端传来的密文,得到明文。
综上:一共讲述了三种加密算法和三种基于这些加密算法的加密机制,加密算法:对称加密算法、非对称加密算法(公开密钥加密算法)和哈希算法(摘要算法);加密机制:数字信封技术、混合加密机制、数字证书。
四、HTTPS是如何建立连接的?其间交互了什么?
在传输层,通过TCP协议的三次握手通信双方建立连接之后,SSL/TLS 协议的握手阶段涉及四次通信。
这四次的通信过程其一为了产生一个双方都知道的会话密钥,来加密通信的内容;其二是验证服务器的真实身份。具体可见下图::
综合四次握手过程,
在第一次和第二次握手中,双方互换了各自随机数给对方,协定了TLS版本和加密算法。
在第二次握手中,服务器发送自己的CA证书给客户端。客户端解密出服务器的公钥。验证了服务器的真实身份,防冒充
在第三次握手中,客户端用服务器的公钥加密第三个随机数,使得通信双方都有了产生会话密钥的全部的、原始的信息:三个随机数和加密算法,这样产生了对称加密的密钥,并且分发给了通信双方。防窃听
在第三次握手中,客户端除了向服务器传输了第三个随机数的密文,还有所有通信数据的摘要,供服务器比对校验,防篡改
在第四次握手中,服务器向服务器向客户端传输了所有通信数据的摘要,供客户端比对校验,防篡改。
一文说透https中的s是什么?的更多相关文章
- 用故事说透 HTTPS
本文来自素燕公众号,原文地址:用故事说透 HTTPS 故事中的主演:小华今年上大一,这是她第一次离开父母,独自一人到北京上学.今天妈妈的生日,想了想要给妈妈一个祝福,便给妈妈发了条消息:妈妈收到这条消 ...
- 网站部署 HTTPS 中需要做的事情
这篇文章首发于我的个人网站:听说 - https://tasaid.com/,建议在我的个人网站阅读,拥有更好的阅读体验. 这篇文章与 博客园 和 Segmentfault 共享. 前端开发QQ群:3 ...
- HTTPS 中双向认证SSL 协议的具体过程
HTTPS 中双向认证SSL 协议的具体过程: 这里总结为详细的步骤: ① 浏览器发送一个连接请求给安全服务器.② 服务器将自己的证书,以及同证书相关的信息发送给客户浏览器.③ 客户浏览器检查服务器送 ...
- 关于调用百度地图api在自己写的网页中实现和解决在https中正常显示
百度地图开发者:http://lbsyun.baidu.com/index.php?title=jspopular 我们打开百度地图开发者网站,注册一个百度账号,然后打开控制台,开始创建应用:(如果你 ...
- HTTPS中SSL/TLS握手时的私钥用途(RSA、ECDHE)
从上一篇HTTPS中CA证书的签发及使用过程中知道服务端在申请CA证书时只上交了密钥对中的公钥,那么只有服务端知道的私钥有什么作用呢? SSL/TLS层的位置 SSL/TLS层在网络模型的位置,它属于 ...
- Nginx中配置https中引用http的问题
Nginx中配置https中引用http的问题 遇到问题: 今天公司要在后台增加直播入口,使用腾讯云的实时音视频,要求是必须使用https,在配置完强制跳转https候,发现后台无法上传图片,在浏览器 ...
- https中引用http
https里引用http不安全,会报错 解决方案 1.可以部署在http中,http中引用https不会存在安全问题报错 2.https中引用https,把需要引用的http部署成https
- 理解https中的安全及其实现原理
Google的一份网络上的 HTTPS 加密透明报告(数据截至2022年1月)中指出HTTPS 连接的普及率在过去几年激增,互联网上排名前 100 位的非 Google 网站HTTPS 使用情况为:9 ...
- charles抓取https中出现unknow
http正常抓包,https则出现unknown 1.安装证书 Help->SSL Proxying->Install Charles Root Certificate 但是!!!装完并没 ...
随机推荐
- Ubuntu18.04编译Fuchsia
编译环境 系统:Ubuntu 18.04.1 LTS 64-bit 内存:8 GiB CPU:Intel Core i5-4200M CPU @ 2.50GHz × 4 1.安装编译环境 sudo a ...
- Flask + UnitTest(十五)
被测试视图 # coding:utf-8 from flask import Flask, request, jsonify app = Flask(__name__) @app.route(&quo ...
- JS 判断上传文件类型
var video_src_file = $("#video_src_file").val(); var fileTypes = new Array("flv" ...
- RT-Thread移植入门学习
一.简介 RT-Thread 是一款主要由中国开源社区主导开发的开源实时操作系统(许可证GPLv2).实时线程操作系统不仅仅是一个单一的实时操作系统内核,它也是一个完整的应用系统,包含了实时.嵌入式系 ...
- 5.14-HTTP间通信
1.社长社员通信WEBSOCKET WebSocket 是一种标准协议,用于在客户端和服务端之间进行双向数据传输.但它跟 HTTP 没什么关系,它是一种基于 TCP 的一种独立实现. 以前客户端想知道 ...
- C++中的const和mutable
1 #include<iostream> 2 using namespace std; 3 //如果在类A的成员函数dis()中想要修改_z,但是不能修改_x,_y怎么办? 4 //如果d ...
- C++线程基础笔记(一)
标准写法: #include<iostream> #include<thread> using namespace std; void MyThread() { cout &l ...
- golang中将函数当做函数参数使用
package main import ( "fmt" "strings" ) // 使用type关键字让函数变成一个自定义类型 type caseFunc f ...
- 开源办公套件DzzOffice安装教程
DzzOffice开源办公套件 DzzOffice是一套开源办公套件,适用于企业.团队搭建自己的 类似"Google企业应用套件"."微软Office365"的 ...
- vs2012 error: package 'visual c++ package' failed to load
某天打开Visual Studio突然出现了"error: package 'visual c++ package' failed to load",解决方案如下: 1. 依此顺序 ...