一文说透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 但是!!!装完并没 ...
随机推荐
- Linux查看进程启动时间和运行多长时间
Linux 查看进程启动时间和运行多长时间 启动时间 ps -eo lstart 运行多长时间 ps -eo etime -bash-4.1$ ps -eo pid,lstart,etime | gr ...
- dnspython模块报错 AttributeError: 'CNAME' object has no attribute 'address'
有时候用到这个模块的时候会报错 AttributeError: 'CNAME' object has no attribute 'address' 如下所示 [root@ansible ch01]# ...
- redis的bind误区
对于Redis中bind的正确的理解是:bind:是绑定本机的IP地址,(准确的是:本机的网卡对应的IP地址,每一个网卡都有一个IP地址),而不是redis允许来自其他计算机的IP地址.如果指定了bi ...
- 如何提高docker容器的安全性
一. 概述 Docker 容器一直是开发人员工具箱的重要组成部分,使开发人员能够以标准化的方式构建.分发和部署他们的应用程序.毫无疑问,这种吸引力的增加伴随着容器化技术的相关安全问题.他们可以很容易地 ...
- 性能优化-使用双buffer实现无锁队列
借助本文,实现一种在"读多写一"场景下的无锁实现方式 在我们的工作中,多线程编程是一件太稀松平常的事.在多线程环境下操作一个变量或者一块缓存,如果不对其操作加以限制,轻则变量值或者 ...
- java类的反射机制
1.获得一个类的类对象有哪些方式? - 方法1:类型.class,例如:String.class- 方法2:对象.getClass(),例如:"hello".getClass()- ...
- 34.AVL树
1.创建Node结点 class Node { int value; Node left; Node right; public Node(int value) { this.value = valu ...
- 介绍一个golang库:fastcache
学习VictoriaMetrics源码的时候发现,VictoriaMetrics的缓存部分,使用了同一产品下的fastcache.下面分享阅读fastcache源码的的结论: 1.官方介绍 fastc ...
- Elasticsearch使用系列-ES增删查改基本操作+ik分词
Elasticsearch使用系列-ES简介和环境搭建 Elasticsearch使用系列-ES增删查改基本操作+ik分词 一.安装可视化工具Kibana ES是一个NoSql数据库应用.和其他数据库 ...
- 从容器中获取宿主机IP地址
背景: docker 中的程序需要连接外部的程序,连接的过程中会告知外部程序自己的ip地址,然后外部的程序会回连docker中的程序.由于docker使用的是rancher中的托管模式,外部程序是没办 ...