首页 > 其他分享 >HTTPS基础知识

HTTPS基础知识

时间:2023-05-29 16:33:48浏览次数:35  
标签:加密 报文 通信 基础知识 SSL HTTPS 客户端 公开密钥

HTTPS并非是应用层的一种新协议。只是HTTP通信接口部分用SSL(Secure Socket Layer)和TLS(Transport Layer Security)协议代替而已。

通常,HTTP直接和TCP通信。当使用SSL时,则演变成先和SSL通信,再由SSL和TCP通信了。简言之,所谓HTTPS,其实就是身披SSL协议这层外壳的HTTP。

SSL是独立于HTTP的协议,所以不光是HTTP协议,其他运行在应用层的SMTP和Telnet等协议均可配合SSL协议使用。可以说SSL是当今世界上应用最为广泛的网络安全技术。

对称加密:加密和解密同用一个密钥的方式称为共享密钥加密。

非对称加密:使用公开密钥加密方式,发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。利用这种方式,不需要发送用来解密的私有密钥,也不必担心密钥被入侵者窃听而盗走。

HTTPS采用对称加密和非对称加密两者并用的混合加密机制。若密钥能够实现安全交换,那么有可能会考虑仅使用非对称加密来通信。但是非对称加密与对称加密相比,其处理速度要慢。所以充分利用两者各自的优势,将多种方法组合起来用于通信。在交换密钥环节使用非对称加密方式,之后的建立通信交换报文阶段则使用对称加密方式

对称加密方式还是存在一些问题的。那就是无法证明公开密钥本身就是货真价实的公开密钥。这就有了数字证书认证机构。

数字证书认证机构的业务流程

  1. 服务器的运营人员向数字证书认证机构提出公开密钥的申请。数字证书认证机构在判明提出申请者的身份之后,会对已申请的公开密钥做数字签名,然后分配这个已签名的公开密钥,并将该公开密钥放入公钥证书后绑定在一起。
  2. 服务器会将这份由数字证书认证机构颁发的公钥证书发送给客户端,以进行公开密钥加密方式通信。公钥证书也可叫做数字证书或直接称为证书。
  3. 接到证书的客户端可使用数字证书认证机构的公开密钥,对那张证书上的数字签名进行验证,一旦验证通过,客户端便可明确两件事:一,认证服务器的公开密钥的是真实有效的数字证书认证机构。二,服务器的公开密钥是值得信赖的。
  4. 此处认证机关的公开密钥必须安全地转交给客户端。使用通信方式时,如何安全转交是一件很困难的事,因此,多数浏览器开发商发布版本时,会事先在内部植入常用认证机关的公开密钥。

证书的一个作用是用来证明作为通信一方的服务器是否规范,另外一个作用是可确认对方服务器背后运营的企业是否真实存在。拥有该特性的证书就是EV SSL证书(Extended Validation SSL Certificate)。

HTTPS的通信步骤

  1. 客户端通过发送Client Hello报文开始SSL通信。报文中包含客户端支持的SSL的指定版本、加密组件(Cipher Suite)列表(所使用的加密算法及密钥长度等)。
  2. 服务器可进行SSL通信时,会以Server Hello报文作为应答。和客户端一样,在报文中包含SSL版本以及加密组件。服务器的加密组件内容是从接收到的客户端加密组件内筛选出来的。
  3. 之后服务器发送Certificate报文。报文中包含公开密钥证书。
  4. 最后服务器发送Server Hello Done报文通知客户端,最初阶段的SSL握手协商部分结束。
  5. SSL第一次握手结束之后,客户端以Client Key Exchange报文作为回应。报文中包含通信加密中使用的一种被称为Pre-master secret的随机密码串。该报文已用步骤3中的公开密钥进行加密。
  6. 接着客户端继续发送Change Cipher Spec报文。该报文会提示服务器,在此报文之后的通信会采用Pre-master secret密钥加密。
  7. 客户端发送Finished报文。该报文包含连接至今全部报文的整体校验值。这次握手协商是否能够成功,要以服务器是否能够正确解密该报文作为判定标准。
  8. 服务器同样发送Change Cipher Spec报文。
  9. 服务器同样发送Finished报文。
  10. 服务器和客户端的Finished报文交换完毕之后,SSL连接就算建立完成。当然,通信会受到SSL的保护。从此处开始进行应用层协议的通信,即发送HTTP请求。
  11. 应用层协议通信,即发送HTTP响应。
  12. 最后由客户端断开连接。断开连接时,发送close_notify报文。上图做了一些省略,这步之后再发送TCP FIN报文来关闭与TCP的通信。

HTTPS基础知识_SSL

在以上流程中,应用层发送数据时会附加一种叫做MAC(Message Authentication Code)的报文摘要。MAC能够查知报文是否遭到篡改,从而保护报文的完整性。

SSL的慢分两种。一种是指通信慢。另一种是指由于大量消耗CPU及内存等资源,导致处理速度变慢。针对速度变慢这一问题,并没有根本性的解决方案,我们会使用SSL加速器这种(专用服务器)硬件来改善该问题。该硬件为SSL通信专用硬件,相对软件来讲,能够提高数倍SSL的计算速度。

标签:加密,报文,通信,基础知识,SSL,HTTPS,客户端,公开密钥
From: https://blog.51cto.com/key3feng/6372402

相关文章

  • 1万多公务员考试基础知识题库ACCESS数据库
    《公务员考试基础知识题库ACCESS数据库》搜集了大量公务员考试试题,包括公共基础知识试题、行政职业能力试题、法律基础知识试题、公安基础知识试题等。分类记录统计情况为:法律基础知识试题(共1359条)、公安基础知识试题(共1709条)、公共基础知识试题(共2905条)、行政职业能力试题(共661......
  • wireshark 结合 go 对每个请求进行 https tls tcp 内容解密
    众所周知,wireshark是一款流行的抓包软件,我们可以很方便地查看每个TCP包的具体信息。对于HTTP协议的数据,还可以查看每个协议层具体信息内容。但是对于HTTPS的数据,我们只能查看IP层以下的数据,TLS及以上的数据都是被加密过的,如下图所示。 在某些特殊的场景下,我们想查......
  • 网安--Linux操作系统基础知识
    1、Linux系统结构(1)内核1、管理进程(2)shell(包围在内核外的壳)接收用户的命令,经过转换,交给内核去执行查看shell工具 切换shell工具chsh-s例:chsh-s/bin/csh shell编程/shell脚本(.sh)#!/bin/bash(3)文件系统 "一切皆文件":以文件的方式进行访问lsof/bin/bash 查......
  • https
    server{   listen      80;   server_name jira.bdgatewaynet.com;   rewrite^(.*)https://$server_name$1permanent;}server{       listen443ssl;       server_name jira.bdgatewaynet.com;       ssl_certific......
  • 计算机基础知识的一些学习笔记
    Excel里用AND在开头连接多个条件。立即寻址访问速度最快。直接寻址方式下,操作数在内存中,指令中给出操作数的地址,需要再访问一次内存来得到操作数。立即寻址方式下,操作数在指令中,所以在取得指令时就得到操作数,是速度最快的。寄存器寻址方式下,操作数在CPU的寄存器中,与在......
  • SQL基础知识扫盲
    目录SQL&数据库基础知识扫盲SQL是什么?数据库是什么?挺身入局,实践出真知DBMS初体验MySQL:初体验Oracle:初体验PostgreSQL:初体验Demo示例很基础的一篇SQL基础扫盲入门教程,分享给大家,希望对你的学习和工作有所帮助。此篇总结是对之前发出的SQL是什么进行补充。进入正题之前,我想......
  • 力扣 662 https://leetcode.cn/problems/maximum-width-of-binary-tree/
    需要了解树的顺序存储如果是普通的二叉树,底层是用链表去连接的如果是满二叉树,底层用的是数组去放的,而数组放的时候会有索引对应当前父节点是索引i,下一个左右节点就是2i,2i+1利用满二叉树的索引特征所以需要对每个节点进行一个索引赋值,赋值在队列中,队列用数组表示核心代码......
  • https:imnks.com369.html hosts处理
    https:imnks.com369.htmlhosts处理sudo-i#手动筛选的ip,2022.11.1更新curlhttp://code.imnks.com/hosts.sh|bash#自动筛选的ipcurlhttp://code.imnks.com/hosts-auto.sh|bash​​......
  • 彻底搞懂https02
    阅读前,请详细搞懂廖大的“加密与安全章节”:https://www.liaoxuefeng.com/wiki/1252599548343744/1304227968188450数字证书在传输的过程中,客户端如何获得服务器端的公钥呢?当时是服务器分发给客户端,如果一开始服务端发送的公钥到客户端的过程中有可能被第三方劫持,然后第三方自......
  • Spring boot+vue打包、上传宝塔面板并配置https
    终于把网站搞完了,也终于能够通过域名访问了,这次就简单回顾一下这么多时间的经历,总结一下。项目地址穆音博客,本文发布原地址在Springboot+vue打包、上传宝塔面板并配置https我的开发环境是前端使用vue-admin-template,后端使用Springboot+mybatis-plus,由于我要根据后端打包的效......