pki ca基础概念

PKI(Public Key Infrastructure) 公钥体系基础架构

  1. 一组由硬件、软件、参与者、管理政策与流程组成的基础架构,其目的在于创造、管理、分配、使用、存储以及撤销数字证书。
  2. 一种遵循标准的利用公钥加密技术为电子商务的开展提供一套安全基础平台的技术和规范。用户可利用PKI平台提供的服务进行安全通信。
    PKI的基础技术包括加密、数字签名、数据完整性机制、数字信封、双重数字签名等
  3. PKI有四个关键要素:数字证书、公钥和私钥、证书颁发机构、证书吊销列表

PKCS(Public Key Cryptography Standards)公钥加密标准

由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准(协议),其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名、数字信封的格式等方面的一系列相关协议。

PKIX(Public Key Infrastructure X.509)公开密钥基础设施X.509

IETF x.509工作组制定,PKIX的三种管理协议分别为,证书管理协议(CMP),基于CMS的证书管理消息(CMC),证书请求消息格式(CRMF)。基于RFC2510和RFC2511发布了CMC,根据RFC2797,为替代CMP而发布了CMC。

SCEP (Simple Certificate Enrollment Protocol)简单证书登记协议

思科开发,不是完整的证书管理协议

CA (Certificate Authority)认证中心/机构

CA是PKI的基础,它管理着证书的整个生命周期,其作用包括:发放证书,规定证书有效期,废弃不良信用证书。
根CA信任模型:最上级CA中心只有一个,成为根CA,其它CA称为子CA。根CA的数字证书由自己签发,属于自签名证书,子CA的数字证书由上级CA证书签发。信任锚可以是根CA,也可以是子CA。

RA(Registration Authority)登记机构

证书注册,登记机构(or系统),RA提供一个用户和CA之前的桥梁,用户通过RA进行证书的申请,RA获取用户的身份信息并确认用户的信息,向CA提出证书申请。它接受用户的注册申请,审查用户的申请资格,并决定是否同意CA给其签发数字证书。注册机构并不给用户签发证书,而只是对用户进行资格审查。因此,RA可以设置在直接面对客户的业务部门,如银行的营业部、机构认识部门等。当然,对于一个规模较小的PKI应用系统来说,可把注册管理的职能由认证中心CA来完成,而不设立独立运行的RA。但这并不是取消了PKI的注册功能,而只是将其作为CA的一项功能而已。PKI国际标准推荐由一个独立的RA来完成注册管理的任务,可以增强应用系统的安全

VA (Validation Authority) 证书验证机构

证书验证机构(or系统)。在PKI中,VA是一个实体,它根据X.509标准和RFC 5280(第69页)中描述的机制提供用于验证数字证书有效性的服务。VA一般由第三方来提供,PKI对VA没有强制要求,可以是Nginx, Tomcat等。

证书申请过程

  1. 用户申请:用户获取CA的数字证书(根证书),与安全服务器建立连接;生成自己的公钥和私钥,将公钥和自己的身份信息提交给安全服务器,安全服务器将用户的申请信息传送给RA服务器。
  2. RA审核:RA收到用户的申请,用户向RA证明自己的身份,RA进行核对。如果RA同意用户申请证书的请求,则对证书申请信息做数字签名;否则拒绝用户的申请。
  3. CA发行证书:RA将用户申请和RA签名传输给CA,CA对RA数字签名做认证,如果验证通过,则同意用户请求,颁发证书,然后将证书输出。如果验证不通过,则拒绝证书申请。
  4. RA转发证书:RA从CA得到新的证书,首先将证书输出到LDAP服务器以提供目录浏览,再通知用户证书发行成功,告知证书序列号,到指定的网址去下载证书。
  5. 用户证书获取:用户使用证书序列号去指定网址下载自己的数字证书,只有持有与申请时提交的公钥配对的私钥才能下载成功。

证书的签发

CA 对用户签发证书实际上是对某个用户公钥,使用 CA 的私钥对其进行签名。这样任何人都可以用 CA 的公钥对该证书进行合法性验证。验证成功则认可该证书中所提供的用户公钥内容,实现用户公钥的安全分发。
用户证书的签发可以有两种方式。可以由用户自己生成公钥和私钥,然后 CA 来对公钥内容进行签名(只有用户持有私钥);也可以由 CA 直接来生成证书(内含公钥)和对应的私钥发给用户(用户和 CA 均持有私钥)。
前者情况下,用户一般会首先自行生成一个私钥和证书申请文件(Certificate Signing Request,即 csr 文件),该文件中包括了用户对应的公钥和一些基本信息,如通用名(common name,即 cn)、组织信息、地理位置等。CA 只需要对证书请求文件进行签名,生成证书文件,颁发给用户即可。整个过程中,用户可以保持私钥信息的私密性,不会被其他方获知(包括 CA 方)。

证书的吊销

证书超出有效期后会作废,用户也可以主动向 CA 申请吊销某证书文件。主要存在两类机制:CRL 与 OCSP。
a.CRL (Certificate Revocation List) 离线协议。一个单独的文件。该文件包含了 CA 已经吊销的证书序列号(唯一)与吊销日期,同时该文件包含生效日期并通知下次更新该文件的时间,当然该文件必然包含 CA 私钥的签名以验证文件的合法性。
证书中一般会包含一个 URL 地址 CRL Distribution Point,通知使用者去哪里下载对应的 CRL 以校验证书是否吊销。该吊销方式的优点是不需要频繁更新,但是不能及时吊销证书,因为 CRL 更新时间一般是几天,这期间可能已经造成了极大损失。
b.OCSP (Online Certificate Status Protocol) 证书状态在线查询协议,一个实时查询证书是否吊销的方式。请求者发送证书的信息并请求查询,服务器返回正常、吊销或未知中的任何一个状态。证书中一般也会包含一个 OCSP 的 URL 地址,要求查询服务器具有良好的性能。部分 CA 或大部分的自签 CA (根证书)都是未提供 CRL 或 OCSP 地址的,对于吊销证书会是一件非常麻烦的事情。

生成证书申请文件的过程并不复杂,用户可以很容易地使用开源软件 openssl 来生成 csr 文件和对应的私钥文件

数字证书

数字证书(Digital Certificate),又叫“数字身份证”、“网络身份证”,是由认证中心发放并经认证中心数字签名的,包含公开密钥拥有者以及公开密钥相关信息的一种电子文件,可以用来证明数字证书持有者的真实身份
数字证书采用公钥体制:
• 数字证书是”公钥+私钥+证书名称等信息+签发机构对证书的数字签名”
• 数字证书遵从X.509国际标准

数字签名

数字签名是指使用密码算法对待发的数据(报文、票证等)进行加密处理,生成一段信息,附着在原文上一起发送,这段信息类似现实中的签名或印章,接收方对其进行验证,判断原文真伪,数字签名一般用于数据完整性保护、身份认证、防止抵赖

X.509

数字证书的格式标准,X.509有不同的版本,例如 X.509 V2和x.509 v3都是目前比较新的版本,但是都在原有版本(X.509 V1)的基础上进行功能的扩充,其中每一版本必须包含下列信息:
(1) 版本号
用来区分X.509的不同版本号
(2) 序列号
由CA给予每一个证书的分配唯一的数字型编号,当证书被取消时,实际上是将此证书的序列号放入由CA签发的CRL中;这也是序列号唯一的原因
(3) 签名算法标识符
用来指定用CA签发证书时所使用的签名算法。算法标识符用来指定CA签发证书时所使用的公开密钥算法和HASH算法,须向国际指明标准组织(如ISO)注册
(4) 认证机构
即发出该证书的机构唯一的CA的x.500名字
(5) 有效期限
证书有效的时间包括两个日期:证书开始生效期和证书失效的日期和时间。在所指定的这两个时间之间有效;
(6) 主题信息
证书持有人的姓名、服务处所等信息
(7) 认证机构的数字签名
以确保这个证书在发放之后没有被撰改过;
(8) 公钥信息
包括被证明有效的公钥值和加上使用这个公钥的方法名称

数字信封

• 数字信封是信息发送端用接收端的公钥,将一个对称密钥加密后,传送后接收端,只有指定的接收端(拥有私钥)才能打开信封,取得对称密钥,用它来解开传送来的信息
• 公钥体系与对称密钥相结合的加密方式
• 公钥体系通常运算性能低,做大量数据加解密力不从心
• 通常利用公钥体系实现对称密钥的安全交换

加密

哈希/散列/摘要

• 如果两个散列值是不相同的,那么这两个散列值的原始输入
也是不相同的
• 用于信息压缩,并发现信息是否发生变化
• 计算速度快,特定算法其结果长度统一
• 目前至少使用SHA256
• 缩小存储或传输的数据量
• 规避公钥体系加解密性能低下的问题

  1. SHA256
    说白了,它就是一个哈希函数。又称散列算法,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(或哈希值)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。 对于任意长度的消息,SHA256都会产生一个256bit长的哈希值,称作消息摘要。
    这个摘要相当于是个长度为32个字节的数组,通常用一个长度为64的十六进制字符串来表示
  2. MD5
    MD5即Message-Digest Algorithm 5(信息-摘要算法),属于摘要算法,是一个不可逆过程,就是无论多大数据,经过算法运算后都是生成固定长度的数据,结果使用16进制进行显示的128bit的二进制串。通常表示为32个十六进制数连成的字符串。

非对称加密

• 加解密时,通讯一方有一对密钥(公钥和私钥)
• 公钥可以公开,分发给任何人
• 私钥不可以公开,严格持有,例如U盾中存放私钥等
• 公钥加密,只能用私钥解密,反之亦然
• 加/解密速度较慢,但无密钥分发问题
• 区块链主要使用ECC椭圆曲线算法

  1. RSA
    由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的;
  2. ECDSA
    ECDSA算法用于数字签名,是ECC(椭圆曲线密码)与DSA(数字签名算法)的结合,整个签名过程与DSA类似,所不一样的是签名中采取的算法为ECC

对称加密

• 加解密方共用一个密钥
• 加/解密速度快,但密钥分发比较困难
• AES和DES都是对称加密的一种,但是DES的密钥长度是 56 位,而AES的密钥长度有 128,256,512 可选
• DES具有已知漏洞,因此很容易被破坏。3DES(三重DES)是DES的一种变体,它比通常的DES安全。

发布了46 篇原创文章 · 获赞 3 · 访问量 6499

猜你喜欢

转载自blog.csdn.net/kk3909/article/details/105441635
PKI