一文搞懂PKI/CA

简介: 一文搞懂PKI/CA


1. 信息安全

随着数字经济、互联网金融、人工智能、大数据、云计算等新技术新应用快速发展,催生了一系列新业态新模式,信息安全已经成为信息社会亟须解决的最重要问题之一。

1. 1 主要攻击形式

由于信息的存储、传递、处理等过程往往是在开放的网络中进行,信息容易受到窃听、截取、篡改、伪造、假冒、重放等多种攻击手段的威胁。其中,截取为被动攻击,而中断、篡改、伪造、重放均为主动攻击。

(1)中断(Interruption):中断也称拒绝服务,是指阻止或禁止通信设施的正常使用或管理,这是对可用性攻击。这种攻击一般有两种形式:一是攻击者删除通过某一连接的所有协议数据单元,从而抑制所有的消息指向某个特殊的目的地;二是使整个网络瘫痪或崩溃,可能采取的手段是滥发消息使之过载,使网络不能正常工作。

(2)截取(Interception):截取是未授权地窃听或监测传输的消息,从而获得对某个资源的访问,这是对机密性的攻击。攻击者一般通过在网络中“搭线”窃听,以获取他们通信的内容。

(3)篡改(Modification):篡改也就是修改数据流,对一个合法消息的某些部分被改变、消息被延迟或改变顺序,以产生一个未授权、有特殊目的的消息,是针对连接的协议数据单元的真实性、完整性和有序性的攻击。

(4)伪造(Fabrication):伪造是指将一个非法实体假装成一个合法的实体,是对身份真实性的攻击,通常与其他主动攻击形式结合在一起才具有攻击效果,如攻击者重放以前合法连接初始化序列的记录,从而获得自己本身没有的某些特权。

(5)重放(Replay) :重放将一个数据单元截获后进行重传,产生一个未授权的消息。在这种攻击中,攻击者记录下某次通信会话,然后在以后某个时刻重放整个会话或其中的一部分。

1.2 信息安全的目标

信息安全主要确保以下五个方面的安全:

(1)机密性(Confidentiality)

机密性是指保证信息不泄露给非授权的用户或实体,确保存储的信息和被传输的信息仅能被授权的各方得到,而非授权用户即使得到信息也无法知晓信息内容。通常通过访问控制阻止非授权用户获得机密信息,通过加密阻止非授权用户获知信息内容。

(2)完整性(Integrity)

完整性是指信息未经授权不能进行篡改的特征,确保信息的一致性,即信息在生成、传输、存储和使用过程中不应发生人为或非人为的非授权篡改(插人、修改、删除、重排序等)。一般通过访问控制阻止篡改行为,同时通过消息摘要算法来检验。

(3)认证性(Authentication)

认证性(真实性)指确保一个消息的来源或消息本身被正确地标识,同时确保该标识没有被伪造,通过**数字签名、消息认证码(MAC)**等方式实现。认证分为消息认证和实体认证。

  • 消息认证是指能向接收方保证该消息确实来自于它所宣称的源,
  • 实体认证是指在连接发起时能确保这两个实体是可信的,即每个实体确实是它们宣称的那个实体,第三方也不能假冒这两个合法方中的任何一方。

(4)不可否认性(Non-Repudiation)

不可否认性是指能保障用户无法在事后否认曾经对信息进行的生成、签发、接收等行为,是针对通信各方信息真实性、一致性的安全要求。为了防止发送方或接收方抵赖所传输的消息,要求发送方和接收方都不能抵赖所进行的行为。通过数字签名来提供抗否认服务。

  • 当发送一个消息时,接收方能证实该消息确实是由既定的发送方发来的,称为源不可否认性
  • 当接收方收到一个消息时,发送方能够证实该消息确实已经送到了指定的接收方,称为宿不可否认性。

(5)可用性(Availability)

可用性是指保障信息资源随时可提供服务的能力特性,即授权用户根据需要可以防时访问所需信息,保证合法用户对信息资源的使用不被非法拒绝。

2. PKI

2.1 基本概念

公钥基础设施(PKI,Public Key Infrastructure)是基于公钥密码学的,提供安全服务的基础设施,核心是要解决信息网络空间中的信任问题,确定可信赖的数字身份,广泛应用于电子商务、电子政务等领域。

PKI技术以公钥技术为基础,以数字证书为媒介,结合对称加密和非对称加密技术,将个人、组织、设备的身份标识信息与各自的公钥捆绑在一起,其主要目的是通过自动管理密钥和证书,为用户建立起一个安全可信的网络运行环境使,用户可以在多种应用环境下方便地使用加密和数字签名技术,保证传输信息的机密性、完整性、认证性和不可否认性

2.2 PKI的组成

一个典型的PKI系统包含认证机构CA、证书库、密钥备份与恢复系统、证书撤销与密钥更新机制、PKI应用接口系统等部分。

  • 认证机构CA(Certificate Authority):又称证书授证中心,是PKI的核心组成部分和执行机构,它为每个使用公钥的用户发放一个数字证书,证明证书中列出的用户合法拥有证书中列出的公开密钥。认证中心还应包括证书申请注册机构RA(Registration Authority),它是数字证书的注册审批机构。
  • 证书库(目录服务):用于发布用户的证书和证书作废列表(CRL,Certificate Revocation List),用户可由此获得其他用户的证书及公钥。
  • 密钥备份及恢复系统:密钥备份及恢复是密钥管理的主要内容,用户由于某些原因将解密数据的密钥丢失,从而使已被加密的密文无法解开,将造成合法数据丢失。为避免这种情况的发生,PKI提供了密钥备份与密钥恢复机制:当用户证书生成时,加密密钥即被CA备份存储;当需要恢复时,用户只需向CA 提出申请,CA就会为用户自动进行恢复。但须注意,密钥的备份与恢复必须由可信的机构来完成。并且,密钥备份与恢复只能针对解密密钥,签名私钥为确保其唯一性而不能够作备份。
  • 应用接口(API):为各种各样的应用提供安全、一致、可信任的方式与PKI交互,使用户能够方便地使用加密、数字签名等安全服务,满足查询证书和相关证书的撤消信息、证书路径处理、以及对特定文档提供时间戳请求等需求,确保所建立起来的网络环境安全可靠,并降低管理成本。

3. 数字证书

3.1 基本概念

数字证书也称公钥证书,是一个经权威机构认证中心CA签名的包含了公钥及公钥持有者身份信息的文件,相当于CA颁发的“身份证”,解决“公钥属于谁”的问题,帮助用户安全地获得对方公钥。

X.509是ITU-T标准化部门定义的一套证书标准,广泛应用于包括TLS/SSL在内的众多Internet协议里。格式如下:

数字证书内容包括:

  • 版本号:区分x.509的不同版本。
  • 序列号:由CA给予每一个证书的分配惟一的数字标识。
  • 认证机构标识:颁发该证书的机构惟一的CA的X.500名字。
  • 主体标识:证书持有者的名称。
  • 主体公钥信息:和该主体私钥相对应的公钥。
  • 证书有效期:证书有效时间包括证书开始有效期和证书失效期。
  • 密钥/证书用法:描述该主体的公/私密钥对的合法用途。
  • 认证机构签名:用认证机构的私钥生成的数字签名。
  • 扩展:该证书的附加信息。

3.2 证书的生成与验证

(1)证书的生成

在证书注册过程中

  • CA对包含证书申请实体公钥及其身份等信息的文件T进行Hash,产生散列值H。
  • CA用其私钥对该散列值H加密,生成数字签名S。

数字签名S和包含证书申请实体公钥及其身份等信息的文件形成申请实体的数字证书。

(2)证书的验证

验证者得到实体的数字证书:包含证书申请实体公钥及其身份等信息的文件T,以及CA对文件T的散列值的数字签名S。

  • 验证者用CA的公钥对数字签名S解密,得到散列值H。
  • 验证者同时用证书里的Hash算法对文件T进行hash得到H’。
  • 验证者比较H’是否等于H,等于则说明证书可信。

3.3 证书链

在PKI的应用中,用户的信任来源于对证书的验证,而这种信任是基于对颁发证书可信第三方CA本身的信任。

X.509规定CA用目录信息树(DIT)的方式组织。最高一级CA称为根CA(Root-CA),用户之间的证书验证,需要对方证书生成的一条链**(证书链)**才能进行。由根证书为起点,透过层层信任(A信任B,B信任C,以此类推),使终端实体证书的持有者可以获得转授的信任,以证明身份。

以百度的证书为例:

通过树形结构图,可以看到baidu.com这个域名使用的证书由GlobalSign RSA OV SSL CA 2018签发的,而GlobalSign RSA OV SSL CA 2018的证书则是由GlobalSign这个根CA(Root CA)签发的,可在操作系统安装的受信任的根证书列表中找到GlobalSign

3.4 证书管理

(1)证书注册

(2)证书撤销

当条件(证书信息修改等)要求证书的有效期在证书结束日期之前终止,或者要求用户与私钥分离时(私钥可能以某种方式泄露),证书被撤销。

4. 时间戳服务

由于用户桌面时间很容易改变,由该时间产生的时间戳不可信赖,因此需要一个可信任的第三方来提供可信赖的且不可抵赖的时间戳服务。

时间戳权威(TSA,Time StampAuthority),它是PKI中的重要组成部分,作为可信的第三方时间权威,其主要功能是提供可靠的时间信息,证明某份文件(或某条信息)在某个时间(或以前)存在,防止用户在这个时间前或时间后伪造数据进行欺骗活动。

时间戳服务就是时间戳协议(TSP,TimeStamp Protocol)通过TSA服务来提供数据在特定时间存在的证据。

TSA工作流程:

  • (1)客户端计算所选文件的数字指纹,通常是做一次Hash。
  • (2)客户端将对文件Hash值发送给TSA,TSA将当前时间值加入数字指纹,然后用私有密钥对这个信息数字签名,并产生一个时间邮戳(Time stamp)。
  • (3)TSA将时间邮戳返回到客户端存储(客户端需要验证时间邮戳的有效性),这样时间邮戳就跟文件绑在一起作为文件在某个时间内有效的证据。
相关文章
|
2月前
|
JavaScript 前端开发 搜索推荐
VueSSR和 CSR有什么区别
VueSSR和 CSR有什么区别
24 0
|
10月前
|
存储 安全 算法
PKI体系与CA证书
PKI体系与CA证书
207 0
|
安全 Java 网络安全
那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)
之前没接触过证书加密的话,对证书相关的这些概念真是感觉挺棘手的,因为一下子来了一大堆新名词,看起来像是另一个领域的东西,而不是我们所熟悉的编程领域的那些东西,起码我个人感觉如此,且很长时间都没怎么搞懂.写这篇文章的目的就是为了理理清这些概念,搞清楚它们的含义及关联,还有一些基本操作。
3886 0
|
安全 网络安全 数据安全/隐私保护
|
网络安全 数据安全/隐私保护 索引
|
安全 网络安全 数据安全/隐私保护