什么是HTTPS

2023-11-07

首先,在参考《Tomcat内核设计剖析》、《大型网站技术架构》的基础上加了一些个人理解,如有错误或者不全面的地方,还请大家指出。

在知道什么是HTTPS之前,我们首先要知道一下什么是HTTP,HTTP是超文本传输协议的简称,工作在应用层,传输层基于TCP。

HTTP协议是用于从WEB服务器传输超文本到本地浏览器的协议。

HTTPS是HTTP的安全版,本质上是在传输层(TCP)与应用层(HTTP)之间增加了一个SSL或TLS协议层。SSL/TLS协议提供了加解密的机制,所以它比HTTP协议更加安全。

SSL/TLS协议

SSL是使用最广泛的网络加密协议,工作在传输层与应用层之间,被广泛运用于WEB浏览器和服务器之间的身份认证以及传输数据加密,主要为我们提供三方面的服务:

1.证书

认证客户端和服务器,确保数据发送到正确的客户端和服务器。

在整个SSL握手通信过程中,服务端的证书会发送到客户端,客户端对此证书的合法性及身份进行核查。客户端在收到证书后,读取证书中的发布机构,匹配客户端内置的受信任的发布机构列表。如果找不到,则说明这个证书发布机构不可信任,证书自然也不可信。如果是受信任机构发布的,客户端将使用受信任机构的公钥对服务器证书里面的指纹和指纹算法(如md5)进行解密,再利用这个指纹算法计算服务器证书的指纹,把计算出来的指纹与证书里面的指纹进行对比,进而判断证书是否被修改过。

2.加密

防止数据在传输过程中被窃取(防止别人获取到数据内容)。

对称加密算法

所谓对称加密是指加密和解密使用的是同一个密钥(或者可以相互推算)

如:服务端将报文内容用“123”这个密钥加密,传输到客户端后,客户端用“123”这个密钥解密,即可得到报文内容

优点:算法简单、加密效率高、系统开销小,因此适合对大量数据加密。

缺点:加解密使用的是同一个密钥,在远程通信的情况下安全地传输密钥是一个问题,这就类似于鸡生蛋、蛋生鸡的问题。

非对称加密算法

非对称加密算法的加密和解密使用的是不一样的密钥,其中一个对外界公开(公钥),另一个只有密钥的所有者知道(私钥)。用公钥加密的信息只有用私钥才能解开,同理,用私钥加密的信息只有用公钥才能解开。理论上不能通过公钥计算出私钥。

服务端在给客户端发消息的时候,可以先用公钥进行加密,发给客户端,客户端收到消息,用私钥解密,就可得知消息内容。

优点:较为安全

缺点:加解密效率低下,比对称加密算法要慢约百倍

3.签名

维护数据的完整性,确保数据在传输过程中不被篡改

发送端在发送报文时,发送方用一个哈希函数从报文文本中生成报文摘要,然后用自己的私人密钥对这个摘要进行加密,这个加密后的摘要将作为报文的数字签名和报文一起发送给接收方,接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再用发送方的公用密钥来对报文附加的数字签名进行解密,如果这两个摘要相同、那么接收方就能确认该数字签名是发送方的,可确保数据在传输过程中未被篡改。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是HTTPS 的相关文章

  • 国内名校还是国外读书

    cloudiris Iris Mon Jul 4 14 07 23 2011 年少也曾轻狂过 回头望 世事无常 伤心处 英语硬伤 个人很羡慕那些能坚定出国这一条路的人 我承认自己太软弱 总是被身边的事情羁绊 不够坚强 不过现在看来 清华这个
  • SQL Server中bcp命令的用法以及数据批量导入导出

    1 bcp命令参数解析 bcp命令有许多参数 下面给出bcp命令参数的简要解析 用法 bcp dbtable query in out queryout format 数据文件 m 最大错误数 f 格式化文件 e 错误文件 F 首行 L 末

随机推荐

  • Oracle删除重复数据的几种方式

    包含空字段的数据去重 DELETE FROM TABLE NAME WHERE ROWID NOT IN SELECT MIN ROWID FROM TABLE NAME GROUP BY COLUMN1 COLUMN2 不包含空字段的数据
  • 手把手教你如何安装Pycharm

    今天给大家分享如何在本机上下载和安装Pycharm 具体的教程如下 1 首先去Pycharm官网 或者直接输入网址 http www jetbrains com pycharm download section windows 下载PyCh
  • Spring AOP 源码解析

    AOP中的几个概念 Advisor 和 Advice Advice 我们通常都会把他翻译为通知 其实很不好理解 其实他还有另外一个意思 就是 建议 我觉得把Advice理解为 建议 会更好 比如 我们已经完成了一个功能 这时客户跟我们说 我
  • Spark组件:RDD、DataFrame和DataSet介绍、场景与比较

    1 rdd dataframe dataset在哪个版本被引入 2 什么情况下使用rdd dataframe dataset 3 它们有什么不同 spark生态系统中 Spark Core 包括各种Spark的各种核心组件 它们能够对内存和
  • 数字后端知识点扫盲——芯片harden block的划分

    后端在floorplan阶段 如何摆放macro是一个很重要的问题 如果采用层次化设计 对于每一个block来说都需要在block内部把锁分配的macro摆好 如果某一个block里的macro很多 而且又很大 std cell再多一些 这
  • Lattice 开发工具Diamond 相关版本下载地址

    百度网盘 https wenku baidu com view 21b98975192e45361066f5f3 html 官网下载 http www latticesemi com Support SoftwareArchive aspx
  • 'DataFrame' object has no attribute 'dtype'

    这个错误消息的意思是 在你的代码中 你试图访问一个Pandas DataFrame对象的 dtype 属性 但该对象并没有这个属性 在Pandas中 DataFrame没有 dtype 属性 你可以使用 dtypes 属性来获取DataFr
  • 在vs2019配置MySQL环境,不需要每次新建一个项目重新配置的方法(图文详解)

    目录 问题 解决方法 问题 上一期讲到怎么在vs2019去配置mysql的编译环境vs2019 c c 配置MySQL数据库的环境 图文详解 守约斯维奇的博客 CSDN博客 这里我们会觉得当建立一个新项目的时候去配置mysql的编译环境非常
  • Qt D-Bus

    介绍 D Bus是为Linux系统开发的进程间通信 IPC 和远程过程调用 RPC 机制 使用统一的通信协议来代替现有的各种IPC解决方案 它允许系统级进程 如 打印机和硬件驱动服务 和普通用户进程进行通信 它使用一个快速的二进制消息传递协
  • 分布式理论-拜占庭将军(译)

    作者 LESLIE LAMPORT ROBERT SHOSTAK and MARSHALL 1982 译者 phylips bmy 出处 http duanple blog 163 com blog static 7097176720112
  • springBoot 拦截器

    声明 代码是JavaEE开发的颠覆者 Spring Boot实战代码中的 我买了这书 并练习 public class DemoInterceptor extends HandlerInterceptorAdapter 1 Override
  • 笔录getResource() 与 getClassLoader().getResource()

    结论 1 Class getResource String path path路径的前缀不是 表示从此类所在的包下取资源文件 path路径的前缀是 则是从ClassPath根下获取资源文件 Class getResource和Class g
  • python seleium b站 自动投币脚本

    主要是给我的投币器做个铺垫 果然软件还是太容易了 难在硬件和外壳好吗 1 把edge的调试端口打开 添加以下参数 C Program Files x86 Microsoft Edge Application msedge exe remot
  • 在express项目里配置ejs模板引擎

    方法1 修改app js view engine setup app set views path join dirname views app set view engine ejs 在views中创建ejs模板文件 方法2 修改app
  • 老年人晕倒的几种原因

    晕倒是一种突发性 短暂性 一过性的意识丧失而昏倒 突然性的晕倒 跟大脑的神经有分不开关系 癫痫 脑供血不足 心脑血管疾病都是引起头晕倒的原因 大脑血液上不来 脑血液突然停止 就会产生放电波头晕的症状 患者会在一时间出现晕倒 很容易引起脑震荡
  • 在conda虚拟环境中的PyQt配置以及相关Pycharm设置

    文章目录 在conda虚拟环境中的PyQt配置 背景环境介绍 PyQt依赖包及PyQt tools的下载 Pycharm进行PyQt的相关配置 结语 在conda虚拟环境中的PyQt配置 作者 下龙湾 背景环境介绍 anaconda安装文件
  • Netty4简单认知

    Channel简介 在Netty中 Channel相当于一个Socket的抽象 它为用户提供了关于Socket状态 是连接还是断开 及对Socket的读 写等操作 每当Netty建立了一个连接 都创建一个与其对应的Channel实例 Cha
  • 各种排序算法的讲解与实现

    排序的分类 1 内部排序 内部排序 在整个排序过程中不需不访问外存便能完成 称这样的排序问题为内部排序 1 1 插入排序 插入排序 将无序序列中的一个或几个记录 插入 到有序的序列中 从而增加记录的有序序列的长度 主要思想是将第一个元素看做
  • 3D重建模的初步了解

    相关学习资料如下 cousera课程 https www coursera org learn robotics perception youtube课程 https www youtube com watch v RDkwklFGMfo
  • 什么是HTTPS

    首先 在参考 Tomcat内核设计剖析 大型网站技术架构 的基础上加了一些个人理解 如有错误或者不全面的地方 还请大家指出 在知道什么是HTTPS之前 我们首先要知道一下什么是HTTP HTTP是超文本传输协议的简称 工作在应用层 传输层基