现代密码学-CA与数字证书详解

简介: 现代密码学-CA与数字证书详解

概述

证书类似现实生活中的个人身份证。身份证将个人的身份信息(姓名、出生年月日、地址和其他信息)同个人的可识别特征(照片)绑定在一起。个人身份证是由国家权威机关(公安部)签发的,该证件的有效性和合法性是由权威机关的签名或签章保障的,因此身份证可以用来验证持有者的合法身份的信息,称为身份鉴定。

数字证书也称为公钥证书,是将证书持有者的身份信息和其所拥有的公钥进行绑定的文件。证书文件还包含签发该证书的权威机构认证中心(简称CA)对该证书的签名,通过签名保障了证书的合法性和有效性,也保障了证书包含的持有者公钥和相关信息的真实性和完整性。这使得证书应用依赖于对CA本身的信任,也就是说证书提供了基本的信任机制。

证书(与相关的私钥)可以提供诸如身份认证、完整性、机密性和不可否认性等安全服务。证书中的公钥可用于加密数据或验证对应私钥的签名。

一句话:CA使用私钥签名别人的公钥形成证书,CA使用公钥进行验证。

内容

2020062310470442.png

点击https前面的锁->点击安全连接->点击更多信息

2020062310470442.png

点击查看证书

2020062310470442.png

安全性

  • 证书是公开的,可复制的。
  • 任何具有CA公钥(也称作根证书/CA证书,自签名证书)的用户都可以验证证书有效性。
  • 除了CA以外,任何人都无法伪造、修改证书。
  • 证书的安全性依赖于CA的私钥。

证书生命周期

2020062310470442.png

生成

  • 去CA申请
  • 可利用工具(例如,openssl)生成,使用私有CA

存储

  • 使用IC卡存放
  • 直接存放在磁盘或自己的终端上
  • USB Key
  • 证书库

验证

  • 使用CA证书验证终端实体证书有效性
  • 检查证书的有效期,确保该证书是否有效。
  • 检查该证书的预期用途是否符合CA在该证书中指定的所有策略限制。
  • 证书撤销列表(CRL)中查询确认该证书是否被CA撤销。

状态查询

在线证书状态协议OCSP(Online CertificateStatus Protocol),其目的为了克服基于CRL的撤销方案的局限性,为证书状态查询提供即时的最新响应。OCSP使用证书序列号CA名称公开密钥的散列值作为关键字查询目标的证书。

撤销

当以下情况出现时:

  • 不是有效用户(譬如雇佣关系结束)
  • 证书的信息需修改(譬如其扩展内容)
  • 私钥的安全受到威胁等且证书的有效期还没结束,证书需被撤销。

更新

更新的原因:

  • 证书过期;
  • 临时撤销(譬如调离或退休等);
  • 一些属性(譬如职务、地址等)的改变;
  • 证书中公钥对应的私钥安全受到威胁。

PKI信任模型

单一模型CA

比较理想建立单一的认证机构(CA),这比较适合用户规模比较小的范围,如果用户规模大,种类多,则由它管理所有证书存在以下问题:

  • 特殊的应用领域有着特殊的安全需求(安全策略不同)。
  • 证书颁发和撤销难于直接控制
  • 证书库难于维护,难于满足实际性能的需求。
  • 根私钥的维护更加困难。

树状模型CA

假设个体A看到B的一个证书,B的证书中含有签发该证书的CA的信息,沿着层次树往上找,可以构成一条证书链,直到根证书;验证过程:

  • 沿相反的方向,从根证书开始,依次往下验证每一个证书中的签名。其中,根证书是自签名的,用它自己的公钥进行验证;
  • 一直到验证B的证书中的签名;
  • 如果所有的签名验证都通过,则A可以确定所有的证书都是正确的,如果他信任根CA,则他可以相信B的证书和公钥。

2020062310470442.png

有时间补充 pem x509,以及使用openssl生成CA的步骤

  • 未完待续…

参考

现代密码学教程 谷利泽 杨义先等》

openssl官网




相关文章
|
分布式计算 Java 测试技术
Java网络编程实战:P2P文件共享详解
Java网络编程是现代软件开发中不可或缺的一部分,因为它允许不同计算机之间的数据传输和通信。在本篇博客中,我们将深入探讨Java中的P2P文件共享,包括什么是P2P文件共享、如何实现它以及一些相关的重要概念。
773 0
|
监控 Java API
图解 Apache SkyWalking UI 的使用
Apache SkyWalking的UI界面主要分为以下几个区域: 功能选择区:这里列出了主要的UI功能,包括仪表盘、拓扑图、追踪、性能刨析、告警等功能 重新加载区:控制重新加载机制,包括定期重新加载或手动重新加载。 时间选择器:控制时区和时间范围。这里有一个中文/英文切换按钮,默认,UI使用浏览器语言设置。 下面逐一介绍功能选择区的各个功能:
2680 0
图解 Apache SkyWalking UI 的使用
|
负载均衡 前端开发 应用服务中间件
【Linux】Nginx安装使用负载均衡及动静分离(前后端项目部署),前端项目打包
【Linux】Nginx安装使用负载均衡及动静分离(前后端项目部署),前端项目打包
1396 0
|
JavaScript 前端开发 编译器
ES6 代码转成 ES5 代码的实现思路是什么
ES6 代码转成 ES5 代码的实现思路主要是通过编译器将新的语法结构和特性转换为旧版本的 JavaScript 代码,以确保在不支持 ES6 的环境中可以正常运行。常用的工具如 Babel 可以自动完成这一过程。
|
前端开发 测试技术 API
深入探究 Playwright:Frame 操作技巧
Playwright Python 框架提供API处理Web页面中的iframe。通过`frame()`方法进入iframe,如`page.frame(name='frame_name')`,并可使用CSS选择器选择。完成操作后,用`main_frame()`返回主文档。在iframe内,可执行点击、填充表单等操作,简化自动化测试和网页爬取任务。
深入探究 Playwright:Frame 操作技巧
|
Java API Android开发
Android 静态注册广播接收者和动态注册广播接收者(Android8.0之前和之后)
Android 静态注册广播接收者和动态注册广播接收者(Android8.0之前和之后)
831 0
|
安全 网络协议 Java
TLS、SSL、CA 证书、公钥、私钥。。。今天捋一捋!
TLS、SSL、CA 证书、公钥、私钥。。。今天捋一捋!
1168 0
|
存储 安全 Linux
CTFHuB靶场命令执行题型过关总结
本篇博文是对自己学习rce漏洞后,因为没有进行实战练习,仅仅停留在概念上,因此做了一次靶场实战练习,来帮助自己熟悉rce漏洞的利用类型以及利用方法,写下这篇文章对此做个总结..其实关于这个练习已经过去了很久了,但我还是要那出来进行一次复习吧,对与命令执行相关的一些操作,对自己在漏洞挖掘方面能有更多的帮助,通过这次练习也对自己关于代码审计或是关于linux命令的常见命令的同意替换有了更多的了解.
1037 2
|
存储 NoSQL 中间件
单点登录简述
单点登录简述
563 1
|
存储 算法 安全
详细解读CA认证原理以及实现(上)
详细解读CA认证原理以及实现(上)
982 0