HTTPS、SSL和TLS

1、HTTPS相关概念

1.1、对称加密和非对称加密

简单描述一下,加密密钥和解密密钥相同,则称为对称加密;加密密钥和解密密钥不同,则称为非对称加密;

对称加密比非对称加密的效率要高。详细的描述的可以查看 对称加密与非对称加密详解 - 浪迹天涯的派大星 - 博客园 (cnblogs.com)

1.2、中间人攻击

顾名思义,就是通过在通讯两端中间,拦截正常的网络通信数据,并进行数据篡改和嗅探,而通信的双方却毫不知情。

1.3、数字证书

用户将自己的信息和公钥提交给认证中心,由认证中心生成数字证书。

数字证书包含证书公开信息和签名,公开信息一般包含:证书的版本、序列号、签名算法、发行机构名称、有效期、所有人名称和公钥,以及签名,如下图:

签名计算步骤:公开信息先进行哈希得到hash值,在由证书颁发机构的私钥对hash值进行RSA加密,得到签名。

1.4、根证书、中间证书、用户证书

根证书:由可信任的CA认证中心颁发,它由自身进行认证,一般初始安装在操作系统和浏览器中,是整个证书链的起点

中间证书:由根证书的私钥计算签名,拥有根证书的签名的是中间证书,中间证书可以利用自己的私钥对用户证书进行颁发

用户证书:用户提交公开信息和自己的公钥,由中间证书私钥计算签名,来得到自己的证书

1.5、证书链

整个认证链从根证书开始,经过中间证书,最终达到用户证书,由于签名只能由证书颁发者的公钥进行验证,所以在根证书正确的前提下,保证了整个链条的安全性

2、SSL/TLS

SSL(Secure Socket Layer)是安全套接字层,TLS(Transport Layer Security)传输层安全是基于SSL3.0设计的协议,实际上相当于SSL的后续版本。

SSL/TLS是一个安全通信框架,属于传输层,上面可以承载HTTP协议和SMTP/POP3协议等。其属于传输层和应用层之间。

3、HTTPS通信流程

此时如果发生中间人攻击,客户端获取的证书其实是中间人的证书,拿到的公钥也是中间人的,发送的请求,中间人自然可以解密,中间人冒充客户端和服务端进行通信,所有的通信对于中间人来说就是透明的。

这里最大的问题就是如何确保客户端获取的公钥是要访问的网站的,所以引入了证书验证,由可信任的认证中心进行颁发,同时由于电脑上有认证中心的根证书,所以可以对网站的证书进行验证,判断是否合法。

4、TLS握手流程

握手流程分为四步:

1、客户端发起请求:

  • ClientHello:客户端TLS版本、客户端随机数、密码套件列表。Wireshark抓包数据如下图:

       

2、服务端发起请求:

  • ServerHello:服务端TLS版本、服务端随机数、确定的密码套件

       

  • Certificate:证书(包含公钥)、Server Key Exchange:密钥交换、Server Hello:服务端Hello结束

         

3、客户端

5、数字证书颁发和验证流程

在保证根证书可信任的前提下,使用根证书的公钥解密中间证书的签名,得到解密的hash值,然后计算中间证书公开信息的hash值,比较 解密得到的hash值和计算出的hash值,如果相等,则中间证书可信;用户证书的验证同理。

如此便可以保证用户证书中的公钥是可信任的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/742413.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

仙侠天花板,圆你土豪梦,上古传说手游详细图文架设教程

这次给大家带来的是一款我的心头好,绝对是我所有架设游戏里排名前三的,一款经典的仙侠手游,安卓苹果双端,画质精美程度真的没有哪几个游戏可以比得上,故事情节加上背景音乐绝对值得沉浸其中慢慢玩。前言 这次给大家带来的是一款我的心头好,绝对是我所有架设游戏里排名前三…

【Spring Cloud】之Nacos

——笔记源于黑马使用Nacos启动Nacosstartup.cmd -m standalone 单机启动Nacos在父工程pom.xml引入依赖<!--spring cloud alibaba--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</arti…

DevOps系列一(介绍)

一、DevOps字面意思 是Development&Operations的缩写,也就是开发&运维。 二、DevOps强调的是 高效组织团队之间如何通过自动化的工具协作和沟通来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。三、整体的软件开发流程包括PLAN:开发团队根据客户的目…

pycharm 远程运行时,出现报错 cant open file /tmp/ : [Errno 2] No such file or directory

路径映射出现问题,在部署时,使用自动检测的根目录,可以解决问题

麒麟合盛网络技术股份公司-移动端测试|12-20K

1、公司要求条件详细要求 任职条件: 1)本科及以上学历,1-3年左右手机APP测试经验 2) 熟悉Python、PHP等语言,有Python脚本经验更佳 3) 熟悉MYSQL、Linux常用命令,熟悉HTTP协议 4)熟悉使用如下工具:ADB、Charles/ Fiddler、Teambition、Jira、Jenkins等 5)精通测试流程和用例…

MUR2060CTR-ASEMI无人机专用MUR2060CTR

MUR2060CTR-ASEMI无人机专用MUR2060CTR编辑:ll MUR2060CTR-ASEMI无人机专用MUR2060CTR 型号:MUR2060CTR 品牌:ASEMI 封装:TO-220 批号:最新 最大平均正向电流(IF):20A 最大循环峰值反向电压(VRRM):600V 最大正向电压(VF):0.95V~1.90V 工作温度:-50C~150C 反向恢…

Solo 开发者周刊 (第13期):独立开发者的创新集——橘猫、记一杯与Newcar

这里会整合 Solo 社区每周推广内容、产品模块或活动投稿,每周五发布。在这期周刊中,我们将深入探讨开源软件产品的开发旅程,分享来自一线独立开发者的经验和见解。本杂志开源,欢迎投稿。产品推荐 1、橘猫起始页——一款不一样的浏览器标签页功能介绍极简首屏 聚合搜索,支持…

ssh免密码登录

一、本地创建ssh秘钥 ssh-genkey -t rsa # 生成的文件在当前用户的~/.ssh目录下二、将本地生成的公钥上传到服务器 1. ssh-copy-id username@ip -p port # 需要知道服务器密码 2. 将公钥内容或文件写入到服务器的authorized_keys文件 # 用于通过堡垒机登录服务器不知道密码的…

关于Java内存区域的理解和记录

近期做项目遇到了FullGC的问题,干脆总结一下Java内存区域分布和垃圾回收是咋回事。 Java内存区域按照线程隔离状态直接分成三大块空间: 线程私有: 程序计数器 是一块较小的内存空间,可以看做当前线程所执行的字节码的行号指示器。在虚拟机概念模型里,字节码解释器工作时就…

项目前端

目录vue组件基础页面组件组件与链接关联按键绑定网址获取当前网页地址bootstrap常用★实现地图以及地图刷新游戏基类游戏对象地图变量函数null墙★PK页面 vue组件 基础组件名两个大写字母 template,script,style(带上scoped,给该css加上随机字符串,不影响到其他组件) 使用…

Vue3中组件使用ref时获取组件类型推导

本文由 ChatMoney团队出品 我们在使用Vue3+ts开发时,常常会用到一些第三方组件库,比如Element-Plus UI、Navie UI等,这些UI框架中有些组件常常会暴露一些方法给我们便捷的去实现各种复杂的交互,我们经常会像下面这样去给组件定义一个ref去获取组件的实例: <template>…

火山引擎数智平台赋能火花思维,A/B测试加速创新

在数字化浪潮下,火花思维凭借其对数据驱动的理解与实践,搭上了业务快速增长的快车。这一效果的背后,离不开火花思维与火山引擎数智平台的深度合作。通过引入火山引擎的DataFinder和DataTester等产品,火花思维实现了数据问题的快速定位与数据资产的高效利用。更多技术交流、…