【学习笔记】SSL证书安全机制之证书撤销

前言:以往提到过,钓鱼网站会仿冒我们,如果我们的私钥泄露了,如果被不法分子得到了私钥,他们就能假装是我们网站。那现在,我们要做的是生成新私钥并申请新证书。问题来了,旧的证书亦然存在且有效,我们没法阻止不法分子恶意去使用该证书。这时候,我们就需要证书撤销(Certificate Revocation)

1、定义

        Certificate Revocation(证书撤销)是使特定证书失效的过程。

2、有2种方式来检查证书是否被撤销

  • CRL - Certificate Revocation List
  • OCSP - Online Certificate Status Protocol

3、CRL - Certificate Revocation List,证书撤销列表

  • 由CA维护的、被撤销的证书的列表
  • CRL的位置嵌入在每一张证书里
  • CRL包含证书序列号和被撤销的日期,有时CRL条目还包含撤销原因
  • Client如何检查该列表
    • Client向Server请求一张证书,然后Server会提供证书
    • Client一旦得到证书,就会从证书里定位到CRL分发点,然后从CA下载CRL
    • Client会检查CRL的每个条目来找到证书的序列号(如果证书序列号出现在CRL中,说明该证书已经被撤销,不可信了;反之,如果没有在CRL中找到该证书序列号,说明证书没有被撤销,我们可以继续信任它)

    • 对CRL流程的批评
      • 繁琐而缓慢
        • CRL非常长,有成千上万行,每次Client访问新的SSL网站,都要检查证书撤销列表,意味着浏览器要加载很久
        • 此外,这些CRL是公共托管的列表,因而不是实时更新的(CA每5-14天更新一次,如果我证书私钥今天泄露了,而CA昨天刚更新一次CRL,那我后面两周就不安全了)
      • 经常甚至没有被检查
        • 而相比安全,用户更倾向于速度
        • 一些浏览器维护本地CRL
          • Chrome:CRLSet;Firefox:oneCRL

4、OCSP - Online Certificate Status Protocol,在线证书状态协议

  • “OCSP Responder”(OCSP应答器)由CA所维护
    • 提供实时证书状态
  • 优点是可以根据序列号单独请求状态(不用每次都检查成千上万个条目了)
  • OCSP应答器的位置被嵌入在每张证书里(和CRL一样)
  • 请求是通过HTTP
    • 证书状态不是敏感信息
    • 状态由CA所签名(用CA的公钥可以验证是不是对的OCSP应答器)
  • OCSP流程
    • Client向Server请求证书,然后查看证书里的OCSP应答器的URL
    • Client向OCSP应答器(由CA所维护)请求证书状态
    • OCSP应答器会回复状态信息
      • Good;Revoked;Unknown
  • OCSP的2个批评
    • 隐私:每次Client访问Server,CA都会被联系到
      • CA知道Server的访问数据
      • CA知道到Client访问浏览器的历史信息
    • 需要非常有弹性(resilient)的OCSP应答器
      • OCSP应答器要随时准备好应对大量的访问,万一因为访问量过大而导致服务器超载并且宕机了,那么Client就没法查看证书状态了
    • 因为OCSP是通过HTTP进行请求,而HTTP请求能够被中断(虽然因为CA的签名没法更改状态,但可以直接中断)

5、OCSP Stapling(OCSP装订,修正了OCSP的问题)-目前行业内最好的解决方案

  • Server会间歇性地请求自己的状态
    • 刷新间隔:5分钟 - 10天
    • 状态带有时间戳并且被CA签名
  • Client请求证书及其状态
  • Server提供证书以及从CA得到的状态
    • 状态是可信的,因为有CA的签名,而我们信任该CA
  • Server的安全负担
    • 而不是Client(这是好事,Client不需要做太多安全相关的事情)
  • 需要支持TLS1.2+或更高版本
    • 也需要Client和Server支持
    • 目前支持的只有30%多的Server

参考文献

1、网站:Practical Networking.net:Practical TLS

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

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

相关文章

sql-labs51-55通关攻略

第51关 一.查询数据库 1and updatexml(1,concat(0x7e,(select database()),0x7e),1)-- 二.查表 and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schemadatabase() ),0x7e),1) -- 三.查列 and updatexml(1,concat…

如何利用mHand Pro动捕数据手套连接虚拟与现实?

数据手套作为虚拟现实中的一种交互动捕设备,能够模拟真人手部的动作和感知反馈,实现人机交互的效果。随着虚拟现实技术的不断发展,数据手套也在不断地改进和升级。 mHand Pro是一款由拥有多年经验的惯性动作捕捉技术团队广州虚拟动力研发的数…

Java并发编程实战 04 | 使用WaitNotify时要注意什么?

在 Java 中,wait()、notify() 和 notifyAll() 方法在多线程编程中主要用于线程间的协作和同步。理解这些方法的使用特点对于编写稳定的多线程程序至关重要。我们将从以下三个问题入手深入探讨它们的使用: 为什么必须在 synchronized 代码块中使用 wait(…

gazebo可能打不开的问题

如果经常遇到gazebo只能断网才能运行的时候,主要就是因为无法联网访问gazebo的在线模型库,此时我们一般无法在联网的情况下打开gazebo。 这个时候就直接将下载好的模型先放到~/.gazebo/models/文件夹下面即可: https://github.com/osrf/gazeb…

大语言模型(LLM)如何更好地继续预训练(Continue PreTraining)

预训练(Pretraining)是一个非常消耗资源的工作,尤其在 LLM 时代。随着LLama2的开源,越来越多人都开始尝试在这个强大的英文基座模型上进行中文增强。但,我们如何才能保证模型在既学到「中文知识」的情况下,…

简单的EasyCaptcha图片验证码学习

简单的EasyCaptcha图片验证码学习 1. 需求 图片验证码是一种常见的验证形式,它通过生成一串随机数字或符号,并加入一些干扰像素,最终生成用于验证的图片。这种验证码的设计旨在增加破解难度,主要通过加大干扰强度来提高安全性。…

vue3 element-plus form 表单 循环校验

需求: 表单是循环出来的,3个一组,每组对于前端来说是一样的, 需要校验输入框是否必填是否为小数或者整数 效果: 未输入--显示:请输入 输入不是小数或整数--显示:请输入整数或小数 输入正确…

Vue - 关于Router路由跳转时显示的animate.css动画

Vue - 关于Router路由跳转时显示的animate.css动画 在Vue中,操作路由跳转时页面是闪白的,没有动画效果,我们可以通过在router-view中设置transition,并搭配animate丰富的动画效果来美化路由跳转时的显示效果. 1.安装animate np…

Java使用类加载器解决类冲突,多版本jar共存

Java使用类加载器解决类冲突 1、案例说明2、打包新版本POI并将要调用的方法封装2.1、POM文件2.2、封装的方法 3、要使用多个POI版本的项目3.1、打包前面的项目生成一个jar包3.1、POM文件3.2、类加载器代码3.3、Jar加载工具3.4、最终调用 1、案例说明 项目中已经有了一个旧版本…

奖项再+1!通义灵码智能编码助手通过可信 AI 智能编码工具评估,获当前最高等级

阿里云的通义灵码智能编码助手参与中国信通院组织的可信AI智能编码工具首轮评估,最终获得 4 级评级,成为国内首批通过该项评估并获得当前最高评级的企业之一。 此次评估以《智能化软件工程技术和应用要求 第 2 部分:智能开发能力》为依据&…

别给智能猫砂盆花冤枉钱了!这三款好用智能猫砂盆哪个更好用?

节假日回老家,不方便带猫咪怎么办?而且猫咪这么能拉,猫砂盆里拉满了又怎么办?猫砂盆一满,就会变脏,变脏了小猫就会抗拒上厕所,从而在家里找其他干净的地方排泄,那我们要怎么保证不在…

python中 if __name__ == “__main__“的代码没被执行

运行pytest 和unittest时,if name “main”: 下的代码没有被执行,发现__name__等于模块名 一、“name” 的作用 1、 __name__是python的一个内置类属性,它天生就存在于一个 python 程序中。 2、直接运行python程序时,__name__的…

报错:Reached the max session limit(DM8 达梦数据库)

报错:Reached the max session limit - - DM8 达梦数据库 1 环境介绍2 数据库启动SYSTEM IS READY后面日志3 数据库刚启动日志4 达梦数据库学习使用列表 1 环境介绍 某项目无法连接数据库,报错:超过最大会话数限制 , 检查 dmdba ulimit -a openfiles 已改检查 dm.ini 其中 MAX…

提升效率!ArcGIS中创建脚本工具

在我们日常使用的ArcGIS中已经自带了很多功能强大的工具,但有时候遇到个人的特殊情况还是无法满足,这时就可以试着创建自定义脚本工具。 一、编写代码 此处的代码就是一个很简单的给图层更改别名的代码。 1. import arcpy 2. input_fc arcpy.GetParam…

针对不同区域的摄像头,完成不同的算法配置的智慧快消开源了

智慧快消视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。 基于多年的深度…

js逆向--cai招网

js逆向--cai招网 一、寻找加密入口1、抓包2、关键字搜索寻找加密入口二、调试js三、python代码实现一、寻找加密入口 1、抓包 目标数据来源网址为:https://search.bidcenter.com.cn/search?keywords=%E5%85%AC%E5%85%B1%E4%BD%8F%E5%AE%85,打开开发者工具进行抓包。 目标…

Web安全之GroovyShell讲解:错误与正确示范,安全问题与解决方案

1. 引言 Groovy 是一门基于 Java 虚拟机(JVM)的动态语言,而 GroovyShell 是 Groovy 提供的一个灵活强大的脚本执行工具。通过 GroovyShell,开发者可以在运行时动态执行 Groovy 脚本,它的灵活性非常适合那些需要动态编…

DPO:直接偏好优化简化语言模型的偏好训练

人工智能咨询培训老师叶梓 转载标明出处 如何精确控制大规模无监督语言模型(LMs)的行为一直是一个挑战。这些模型虽然通过大量数据学习到了广泛的世界知识和一些推理技能,但由于其训练的无监督性质,使得它们的行为难以精确控制。…

Error running tomcat: Can‘t find catalina.jar

一、错误描述: 在运行 java-web项目时出现报错:Error running tomcat: Can‘t find catalina.jar 二、错误原因: tomcat的路径错误,在idea中配置正确的tomcat路径 三、解决方法: 1.点击EditConfigurations 2.点…

RP2040 C SDK clocks时钟源配置使用

RP2040 C SDK clocks时钟源配置使用 🌿RP2040时钟源API函数文档:https://www.raspberrypi.com/documentation/pico-sdk/hardware.html#group_hardware_clocks 🍁RP2040时钟树: 系统时钟源可以来自外部时钟输入(exte…