4. PKI - 数字签名、CA、数字证书

  • 1. 数字签名
    • 1.1 散列函数
    • 1.2 数据签名/验证
  • 2. CA(Certificate Authority)
    • 2.1 CA的组织结构
    • 2.2 CA的分类
    • 2.3 CA提供的服务
  • 3. 数字证书
    • 3.1 证书申请流程
    • 3.2 基于证书的通信过程
  • 参考

1. 数字签名

数字签名是一种用于验证数字消息或文档真实性的数学方案。满足先决条件的有效数字签名使接收者有理由相信该消息是由已知的发件人创建的,且消息在传输过程中没有被修改(即完整性)。

数字签名主要有两个作用:

  1. 消息或文档的完整性。即消息或文档在网络传输过程中没有被篡改。
  2. 消息或文档的真实(认证)性。即消息或文档确实是我们预期的发送者发出的。

1.1 散列函数

保证消息或文档的完整性,是通过验证发送内容和接收内容的散列值是否相等判断的,计算散列值需要用到散列函数。

常见散列函数的有 MD5、SHA1、SHA256,该类函数特点是函数单向不可逆、对输入非常敏感、输出长度固定,针对数据的任何修改都会改变散列函数的结果,因此可用于防止信息篡改并验证数据的完整性。

1.2 数据签名/验证

数字签名/验证的大致步骤如下:

  • Signer生成密钥对,自己保留私钥(private key),将公钥提供给Verifier。
  • Siner将要发送的数据通过Hash算法计算Hash值,并通过自己的私钥对Hash值进行加密,加密后的内容即为签名。
  • 将签名附加到发送数据上,通过Network将数据发送给Verifier。
  • Verifier接收数据后,Verifier通过相同的Hash算法计算接收数据的新Hash值。
  • 利用Signer的公钥(public key)对签名进行解密,获取原Hash值。
  • 比对原Hash值和新Hash值,如果两个值相等,那么认为签名是有效的。

    可以将上述过程简化为如下模型。

在这个模型中,Sender持有自己的私钥,Receiver持有Sender的公钥。Sender通过私钥进行签名,Receiver通过公钥进行签名验证。但公钥只是一串文本,公钥本身并不能表示所有者的任何信息。这时候如果Attacker偷偷用自己的公钥替换掉了Sender的公钥,就可以假冒Sender给Receiver发信息。

如下图所示,Attacker用自己的公钥(public key)替换掉了Sender的公钥(public key),这时候对Receiver根本没有意识到Sender的公钥已经被更改。这时候Attacker就可以使用自己的私钥发送假消息给Receiver。

Attacker的这种做法迟早会被Receiver察觉,这时候Receiver可能会要求Sender去做CA认证。那么CA是什么呢?

2. CA(Certificate Authority)

在现实生活中我们都是有身份的人,在乘坐高铁、去银行办理业务、去政府部门办事时都需要出示身份证。身份证是我们每个人的凭证,它能证明你是中国的合法公民。身份证的签发机关是公安局。

同样在互联网世界中,如何证明你是你呢?答案就是数字证书。在之前的例子中生成数字证书时我们采用的自签名,如果通信的双方比较熟悉且相互信任使用自签名证书时没有问题的。但是通常情况下我们是需要一个第三方机构对我们的身份进行认证的,这个第三方机构就是CA(Certificate Authority)。

CA可以给个人、机构、设备、甚至代码发放数字证书。

2.1 CA的组织结构

CA建立自上而下的信任链,下级CA信任上级CA,下级CA由上级CA颁发证书并认证。

RootCA: RootCA是CA层级结构中最顶级的CA,每个CA层级结构都是从RootCA开始的。从RootCA可以派生多个分支CA,分支CA与RootCA是父子关系,所有的子CA必须被其父CA认证并一直追溯到RootCA。为了保证RootCA的绝对安全,RootCA通常位于一个安全的区域,并且是一个独立的离线CA。RootCA为中间层CA提供证书,如果合约到期证书将被收回。

中间层CA: 中间层CA是从属与其他CA(RootCA或其他中间层CA)的CA,中间层CA可以为层级结构中的其他CA发布证书。中间层CA通常与RootCA一样,也是独立的离线CA。

发布CA: 发布CA用于为用户、计算机或其他设备提供证书。发布CA可能有多个,一个CA用于生产计算机证书而另一个用于生产用户证书。

2.2 CA的分类

  • 行业性CA
    金融CA体系、电信CA体系、邮政CA体系、外经贸部CA、中国海关CA、中国银行CA、中国工商银行CA、中国建设银行CA、招商银行CA、国家计委电子政务CA、南海自然人CA(NPCA)
  • 区域性CA
    协卡认证体系(上海CA、北京CA、天津CA)
    网证通体系(广东CA、海南CA、湖北CA、重庆CA)
    山西CA、吉林CA、宁夏西部CA、陕西CA、福建CA、黑龙江邮政CA、黑龙江政府CA、山东CA、深圳CA 、吉林省政府CA、福建泉州市商业银行网上银行CA、天威诚信CA

2.3 CA提供的服务

颁发证书、废除证书、更新证书、验证证书、管理密钥。

3. 数字证书

刚刚提到CA提供的服务之一就是颁发证书。于是Sender(Monroe)找到了American CA进行个人认证。

3.1 证书申请流程

  1. Monroe生成自己的私钥;
  2. 填写个人信息;
  3. 生成证书签名申请文件Monroe.csr;其中包含个人信息和Monroe的公钥信息;
  4. 将Monroe.csr文件发送给American CA;
  5. American CA收到CSR后通过线上、线下等多种手段验证申请者提供信息的真实性;如信息审核通过,CA会向申请者签发认证文件-证书。证书包含以下信息:申请者公钥、申请者的组织信息和个人信息、签发机构CA的信息、有效时间、证书序列号等信息的明文,同时包含一个签名。签名的产生算法:
  6. 使用散列函数计算公开的明文信息的信息摘要;
  7. 采用American CA的私钥对信息摘要进行加密,密文即签名;
  8. 签发证书。

至此Monroe就拥有了自己的数字证书Monroe.crt。

3.2 基于证书的通信过程

这时候Monroe作为Sender与Receiver进行通信的流程如下图所示:

这时候Receiver持有的不再是Sender的公钥,而是经过CA认证的Sender的证书,同时还持有American CA的证书。其中,American CA的证书用来验证Sender证书签名的有效性,如果证书签名验证通过则证明Sender和公钥的绑定关系,即该公钥确实是Sender的;

然后利用公钥对消息签名进行验证,如果消息签名验证通过,则证明消息确实是Sender发出的(认证性),且消息内容是完整的(完整性)。由于证书签名和消息签名都验证通过,对Sender来讲存在不可抵赖性(除非Sender的私钥被别人窃取啦!)。

参考

Certificate Authority (CA) Hierarchy, Root CA, Intermediate CA, Issuing CA
How do digital signatures work?
数字签名是什么?
What is a Digital Signature?
HTTPS中CA证书的签发及使用过程

4. PKI - 数字签名、CA、数字证书相关推荐

  1. PKI(公、私钥加密,数字签名、数字证书)技术理解

    PKI(公.私钥加密,数字签名.数字证书) 1.PKI概述 名称:Public Key Infrastructure  公钥基础设施 作用:通过加密技术和数字签名保证信息的安全 组成:公钥加密技术.数 ...

  2. 加密相关(对称加密、非对称加密、信息摘要、数字签名、CA数字证书)

    1.对称加密: 说明:加密的密钥和解密的密钥相同:效率快:适合加密大信息量 常见算法:DES.3DES.AES.RC-5 块加密: 流加密:数据量大时效率高 2.非对称加密: 说明:加密的密钥和解密的 ...

  3. 网络知识详解之:HTTPS通信原理剖析(对称、非对称加密、数字签名、数字证书)

    网络知识详解之:HTTPS通信原理剖析(对称.非对称加密.数字签名.数字证书) 计算机网络相关知识体系详解 网络知识详解之:TCP连接原理详解 网络知识详解之:HTTP协议基础 网络知识详解之:HTT ...

  4. 数字签名与数字证书是什么

    目录 概述 数字签名 数字签名是什么 数字签名的大概流程 发件人 收件人 签名的安全风险 数字证书 为什么需要数字证书 数字证书是什么 数字证书的应用场景 使用流程 概述 了解数字签名和数字证书之前, ...

  5. 数字签名,数字证书,证书链原理

    来源:数字签名,数字证书,证书链原理(图文详解)_Ruby丶彬的博客-CSDN博客_证书链验证原理 数字签名,数字证书,加密简述 数字签名:谈及数字签名,就如小时候老师叫把卷子或者作业带回去给家长签字 ...

  6. 加密、数字签名和数字证书

    加密.数字签名和数字证书 1      对称加密 对称加密算法中,加密和解密使用的是同一个秘钥,所以秘钥的保护是非常重要的,对称加密和解密过程如下图: 对称算法加密过程 对称算法解密过程 尽管对称秘钥 ...

  7. 公钥、私钥、数字签名和数字证书的概念及解密

    http协议的数据传递是明文的, 也就是从服务器传递给浏览器的内容是明文的, 这个信息如果被截取了,内容也就完全暴露了.所以大部分的互联网网站和应用使用的基本都是https协议,在申请和配置网站的ht ...

  8. 对称加密、非对称加密、RSA、消息摘要、数字签名、数字证书与 HTTPS 简介

    文章目录 1.加密算法简介 1.1 对称加密(Symmetric Key Algorithms) 1.2 非对称加密(Asymmetric Key Algorithms) 1.3 非对称加密 RSA ...

  9. 【转】数字签名与数字证书

    原文地址:http://blog.csdn.net/oscar999/article/details/9364101 前言 先看一下百度百科对数字签名和数字证书的解释: 数字签名: 将报文按双方约定的 ...

  10. 数字签名与数字证书技术简介(一)

    数字签名.数字证书等技术,是现代信息安全的核心技术,可谓使用面十分广泛.其基本理论本身并不复杂,本文希望通过深入浅出的介绍,能够让大家有一些基本了解. 对称加密.非对称加密 让我们通过一个例子开始:我 ...

最新文章

  1. 与动态执行的C# 代码进行通讯
  2. goland 远程调试go_手把手教你学Go语言,基础环境配置和Hello World
  3. 6. 你必须掌握Dart中的数组
  4. 数据结构与算法 / 平衡二叉树(AVL树)
  5. 【嵌入式】C语言高级编程-内建函数(11)
  6. 【图像处理】——Python实现图像加噪(随机噪声、椒盐噪声、高斯噪声等)
  7. Js中Symbol对象
  8. 跟我一起数据挖掘(23)——C4.5
  9. 如何在Windows XP下安装Windows2000
  10. ”被裁员6次的运营总监分享”总被裁员的运营人到底是为什么?
  11. 电路布线问题(迷宫问题)
  12. Protel99seMEX3
  13. Windos下的UPD服务器端的C++实现
  14. telink wiki使用简单说明
  15. Python 命名规范
  16. arm9开发板学习笔记之程序烧录
  17. 哪些情况会造成小程序违规或下架
  18. 既要面子,也要里子,车企成不了自动驾驶的“独行侠”
  19. du命令参数-h/-s
  20. Linus Torvalds对晦涩的代码的反应

热门文章

  1. VS2017离线下载安装包教程
  2. tensorflow keras 构建神经网络、Alex net、VGG、CNN网络
  3. Epub360、iH5、Mugeda,三款专业级H5设计工具详评
  4. ntp和ptp实现_NTP/PTP时间同步入门
  5. 极限精简服务器系统,极限精简斐讯T1/N1 极客开发者强迫症福音6.25
  6. 直流双闭环pwm调速系统matlab仿真,基于Matlab的双闭环PWM直流调速虚拟实验系统
  7. jdk1.8的新特性之--Rhion变为Nashorn
  8. GD32与STM32区别
  9. 华为_ensp_vlan接口模式
  10. 煲机:让耳机的声音更动听!