https为何安全?

HTTPS(超文本传输安全协议)是一种用于安全通信的网络协议,它在HTTP协议的基础上通过SSL/TLS(安全套接层/传输层安全)协议来加密数据,以保护网络数据的传输安全。
[图片]

TLS/SSL 基础概念

概念源自百度百科:传输层安全性协议 TLS(Transport Layer Security),及其前身安全套接层 SSL(Secure Sockets Layer)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。网景公司(Netscape)在 1994 年推出首版网页浏览器,网景导航者时,推出 HTTPS 协议,以 SSL 进行加密,这是 SSL 的起源。IETF 将 SSL 进行标准化,1999 年公布第一版 TLS 标准文件。随后又公布RFC 5246(2008年8月)与RFC 6176(2011年3月)。在浏览器、邮箱、即时通信、VoIP、网络传真等应用程序中,广泛支持这个协议。主要的网站,如 Google、Facebook 等也以这个协议来创建安全连线,发送数据。目前已成为互联网上保密通信的工业标准
[图片]

TLS/SSL 的功能实现主要依赖于三类基本算法:散列函数 Hash、对称加密和非对称加密,其利用非对称加密实现身份认证和密钥协商,对称加密算法采用协商的密钥对数据加密,基于散列函数验证信息的完整性

题外:

  1. 握手期间所使用的的密钥交换和认证算法 (最常用的是 RSA [非对称加密]算法)
  2. 加密算法 (用于握手完成后的对称加密,常用的有 AES、3DES[对称加密]等)
  3. 信息摘要算法 (常用的有 SHA-256、SHA-1 和 MD5[散列函数] 等)

SSL/TLS 协议

HTTPS使用SSL/TLS协议来建立一个加密的通信通道。SSL/TLS协议的主要功能包括:

  • 身份验证:通过证书来验证服务器的身份,确保用户连接的是正确的服务器。
  • 数据加密:使用对称加密算法来加密传输的数据,保证数据的机密性。
  • 数据完整性:通过消息认证码(MAC)或数字签名来确保数据在传输过程中未被篡改。
    SSL 和 TLS 协议可以为通信双方提供识别和认证通道,从而保证通信的机密性和数据完整性。

TLS 协议是从Netscape SSL 3.0协议演变而来的,不过这两种协议并不兼容,SSL 已经逐渐被 TLS 取代,所以下文就以 TLS 指代安全层。 TLS 握手是启动 HTTPS 通信的过程,类似于 TCP 建立连接时的三次握手。 在 TLS 握手的过程中,通信双方交换消息以相互验证,相互确认,并确立它们所要使用的加密算法以及会话密钥 (用于对称加密的密钥)。可以说,TLS 握手是 HTTPS 通信的基础部分。

数字证书

数字证书是由可信的第三方机构(CA,证书颁发机构)颁发的,用于证明服务器的身份。证书中包含了:

  • 公钥:服务器的公钥,用于加密客户端发送的数据。
  • 证书持有者信息:服务器的名称和其他身份信息。
  • 证书颁发机构信息:CA的名称和其他信息。
  • 证书有效期:证书的有效时间范围。

握手过程

当用户通过浏览器访问一个HTTPS网站时,会触发SSL/TLS握手过程:

  • 客户端发起连接:浏览器向服务器发送一个“Hello”消息,包含支持的加密套件和协议版本
  • 服务器响应:服务器回复一个“Hello”消息,选择一个加密套件,并发送其数字证书
  • 证书验证:浏览器验证服务器的证书是否有效,包括证书链的完整性和证书的有效期
  • 密钥交换:使用DH(Diffie-Hellman)密钥交换算法或ECDH(椭圆曲线Diffie-Hellman)算法生成一个会话密钥
  • 加密通信:使用会话密钥对数据进行加密,然后通过安全的通道传输
    [图片]

对称加密与非对称加密

非对称加密:用于在握手阶段安全地交换密钥。服务器的公钥加密数据,只有服务器的私钥才能解密

  • 对称加密:用于加密实际传输的数据。使用会话密钥进行加密,速度快,适合大量数据的加密

安全特性

前向保密:即使服务器的私钥被泄露,也无法解密之前的通信数据

  • 完整性校验:通过消息认证码或数字签名确保数据在传输过程中未被篡改
  • 身份验证:通过证书验证服务器的身份,防止中间人攻击

https的优势

数据加密:保护用户数据不被窃听

  1. 身份验证:确保用户访问的是正确的服务器
  2. 数据完整性:确保数据在传输过程中未被篡改

https这么安全,那可以被抓包吗?

理论上,HTTPS 协议本身是安全的,不容易被“抓包”(即在传输过程中被截获和阅读)。但是,确实存在一些特定情况下可以实施抓包的方法,这些方法通常需要满足一些前提条件,并且可能伴随着安全风险
实现HTTPS抓包的几种方法:

  1. 中间人攻击(MITM):攻击者通过篡改网络配置,使目标流量经过其控制的服务器,从而实现对HTTPS流量的截获和可能的解密
  2. 安装根证书:攻击者通过让客户端安装一个由其控制的根证书,可以对通过该根证书签名的所有HTTPS流量进行解密。如果攻击者能够让客户端安装一个由他们控制的根证书,那么攻击者可以创建一个伪造的CA,并用这个伪造的CA签发一个看似合法的服务器证书。当客户端尝试连接到服务器时:
    a.伪造证书:攻击者可以拦截服务器的原始证书,并替换为伪造的证书。
    b.证书链验证:由于客户端信任攻击者的根证书,伪造的证书在验证过程中会被认为是有效的。
    c.密钥交换:客户端使用伪造证书中的公钥加密会话密钥,并发送给攻击者(MITM代理)。
    d.中间人攻击:攻击者(MITM代理)解密会话密钥,然后使用这个密钥加密自己的会话密钥发送给服务器。此时,攻击者拥有了两个会话密钥,可以解密和重新加密客户端和服务器之间的通信。
    e.流量捕获:攻击者可以捕获、查看和修改客户端和服务器之间的加密通信。
  3. 使用代理工具:网络调试和代理工具(如Fiddler、Charles或Wireshark)可以配置为MITM代理,用于截获和分析HTTPS流量,但这通常需要用户信任并安装代理服务器的证书
  4. 利用漏洞:如果客户端或服务器存在安全漏洞,攻击者可能利用这些漏洞来解密或篡改HTTPS流量
  5. 浏览器扩展或插件:恶意的浏览器扩展或插件可以捕获并分析通过浏览器传输的HTTPS流量
  6. 操作系统或网络驱动级别的工具:某些操作系统或网络驱动级别的工具能够捕获网络流量,包括加密的HTTPS流量
  7. 合作方:如果通信的一方与攻击者合作,攻击者可能获得解密密钥
    合法性和道德考量: 大多数合法的HTTPS抓包活动都是在用户知情并同意的情况下进行的,例如在开发和测试环境中。然而,未经授权的抓取和解密HTTPS流量通常被视为非法行为,因为它侵犯了通信的隐私和安全性
    工具配置示例: Wireshark和Charles等工具可以用于捕获HTTPS流量,但这通常需要用户或管理员进行特定配置,例如安装根证书或设置SSLKEYLOGFILE环境变量以记录TLS会话密钥。这些操作可以帮助开发者或网络安全专家在合法和道德的范围内分析和调试HTTPS流量

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

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

相关文章

电磁兼容(EMC):时钟电路PCB设计

目录 1. 布局 2. 布线 时钟电路做为产品内部的强辐射源,在设计阶段已经选用展频或者分频方案后,见另外接下来就需要对PCB的耦合路径进行规划设计。时钟电路具体的PCB设计具体要求如下: 1. 布局 结构干涉:时钟电路的晶振和法拉电…

BUUCTF---misc---我吃三明治

1、下载附件是一张图片 2、在winhex分析,看到一串整齐的编码有点可疑,保存下来,拿去解码,发现解不了,看来思路不对 3、再仔细往下看的时候也发现了一处这样的编码,但是这次编码后面多了一段base编码 4、拿去…

JS对象超细

目录 一、对象是什么 1.对象声明语法 2.对象有属性和方法组成 二、对象的使用 1.对象的使用 (1)查 (2)改 (3)增 (4)删(了解) (5&#xf…

Linux文件:缓冲区、缓冲区刷新机制 | C库模拟实现

Linux文件:缓冲区、缓冲区刷新机制 | C库模拟实现 一、缓冲区的作用二、缓冲区的刷新机制三、测试样例解析3.1 测试样例和运行结果3.2 结果分析1、向显示器文件写入:2、向磁盘文件进行写入: 四、语言级别的缓冲区究竟在哪?五、C库…

网络原理3

运营商路由器,也可以把它当做一个NAT设备它就会对中间经过的数据包,进行网络地址转换当内网设备经过运营商路由器访问外网的时候就会把IP数据包中的源ip,替换成它自己的ip. 我的电脑要发送一个数据给cctalk服务器此时,我的电脑上就…

二叉树求解大小操作详解

目录 一、求所有结点个数 1.1 递归思路 1.2 递归分支图 1.3 递归栈帧图 1.4 C语言实现 二、求叶子结点个数 2.1 递归思路 2.2 递归分支图 2.3 递归栈帧图 2.4 C语言实现 三、求第K层的结点个数 3.1 递归思路 3.2 递归分支图 3.3 递归栈帧图 3.4 C语言实现 四、求…

高性能负载均衡的分类及架构分析

如何选择与部署适合的高性能负载均衡方案? 当单服务器性能无法满足需求,高性能集群便成为提升系统处理能力的关键。其核心在于通过增加服务器数量,强化整体计算能力。而集群设计的挑战在于任务分配,因为无论在哪台服务器上执行&am…

新火种AI|净利润上升628%,英伟达财报说明AI热潮还将持续

作者:一号 编辑:美美 AI大潮仍未放缓,英伟达再次超越预期。 今天凌晨,全球AI算力芯片龙头,被称为“AI时代卖铲人”的英伟达,正式公布了截至2024年4月28日的2025财年第一财季财报,其中第一财季…

java8总结

java8总结 java8新特性总结1. 行为参数化2. lambda表达式2.1 函数式接口2.2 函数描述符 3. Stream API3.1 付诸实践 java8新特性总结 行为参数化lambda表达式Stream Api 1. 行为参数化 定义:行为参数化,就是一个方法接受多个不同的行为作为参数&#x…

C++第三方库【JSON】— jsoncpp

目录 认识JSON jsoncpp库 安装&使用 认识jsoncpp Json::Value jsoncpp序列化 jsoncpp反序列化 认识JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据,常用于在客户端和服…

钉钉网页应用使用JSAPI报错,dd.alert提示errorCode:3.errorMessage:No value for message

问题分析: 起因是我用下图这个页面(配置JSAPI鉴权)的链接下载了JSAPI(客户端API)的SDK,但其实如图所示这个版本是2.10.3: 通过查看dingtalk-jsapi的npm版本,可以知道钉钉的JSAPI已…

c++设计模式-->访问者模式

#include <iostream> #include <string> #include <memory> using namespace std;class AbstractMember; // 前向声明// 行为基类 class AbstractAction { public:virtual void maleDoing(AbstractMember* member) 0;virtual void femaleDoing(AbstractMemb…

荣耀MagicBook X 14 Pro锐龙版 2023 集显(FRI-H76)笔记本电脑原装出厂Windows11系统工厂模式安装包下载,带F10智能还原

恢复开箱状态预装OEM系统&#xff0c;适用型号&#xff1a;HONOR荣耀FRI-H76、FRI-H56 链接&#xff1a;https://pan.baidu.com/s/1Lcg45byotu5kDDSBs3FStA?pwdl30r 提取码&#xff1a;l30r 华为荣耀原装WIN11系统工厂安装包&#xff0c;含F10一键恢复功能、系统自带所有驱…

H800基础能力测试

H800基础能力测试 参考链接A100、A800、H100、H800差异H100详细规格H100 TensorCore FP16 理论算力计算公式锁频安装依赖pytorch FP16算力测试cublas FP16算力测试运行cuda-samples 本文记录了H800基础测试步骤及测试结果 参考链接 NVIDIA H100 Tensor Core GPU Architecture…

快速搭建SpringMvc项目

一、什么是springMvc 1、介绍 Spring Web MVC是基于Servlet API构建的原始Web框架&#xff0c;从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块的名称&#xff08; spring-webmvc &#xff09;&#xff0c;但它通常被称为“Spring MVC”。 在控制…

NFT开发框架和工具

NFT&#xff08;非同质化代币&#xff09;开发涉及多个框架和工具&#xff0c;帮助开发者创建、管理和交易NFT。以下是一些常用的NFT开发框架和工具&#xff0c;这些框架和工具覆盖了NFT开发的各个方面&#xff0c;从智能合约编写到前端集成&#xff0c;再到区块链平台和市场&a…

syncthing文件夹同步与版本管理

1 前言 syncthing可以用来同步文件夹里的所有文件&#xff0c;并且有不错的版本管理&#xff0c;基本每次更改文件&#xff0c;20-40秒就被扫描到了&#xff0c;非常丝滑&#xff1b;这次以此来同步obsidian的插件和文件&#xff0c;达到多端同步&#xff1b; 我家里有一台台…

ubuntu设置root开机登录,允许root用户ssh远程登录

ubuntu与centos系统不同&#xff0c;默认root开机不能登录。 1、输入一下命令创建root密码&#xff0c;根据提示输入新密码 sudo passwd root 2、打开gdm-autologin文件&#xff0c;将auth required pam_succeed_if.so user ! root quiet_success这行注释掉&#xff0c;这行就…

leetCode-hot100-数组专题之区间问题

数组专题之区间问题 知识点&#xff1a;解决思路&#xff1a;例题56.合并区间57.插入区间253.会议室 Ⅱ485.无重叠区间 数组区间问题是算法中常见的一类问题&#xff0c;它们通常涉及对数组中的区间进行排序、合并、插入或删除操作。无论是合并区间、插入区间还是删除重复空间&…

使用ScriptGraphicHelper综合图色助手进行找色

使用ScriptGraphicHelper综合图色助手进行找色&#xff0c;然后使用autojs进行点击具体位置。 打开ScriptGraphicHelper软件&#xff0c;载入截图后如上图&#xff0c;比如要点击微信 按住鼠标左键&#xff0c;拖动&#xff0c;选择上图箭头位置,然后点击裁图 可以点击容差范围…