数字证书_CA_详解

目录

一、数字证书简介

二、 CA(证书颁发机构)

(一) 证书链(信任链)

1. 根证书

2. 中间证书

3. 网站证书

(二) 抓包软件的证书链与信任机制

1. 抓包通信流程

2. 证书链伪造与信任验证流程

(三) 关于移动设备的CA


一、数字证书简介

数字证书就是网站的身份证 + 公钥、是用来证明身份搭建加密通道用的

证书通常包含以下信息:

  • 持有者的信息: 网站域名(最重要的)、组织名称(对于企业级证书)、地址等。
  • 公钥: 用于加密信息的密钥。
  • 颁发者信息: 签发该证书的证书颁发机构名称。
  • 有效期: 证书的生效日期和到期日期。
  • 数字签名: 由 CA 使用其私钥生成的签名,用于证明证书的真实性和完整性。浏览器可以用 CA 的公钥来验证这个签名。

二、 CA(证书颁发机构)

CA全称:Certificate Authority,即“证书颁发机构”,负责签发证书和提供背书服务的机构。

  • 签发: CA 生成一张新的证书,并用自己的私钥对其内容进行数字签名,正式颁布这个证书。
  • 背书: CA 用自己的名义担保:这个证书里的信息(比如域名、身份、公钥)是我验证过、我认可的。
  • 关于申请证书,有免费的CA(一般用于个人网站),有收费的CA(用于企业/银行等需高信任场景)。

注:CA(证书颁发机构)是一个角色,全球有很多个CA,任何合法的组织都可以成为 CA,只要它有能力签发并管理证书。

(一) 证书链(信任链)

注:如果证书链出现问题,客户端会提示证书不被信任等信息。

证书链:网站证书 → 中间证书 → 根证书。

验证过程

  • 客户端(浏览器)拿到网站证书,用中间证书的公钥验证它的签名。
  • 再用根证书的公钥验证中间证书的签名。
  • 最后确认根证书是否在客户端的信任列表中。

证书提供

  • 服务器:发送网站证书和中间证书。
  • 客户端:预装根证书,不需要服务器提供。

1. 根证书

根证书是信任链的起点,由根证书颁发机构自签名,客户端(浏览器)默认信任根证书

根证书预装在您的设备(比如电脑、手机的操作系统或浏览器)中,作为验证其他证书的“信任锚点”。

2. 中间证书

中间证书由根CA签发,授权给中间证书颁发机构,用来签发网站证书。

3. 网站证书

网站证书由中间CA签发,颁给具体的网站或服务器,包含网站的公钥和身份信息(如域名),用于加密通信和证明身份。

网站证书是你访问的网站拿给浏览器的“身份证”,里面包含网站域名、公钥等信息。

常见网站证书类型:

  • DV(域名验证证书)
    • 只验证域名所有权,比如你能证明你控制了 abc.com,就能签。
  • OV(组织验证证书)
    • 除了验证域名,还验证组织/企业的合法存在性和注册信息(工商注册、电话等)。
  • EV(扩展验证证书)
    • 最高级别验证,验证企业真实身份、营业执照、电话、注册地址等。
    • 部分浏览器(不同版本)会在地址栏显示“绿色锁”和公司名。

(二) 抓包软件的证书链与信任机制

1. 抓包通信流程

以访问 https://www.baidu.com 为例:

Burp Suite 在本地充当代理服务器,整个 HTTPS 抓包过程的核心通信路径如下:

  • 浏览器访问百度,实际连接的是本地的 BurpSuite 代理(如 127.0.0.1:8080)
    • 浏览器只与 Burp 通信,浏览器不与百度服务器做交互。
  • Burp 将请求转发给真实的百度服务器
  • 百度返回响应 → Burp 拦截并解析 → 再转发给浏览器
    • 浏览器收到的响应其实是 Burp 伪装百度发出的。

2. 证书链伪造与信任验证流程

由于浏览器访问的是 HTTPS,必须进行证书验证。流程如下:

  • 浏览器要求:提供 https://baidu.com 的合法证书
  • 但此时它连接的是 BurpSuite,不是百度。
  • Burp 动态生成伪造的“baidu.com”站点证书
    • 此证书由 Burp 内部的自签名 CA 生成(非真实百度证书)。
  • 浏览器校验证书的签发者
  • 若浏览器的CA中没有Burp自签名CA,浏览器就会提示:证书无效 / 连接不安全 / 无法建立安全连接等安全告警。

所以抓包软件一般都会有一个CA证书导入导出的功能。

(三) 关于移动设备的CA

安卓和苹果都把CA明确区分成了两种:

  • 系统 CA(System CA)
    • 出厂时就内置在操作系统里的根证书
    • 只能由厂商签名后刷入系统分区
    • 默认所有 App 都信任
    • 普通用户(非 root)无法修改或新增
  • 用户 CA(User CA)
    • 用户手动安装的证书(比如通过设置 → 安全 → 受信任凭据 → 用户)
    • 存在于用户空间

从 Android 7/ iOS 10 开始以后的版本,默认大部分APP不信任用户CA,所以即使把抓包软件的CA证书导入到手机中也没用除非是把证书装到了系统CA区(需要ROOT权限)

注:手机开启ROOT之后,也会遭受大部分APP限制,ROOT手机限制使用之类的。

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

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

相关文章

Android协程学习

目录 Android上的Kotlin协程介绍基本概念与简单使用示例协程的高级用法 结构化并发线程调度器(Dispatchers)自定义调度器并发:同步 vs 异步 异步并发(async 并行执行)同步顺序执行协程取消与超时 取消机制超时控制异步数据流 Flow协程间通信 使用 Channel使用 StateFlow /…

统计学(第8版)——假设检验学习笔记(考试用)

一、假设检验核心框架 (一)解决的核心问题 判断样本与总体 / 样本与样本的差异是由抽样误差还是本质差异引起 典型场景: 产品合格率是否达标(比例检验)工艺改进后均值是否显著变化(均值检验&#xff09…

Java求职者面试:微服务技术与源码原理深度解析

Java求职者面试:微服务技术与源码原理深度解析 第一轮:基础概念问题 1. 请解释什么是微服务架构,并说明其优势和挑战。 微服务架构是一种将单体应用拆分为多个小型、独立的服务的软件开发方法。每个服务都运行在自己的进程中,并…

c# 局部函数 定义、功能与示例

C# 局部函数:定义、功能与示例 1. 定义与功能 局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。 • 作用:封装仅用于当前方法的逻辑,避免污染类作用域,提升…

ava多线程实现HTTP断点续传:原理、设计与代码实现

一、引言 在当今互联网环境下,大文件下载需求日益增长。传统单线程下载方式效率低下,且一旦下载中断,需要重新开始。断点续传技术通过将文件分块并利用多线程并行下载,显著提升了下载效率,同时支持中断后继续下载。本…

vla学习 富

# 基于diffusion # π0 ## 架构 其核心思想是在预训练好的视觉语言模型(VLM)基础上添加一个“动作专家”(action expert),通过流匹配(flow matching)的方式生成连续的高频控制指令。整个架构可以…

降雨预测系统(机器学习)

这是一个基于Python开发的降雨预测系统,使用机器学习算法对指定月份的降雨概率进行预测。该系统提供了友好的图形用户界面(GUI),支持数据可视化和交互式操作。 ## 功能特点 - 📊 生成历史降雨数据(2015-2024年) - 🤖 使用逻辑回归模型进行降雨预测 - 📈 可视化…

逻辑回归与Softmax

Softmax函数是一种将一个含任意实数的K维向量转化为另一个K维向量的函数,这个输出向量的每个元素都在(0, 1)区间内,并且所有元素之和等于1。 因此,它可以被看作是某种概率分布,常用于多分类问题中作为输出层的激活函数。这里我们以拓展逻辑回归解决多分类的角度对Softmax函…

基于PSO与BP神经网络分类模型的特征选择实战(Python实现)

说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在机器学习建模过程中,特征选择是提升模型性能、降低计算复杂度的重要环节。尤其在高维数据场景下&…

深度学习之模型压缩三驾马车:基于ResNet18的模型剪枝实战(1)

一、背景:为什么需要模型剪枝? 随着深度学习的发展,模型参数量和计算量呈指数级增长。以ResNet18为例,其在ImageNet上的参数量约为1100万,虽然在服务器端运行流畅,但在移动端或嵌入式设备上部署时&#xf…

uni-app学习笔记二十四--showLoading和showModal的用法

showLoading(OBJECT) 显示 loading 提示框, 需主动调用 uni.hideLoading 才能关闭提示框。 OBJECT参数说明 参数类型必填说明平台差异说明titleString是提示的文字内容,显示在loading的下方maskBoolean否是否显示透明蒙层,防止触摸穿透,默…

【大模型RAG】六大 LangChain 支持向量库详细对比

摘要 向量数据库已经成为检索增强生成(RAG)、推荐系统和多模态检索的核心基础设施。本文从 Chroma、Elasticsearch、Milvus、Redis、FAISS、Pinecone 六款 LangChain 官方支持的 VectorStore 出发,梳理它们的特性、典型应用场景与性能边界&a…

【MySQL】数据库三大范式

目录 一. 什么是范式 二. 第一范式 三. 第二范式 不满足第二范式时可能出现的问题 四. 第三范式 一. 什么是范式 在数据库中范式其实就是一组规则,在我们设计数据库的时候,需要遵守不同的规则要求,设计出合理的关系型数据库,…

Coze工作流-语音故事创作-文本转语音的应用

教程简介 本教程将带着大家去了解怎么样把文本转换成语音,例如说我们要做一些有声故事,我们可能会用上一些语音的技术,来把你创作的故事朗读出来 首先我们创建一个工作流 对各个模块进行编辑,如果觉得系统提示词写的不好&#xf…

5.子网划分及分片相关计算

某公司网络使用 IP 地址空间 192.168.2.0/24,现需将其均分给 市场部 和 研发部 两个子网。已知: 🏢 市场部子网 🖥️ 已分配 IP 地址范围:192.168.2.1 ~ 192.168.2.30🌐 路由器接口 IP:192.16…

三体问题详解

从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…

机器学习算法时间复杂度解析:为什么它如此重要?

时间复杂度的重要性 虽然scikit-learn等库让机器学习算法的实现变得异常简单(通常只需2-3行代码),但这种便利性往往导致使用者忽视两个关键方面: 算法核心原理的理解缺失 忽视算法的数据适用条件 典型算法的时间复杂度陷阱 SV…

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…

OPENCV图形计算面积、弧长API讲解(1)

一.OPENCV图形面积、弧长计算的API介绍 之前我们已经把图形轮廓的检测、画框等功能讲解了一遍。那今天我们主要结合轮廓检测的API去计算图形的面积,这些面积可以是矩形、圆形等等。图形面积计算和弧长计算常用于车辆识别、桥梁识别等重要功能,常用的API…

一.设计模式的基本概念

一.核心概念 对软件设计中重复出现问题的成熟解决方案,提供代码可重用性、可维护性和扩展性保障。核心原则包括: 1.1. 单一职责原则‌ ‌定义‌:一个类只承担一个职责,避免因职责过多导致的代码耦合。 1.2. 开闭原则‌ ‌定义‌&#xf…