HTTPS验证流程_java白中白.的博客-程序员秘密

技术标签: java  https  

HTTPS验证流程

1.HTTPS简介

​ 由于HTTP在网络中是明文传输的,所以数据在传输过程中很容易被截取,这时就会有一些加密算法及方式出来,比如对称加密、非对称加密等方式,在HTTPS中加密其实是在TCP和HTTP之间加了一层SSL/TLS协议用于加密。
在这里插入图片描述

2.对称加密

2.1 对称加密的工作流程

​ 对称加密其实就是发送方和接收方都拥有一把相同的密钥,发送方在发送之前会对数据通过密钥进行加密,然后传输到接收方,接收方会通过密钥进行解密获取数据。

​ 在浏览器和服务器之间交互也是这样的,服务端拥有这把密钥,客户端需要请求服务端获取这个密钥,获取到密钥之后就会按照对称密钥加密流程进行工作,以下为正常运行过程:
在这里插入图片描述

2.2 对称加密的问题

​ 在对称加密中,浏览器需要先向服务器请求获取密钥,在获取密钥的过程中就需要传输密钥,而HTTP本身就是铭文的,密钥就会暴露在网络传输当中,黑客就会截取这个密钥窃取数据甚至篡改数据,如下图:
在这里插入图片描述

3.非对称加密

3.1 非对称加密的工作流程

​ 非对称加密是有两个密钥,分别是公钥私钥,公钥会暴露在网络传输当中,而私钥只能存在于发送方,并且非对称加密中的加密及解密规则如下:

  • 私钥加密,公钥可以解密
  • 公钥加密,私钥可以解密
  • 私钥加密,私钥可以解密

【注意】:公钥加密,公钥不可以解密

​ 在浏览器和服务器中,公钥和私钥都在服务器中,浏览器需要先请求服务器获取公钥,服务器发送数据通过私钥进行加密,浏览器通过公钥进行解密获取数据。
在这里插入图片描述

3.2 非对称加密的问题
3.2.1 效率低

​ 在非对称加密中需要使用两个密钥,公钥和私钥,在非对称加密中效率就会变得很低,所以一般会选择先用非对称加密传的形式传输对称加密的密钥,后面使用对称加密来传输。

3.2.2 不安全

​ 在非对称加密中,服务器公钥和服务器私钥都存在于服务器端,所以客户端先要请求服务器获取服务器公钥,但是,HTTP是明文传输的,所以在获取服务器公钥时会被黑客截取,造成安全问题,如下图:
在这里插入图片描述

4.CA机构

​ 在非对称加密中,安全问题主要是服务器如何向客户端传输服务器公钥,所以就有了CA机构,这些机构是被信任的,CA机构也是拥有其CA公钥及CA私钥的,并且CA公钥存在于操作系统内,即当安装操作系统时就会带有CA公钥,因此会使用CA机构来进行非对称加密的验证,如下图:
在这里插入图片描述

4.1 证书

​ 服务器将自己的服务器公钥给CA机构,CA机构会使用服务器公钥及服务器信息制作证书,证书中几个重要信息如下:

  • 数字签名:CA机构使用CA私钥对服务器公钥进行加密,生成数字签名

  • 摘要:CA机构使用hash算法对服务器公钥进行加密,生成摘要

  • 哈希算法:生成摘要的哈希算法也保存在证书中

    证书制作完成之后,CA机构会使用CA私钥对证书进行加密,将加密后的证书发送给服务器,流程如下图:
    在这里插入图片描述

4.2 服务器和客户端验证过程

​ 有了CA机构后,服务器就会把服务器公钥存在证书中,通过证书进行传输,客户端拿到证书之后会对其进行验证,验证过程如下:

  1. 使用CA公钥对证书解密,获取证书中的信息
  2. 使用CA公钥对数字签名解密,获得服务器公钥
  3. 使用第二步获得的服务器公钥通过哈希算法加密,生成摘要
  4. 将第三步的摘要和证书中的摘要进行比对验证
  5. 验证成功之后,客户端会随机生成字符串(即对称密钥),通过服务器公钥进行加密成密文,发送给服务器
  6. 服务器使用服务器私钥进行解密,获得对称密钥,此后发送数据就是用这个对称密钥加密
    在这里插入图片描述

5.HTTPS真的安全吗?

在这里插入图片描述

​ 根据上图可以看到最开始访问的jd.com是一个http请求,会被重定向到https的一个网站,那如果在重定向之前拦截这个请求,然后仿照一个和京东一模一样的网站,是不是就可以钓鱼了呢?

【注意】:对于本文的任何意见和建议,欢迎大家在评论区批评指正。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45794641/article/details/124136991

智能推荐

.live()已经弃用!_iteye_3607的博客-程序员秘密

原文:http://api.jquery.com/live/Use of the.live()method is no longer recommended since later versions of jQuery offer better methods that do not have its drawbacks. In particular, the following ...

Ubuntu server 14.04 LTS 多网卡绑定实现负载均衡_setoy的博客-程序员秘密

将两张网卡绑定,共用一个IP,实现冗余效果。实际上linux双网卡的绑定模式有7种:安装负载软件apt-get install ifenslave加载模块及配置负载vi /etc/modules添加bonding mode=0 miimon=100miimon是10ms监测一次网卡状态配置bond0注:bond IP与成员口的IP不能一致,如果不想成员口IP获得本网段地址,可以随便配置一个。

app上应用市场,被腾讯手机管家报病毒 a.gray.sexpay.m_icedrunkard的博客-程序员秘密

知乎链接:https://zhuanlan.zhihu.com/p/301027963欢迎下载app============================================1.背景要做一个视频交友软件,为了省时间,从市面上买了一个和需求比较接近的app源码(这个源码,一般被别人用来搞一些涉黄直播),两个月改造完成后,准备上架应用市场,发现只要是使用腾讯安全引擎的商店都会检测出风险,比如腾讯应用宝、华为应用商店、三星应用商店。腾讯云的移动应用安全检测结果如下:被腾讯云移动应用安

selenium: 鼠标右键点击、双击、移动鼠标到某个元素、鼠标拖拽_selenium移动鼠标到元素_joy_oc的博客-程序员秘密

通过 Selenium 提供的ActionChains类来实现from selenium import webdriverdriver = webdriver.Chrome(r'f:\chromedriver.exe')driver.implicitly_wait(5)driver.get('https://www.baidu.com/')from selenium.webdriver.common.action_chains import ActionChainsac ..

org.springframework.orm.hibernate3_iteye_2829的博客-程序员秘密

org.springframework.orm.hibernate3.SessionFactoryUtils Hibernate Session处理协助类,允许事务范围内的Session重用。同样提供了异常信息的转义。支持受Spring管理及不受Spring管理的JTA事务同步(例如简单JTA或者EJB CMT),透明的支持事务范围内的Hibernate Sessions。注意:对于不...

使用MACE加速---使用篇_stesha_chen的博客-程序员秘密

最近开始研究如何对手机应用中的识别算法进行加速,搜索后发现了小米的MACE。Mobile AI Compute Engine (MACE) 是一个专为移动端异构计算设备优化的深度学习前向预测框架。 覆盖了常见的移动端计算设备(CPU,GPU和DSP)。支持的硬件加速比较全面,是小米提供的一个比较有诚意的框架。这篇博文主要记录一下环境的配置,以及把小米提供的例子运行一下,以这样一个过程来熟悉...

随便推点

C++ 使用嵌套循环打印 *型 钻石图案_打印砖石型*号_墨白.:*♡的博客-程序员秘密

使用嵌套循环打印 *型 钻石图案/*********************************题目:使用嵌套循环打印 *型 钻石图案 作者:墨白日期:2020/6/27*********************************/#include<iostream>using namespace std;int main(){ cout << "请输入阶数n: "<<endl; int n; while (cin >

过麦--回忆里面的山东_下鹞捆麦__云上的听者_的博客-程序员秘密

当布谷鸟的第一声鸣叫盘旋在村子上空,乡村五月的空气里便会氤氲沸腾起一阵阵麦香。和着沁人心脾的麦香,乡亲们也迎来了一年中忙碌而充实的季节。 过麦,在乡亲们眼里,很有仪式感。一年的收成如何决定了一年生活质量的好坏,所以过麦,显得很隆重。离收麦还有个把月的时间,乡亲们就早早为过麦做准备了。过年时没舍得吃完的腊肉此时便派上了用场,再腌上一坛子鸭蛋鹅蛋或是鸡蛋,到集上买点干鱼干虾。再把...

Linux Failed to activate swap /swapfile_q2nAmor的博客-程序员秘密

[FAILED] Failed to activate swap /swapfile.[DEPEND] Dependency failed for Swap.开机时报错如上, 开机之后交换文件无法正确被挂载。因为之前使用g++编译时报错:g++: internal compiler error: Killed (program cc1plus)说是因为内存不足,创建了交换分区后OK了,编译完成后又给删除了。然后重启系统后就出现上面的错误了。因此用dd重新分配即可.sudo dd if=/.

PCL学习笔记——利用KDTree进行近邻搜索_Kadima°的博客-程序员秘密

PCL学习笔记——利用KDTree进行近邻搜索k-d树(k-dimensional树的简称),是一种分割k维数据空间的数据结构。主要应用于多维空间关键数据的搜索(如:范围搜索和最近邻搜索)。K-D树是二进制空间分割树的特殊的情况。索引结构中相似性查询有两种基本的方式:一种是范围查询(range searches),另一种是K近邻查询(K-neighbor searches)。范围查询就是给定查询点和查询距离的阈值,从数据集中找出所有与查询点距离小于阈值的数据;K近邻查询是给定查询点及正整数K,从数据集中

C++经典面试题_void dosomething(char *p)代码有什么问题_wx红杉树的博客-程序员秘密

1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态?virtual修饰符会被隐形继承的。private 也被集成,只事派生类没有访问权限而已virtual可加可不加子类的空间里有父类的所有变量(static除外)同一个函数只存在一个实体(inline除外)子类覆盖它的函数不加virtual ,也能实现多态。在子类的空间

Python之父:Python 4.0可能不会来了_程序员大咖的博客-程序员秘密

????????关注后回复“进群”,拉你进程序员交流群????????机器之心报道编辑:力元、蛋酱不要对 Python 4.0 抱有希望,可能不会有的。——Python 之父 Guid...

推荐文章

热门文章

相关标签