CA framwork

1. PKI、CA简介

PKI(Public Key Infrastructure)即"公钥基础设施",是一种遵循既定标准的密钥管理平台,它能够为所有网络应用提供加密和数字签名等密码服务及所必需的密钥和证书管理体系,简单来说,PKI就是利用公钥理论和技术建立的提供安全服务的基础设施。PKI技术是信息安全技术的核心,也是电子商务的关键和基础技术。

PKI是Public Key Infrastructure的缩写,是指用公钥概念和技术来实施和提供安全服务的具有普适性的安全基础设施。这个定义涵盖的内容比较宽,原则上说,任何以公钥技术为基础的安全基础设施都是PKI。当然,没有好的非对称算法和好的密钥管理就不可能提供完善的安全服务,也就不能叫做PKI。也就是说,该定义中已经隐含了必须具有的密钥管理功能。

PKI既不是一个协议,也不是一个软件,它是一个标准,在这个标准之下发展出的为了实现安全基础服务目的的技术统称为PKI

PKI主要由以下组件组成

1. 认证中心CA(证书签发) 
CA是PKI的"核心",即数字证书的申请及签发机关,CA必须具备权威性的特征,它负责管理PKI结构下的所有用户(包括各种应用程序)的证书,把用户的公钥和用户的其他信息捆绑在一起,在网上
验证用户的身份,CA还要负责用户证书的黑名单登记和黑名单发布 

2. X.500目录服务器(证书保存) 
X.500目录服务器用于"发布"用户的证书和黑名单信息,用户可通过标准的LDAP协议查询自己或其他人的证书和下载黑名单信息。

3. 具有高强度密码算法(SSL)的安全WWW服务器(即配置了HTTPS的apache) 
Secure socket layer(SSL)协议最初由Netscape 企业发展,现已成为网络用来鉴别网站和网页浏览者身份,以及在浏览器使用者及网页服务器之间进行加密通讯的全球化标准。

4. Web(安全通信平台)
Web有Web Client端和Web Server端两部分,分别安装在客户端和服务器端,通过具有高强度密码算法的SSL 协议保证客户端和服务器端数据的机密性、完整性、身份验证。

5. 自开发安全应用系统 自开发安全应用系统是指各行业自开发的各种具体应用系统,例如银行、证券的应用系统等。完整的PKI包括:
  1) 认证政策的制定,包括
    1.1) 遵循的技术标准
    1.2) 各CA 之间的上下级或同级关系
    1.3) 安全策略
    1.4) 安全程度
    1.5) 服务对象
    1.6) 管理原则和框架等
  2) 认证规则
  3) 运作制度的制定
  4) 所涉及的各方法律关系内容
  5) 技术的实现等

认证中心CA作为PKI的核心部分,CA实现了PKI 中一些很重要的功能

1. 接收验证最终用户数字证书的申请
2. 确定是否接受最终用户数字证书的申请-证书的审批
3. 向申请者颁发、拒绝颁发数字证书-证书的发放
4. 接收、处理最终用户的数字证书更新请求-证书的更新
5. 接收最终用户数字证书的查询、撤销
6. 产生和发布证书废止列表(CRL)
7. 数字证书的归档
8. 密钥归档
9. 历史数据归档

在这么多功能中,CA的核心功能就是"发放"和"管理"数字证书,同时这也是PKI的核心

图2 典型CA框架模型

典型CA框架模型 

1. 安全服务器:
安全服务器面向普通用户,用于提供:
  1) 证书申请
  2) 浏览
  3) 证书撤消列表
  4) 证书下载等安全服务
安全服务器与用户的的通信采取安全信道方式(如SSL的方式,不需要对用户进行身份认证)。用户首先得到安全服务器的证书(该证书由CA颁发),然后用户与服务器之间的所有通信,包括用户填
写的申请信息以及浏览器生成的公钥均以安全服务器的密钥进行加密传输,只有安全服务器利用自己的私钥解密才能得到明文,这样可以防止其他人通过窃听得到明文。从而保证了证书申请和传输
过程中的信息安全性。

2. CA服务器
CA服务器是整个证书机构的核心,负责:
  1) 证书的签发
    1.1) 产生自身的私钥和公钥(密钥长度至少为1024位)
    1.2) 然后生成根数字证书,并且将数字证书传输给安全服务器
  2) CA还负责为操作员、安全服务器以及注册机构服务器生成数字证书。安全服务器的数字证书和私钥也需要传输给安全服务器
CA服务器是整个结构中最为重要的部分,存有CA的私钥以及发行证书的脚本文件,出于安全的考虑,应将CA服务器与其他服务器隔离,任何通信采用人工干预的方式,确保认证中心的安全。

3. 注册机构RA
登记中心服务器面向登记中心操作员,在CA体系结构中起承上启下的作用
  1) 一方面向CA转发安全服务器传输过来的证书申请请求
  2) 另一方面向LDAP服务器和安全服务器转发CA颁发的数字证书和证书撤消列表。

4. LDAP服务器
LDAP服务器提供目录浏览服务,负责将注册机构服务器传输过来的用户信息以及数字证书加入到服务器上。这样其他用户通过访问LDAP服务器就能够得到其他用户的数字证书。

5. 数据库服务器:数据库服务器是认证机构中的核心部分,用于:
  1) 认证机构中数据(如密钥和用户信息等)
  2) 日志合统计信息的存储和管理
实际的的数据库系统应采用多种措施,如磁盘阵列、双机备份和多处理器等方式,以维护数据库系统的安全性、稳定性、可伸缩性和高性能。

我们知道,PKI的目的是使用公钥机制加密技术来保护通信的安全,而公钥算法涉及到很多的加密参数,同时PKI机制中还有对用户身份的识别的功能,为了满足这些需求,"证书"的出现就很自然了,证书从本质上来说就是一个ASCII文本文件,它只是将整个公钥机制中需要的各种数据都捆绑打包到了一起,统一管理、分发



2. SSL证书  

"SSL证书"这个词是一个相对较大的概念,有很多种格式的SSL证书,整个PKI体系中有很多格式标准。PKI的标准规定了PKI的设计、实施和运营,规定了PKI各种角色的"游戏规则"。如果两个PKI应用程序之间要想进行交互,只有相互理解对方的数据含义,交互才能正常进行,标准的作用就是提供了数据语法和语义的共同约定

1. X.509标准
PKI中最重要的标准,它定义了公钥证书的基本结构。
X.509是国际电信联盟-电信(ITU-T)部分标准和国际标准化组织(ISO)的证书格式标准。作为ITU-ISO目录服务系列标准的一部分,X.509是定义了公钥证书结构的基本标准。1988年首次发布,
1993年和1996年两次修订。当前使用的版本是X.509 V3,它加入了扩展字段支持,这极大地增进了证书的灵活性。X.509 V3证书包括一组按预定义顺序排列的强制字段,还有可选扩展字段
,即使在强制字段中,X.509证书也允许很大的灵活性,因为它为大多数字段提供了多种编码方案。X.509 V4版已经推出。
X.509标准在PKI中起到了举足轻重的作用,PKI由小变大,由原来网络封闭环境到分布式开放环境,X.509起了很大作用,可以说X.509标准是PKI的雏形。PKI是在X.509标准基础上发展起来的
  1) SSL公钥证书
  2) 证书废除列表CRL(Certificate revocation lists 证书黑名单)

2. PKCS标准(公钥加密标准 Public Key Cryptography Standards, PKCS)
它定义了"数据通信协议"的主要标准。这些标准定义了如何恰当地格式化私钥或者公钥,之所以需要定义PKCS标准,是因为证书的产生并不是在本地用的,往往需要在网络中进行传输,因此需要
有一个良好的规范来定义和保证证书在网络中的正常传输
http://zh.wikipedia.org/wiki/PKCS
  1) PKCS#7 
  PKCS#7是由RSA安全体系在公钥加密系统中交换数字证书产生的一种加密标准,PKCS#7为"密码信封封装标准",描述了密码操作(例如数字签名和数字信封)的数据的通用语法。该语法允许
递归,例如一个数字信封可以嵌套在另一个数字信封里面,或者一个实体可以在一个已经封装的数据上签名。该语法同时允许添加任意属性,比如签名时间等。
  该标准和保密增强邮件(PEM)是兼容的,如果以PEM兼容形式构建,那么被签名后的数据和签名后又封装的数据内容可以很容易地被转化成PEM格式。
  这是一种将数据加密和签名(enveloping)的技术标准,它描述
    1.1) 数字证书的语法
    1.2) 其他加密消息
    1.3) 数据加密
    1.4) 数字签名的方法
    1.5) 也包含了算法 
  常见的文件后缀有:
    1.1) .P7B 
    1.2) .p7c
  1.3) .SPC
  文件中包含:
    1) 证书
    2) CRL列表信息
    3) 没有私钥(注意)
  2) PKCS#12 
  它定义了一个用于保存私钥和对应公钥证书的文件格式,并由对称密钥加密保护。PKCS#12通常采用PFX,P12作为文件扩展名。PKCS#12文件可以存放多个证书,并由密码保护,通常用于
WINDOWS IIS,也能够被当作Java Keysotre文件使用,用于Tomcat,Resign,Weblogic,Jboss等,不能被用于Apache.
  常见的文件后缀有:
    2.1) .PFX 
    2.2) .p12
  文件中包含: 
  1) 证书(公钥)
    2) 私钥(受密码保护(可选))
    3) 完整的证书链信息
 
3. X.500和目录服务标准
规定了证书撤销列表存储

0x1: SSL公钥证书

1. 证书版本号(Version)
版本号指明X.509证书的格式版本,现在的值可以为:
  1) 0: v1
  2) 1: v2
  3) 2: v3
也为将来的版本进行了预定义

2. 证书序列号(Serial Number)
序列号指定由CA分配给证书的唯一的"数字型标识符"。当证书被取消时,实际上是将此证书的序列号放入由CA签发的CRL中,这也是序列号唯一的原因。

3. 签名算法标识符(Signature Algorithm)
签名算法标识用来指定由CA签发证书时所使用的"签名算法"。算法标识符用来指定CA签发证书时所使用的:
  1) 公开密钥算法
  2) hash算法
example: sha1WithRSAEncryption
须向国际知名标准组织(如ISO)注册

4. 签发机构名(Issuer)
此域用来标识签发证书的CA的X.500 DN(DN-Distinguished Name)名字。包括:
  1) 国家(C)
  2) 省市(ST)
  3) 地区(L)
  4) 组织机构(O)
  5) 单位部门(OU)
  6) 通用名(CN)
  7) 邮箱地址

5. 有效期(Validity)
指定证书的有效期,包括:
  1) 证书开始生效的日期时间
  2) 证书失效的日期和时间
每次使用证书时,需要检查证书是否在有效期内。

6. 证书用户名(Subject)
指定证书持有者的X.500唯一名字。包括:
  1) 国家(C)
  2) 省市(ST)
  3) 地区(L)
  4) 组织机构(O)
  5) 单位部门(OU)
  6) 通用名(CN)
  7) 邮箱地址

7. 证书持有者公开密钥信息(subject PublicKey Info)
证书持有者公开密钥信息域包含两个重要信息:
  1) 证书持有者的公开密钥的值
  2) 公开密钥使用的算法标识符。此标识符包含公开密钥算法和hash算法。
8. 扩展项(extension)
X.509 V3证书是在v2的基础上一标准形式或普通形式增加了扩展项,以使证书能够附带额外信息。标准扩展是指由X.509 V3版本定义的对V2版本增加的具有广泛应用前景的扩展项,任何人都
可以向一些权威机构,如ISO,来注册一些其他扩展,如果这些扩展项应用广泛,也许以后会成为标准扩展项。

9. 签发者唯一标识符(Issuer Unique Identifier)
签发者唯一标识符在第2版加入证书定义中。此域用在当同一个X.500名字用于多个认证机构时,用一比特字符串来唯一标识签发者的X.500名字。可选。

10. 证书持有者唯一标识符(Subject Unique Identifier)
持有证书者唯一标识符在第2版的标准中加入X.509证书定义。此域用在当同一个X.500名字用于多个证书持有者时,用一比特字符串来唯一标识证书持有者的X.500名字。可选。

11. 签名算法(Signature Algorithm)
证书签发机构对证书上述内容的签名算法
example: sha1WithRSAEncryption

12. 签名值(Issuer's Signature)
证书签发机构对证书上述内容的签名值


example:

Certificate:
Data:
Version: 3 (0x2)
Serial Number:
  b7:90:fc:87:f2:27:ec:1e
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=ZH, ST=JS, L=WX, O=JN, OU=IOT, CN=LittleHann/emailAddress=306211321@qq.com
Validity
  Not Before: May  7 05:25:14 2014 GMT
  Not After : May  4 05:25:14 2024 GMT
Subject: C=ZH, ST=JS, L=WX, O=JN, OU=IOT, CN=LittleHann/emailAddress=306211321@qq.com
Subject Public Key Info:
  Public Key Algorithm: rsaEncryption
  RSA Public Key: (1024 bit)
  Modulus (1024 bit):
    00:c3:f2:9b:b8:20:3f:9e:c0:be:1d:18:a8:64:c0:
    47:79:71:bb:32:2e:63:43:af:da:01:bc:f3:f5:74:
    f8:29:4d:a8:ad:68:30:a4:bf:0a:42:71:8d:5f:58:
    c0:b1:97:a2:ae:e7:be:1e:6a:a7:d8:4a:14:f1:8f:
    67:f4:b3:64:45:88:a6:fa:ed:8f:9a:49:20:33:ca:
    dc:15:22:39:d9:40:02:1c:5f:4f:5b:1d:2c:ca:3d:
    30:8b:bc:07:0b:0f:58:03:6f:52:c7:0b:c4:54:59:
    cc:12:2a:4b:23:c6:98:fe:d3:80:a9:3f:d9:c0:1f:
    36:47:25:5a:72:fe:88:94:81
  Exponent: 65537 (0x10001)
X509v3 extensions:
  X509v3 Subject Key Identifier: 
  88:11:74:9F:7C:12:9C:92:FD:81:33:18:D0:2C:04:64:0F:00:1D:64
  X509v3 Authority Key Identifier: 
  keyid:88:11:74:9F:7C:12:9C:92:FD:81:33:18:D0:2C:04:64:0F:00:1D:64
  DirName:/C=ZH/ST=JS/L=WX/O=JN/OU=IOT/CN=LittleHann/emailAddress=306211321@qq.com
  serial:B7:90:FC:87:F2:27:EC:1E

  X509v3 Basic Constraints: 
  CA:TRUE
Signature Algorithm: sha1WithRSAEncryption
a1:6b:be:44:ba:2c:6f:88:c4:15:2d:27:0d:d7:60:0a:6a:c4:
6d:6f:1c:83:b4:0f:af:af:be:f9:f1:3e:9c:1b:d7:0a:e2:7b:
2b:70:96:d5:7e:90:51:1a:01:a3:36:7f:c3:2a:06:7a:f5:b1:
dd:c9:c5:fc:f1:98:f6:45:f6:40:ce:8a:93:4a:4e:1d:8f:9e:
2c:9f:8a:5c:d5:72:5a:0a:3e:f5:96:4b:2f:3d:ae:bf:55:50:
99:14:4a:63:34:43:41:5a:41:6e:b1:ec:7f:9d:4b:f6:d8:18:
ee:7a:10:5a:bc:d6:4b:5b:c4:0d:15:e3:23:cb:b2:63:03:62:
48:af

0x2: 证书废除列表CRL

证书废除列表CRL(Certificate revocation lists)为应用程序和其它系统提供了一种检验证书有效性的方式。任何一个证书废除以后,证书机构CA会通过发布CRL的方式来通知各个相关方

1. CRL的版本号
  1) 0: 表示X.509 V1 标准
  2) 1: 表示X.509 V2 标准
  3) 2: 表示X.509 V3标准
目前常用的是V3标准

2. 签名算法:包含:
  1) 算法标识
  2) 算法参数
用于指定证书签发机构用来对CRL内容进行签名的算法。

3. 证书签发机构名:签发机构的DN名,由
  1) 国家(C)
  2) 省市(ST)
  3) 地区(L)
  4) 组织机构(O)
  5) 单位部门(OU)
  6) 通用名(CN)
  7) 邮箱地址

4. 此次签发时间:此次CRL签发时间,遵循ITU-T X.509 V2标准的CA在2049年之前把这个域编码为UTCTime类型,在2050或2050年之后年之前把这个域编码为GeneralizedTime类型。

5. 下次签发时间:下次CRL签发时间,遵循ITU-T X.509 V2标准的CA在2049年之前把这个域编码为UTCTime类型,在2050或2050年之后年之前把这个域编码为GeneralizedTime类型。

6. 用户公钥信息,其中包括:
  1) 废除的证书序列号: 要废除的由同一个CA签发的证书的一个唯一标识号,同一机构签发的证书不会有相同的序列号
  2) 证书废除时间 

7. 签名算法:对CRL内容进行签名的签名算法。

8. 签名值:证书签发机构对CRL内容的签名值。

example:

Certificate Request:
  Data:
    Version: 0 (0x0)
    Subject: C=zh, ST=wx, L=js, O=jn, OU=iot, CN=littleHANN/emailAddress=306211321@qq.com
    Subject Public Key Info:
      Public Key Algorithm: rsaEncryption
      RSA Public Key: (2048 bit)
        Modulus (2048 bit):
          00:be:2c:a4:fc:9f:f7:b3:2a:6b:c8:2f:ec:8d:59:
          ba:12:ed:8e:c1:82:e0:6b:5d:12:99:ff:a1:54:3f:
          64:d5:31:7f:26:b6:70:95:a7:1e:7f:89:77:3b:c9:
          cd:00:7c:9a:cc:32:c9:2f:56:f5:36:8d:2b:65:d9:
          73:0c:a8:6f:03:46:1e:97:76:66:5c:93:a4:2c:00:
          99:0e:b0:38:e5:43:22:ae:6e:c6:0c:f7:b5:ef:59:
          9b:c8:d3:af:5a:35:9b:78:1d:e3:bd:c5:7e:08:9e:
          fc:de:73:fd:2a:fc:f6:11:97:ca:60:30:f4:37:0f:
          e7:d6:b7:36:d4:84:3e:e2:81:02:27:24:96:16:6d:
          da:97:7c:d9:bf:5b:79:51:f1:ba:4e:e9:17:44:1e:
          7c:fe:2d:b3:ec:62:34:2b:4d:ce:84:49:9f:0a:ec:
          1e:fe:ee:69:60:e5:14:73:cd:8f:3d:75:d7:d9:c5:
          b3:dc:c6:d7:d2:df:e6:ba:3a:a3:da:97:dd:24:cf:
          6b:e4:00:df:64:13:22:da:25:e2:4b:47:d3:12:39:
          60:0e:ab:a3:bc:54:c9:c3:36:80:9d:e5:f0:be:83:
          d4:b5:d4:73:70:15:42:6e:74:04:06:ab:12:3e:02:
          45:1f:02:20:79:fd:b5:00:48:b1:78:f0:a7:76:a5:
          94:2f
        Exponent: 65537 (0x10001)
    Attributes:
      a0:00
  Signature Algorithm: sha1WithRSAEncryption
    82:1a:93:02:7d:42:02:91:7f:59:31:75:84:49:8a:d4:4a:90:
    ec:ad:c9:f7:3b:75:68:23:f4:d0:9b:de:ab:0e:4e:60:7c:46:
    be:26:35:38:68:6b:1e:d0:61:19:86:b2:b6:a6:94:5e:8a:c1:
    90:01:63:df:a7:c2:b0:79:75:bd:01:72:30:9a:08:21:83:82:
    51:e7:79:07:7b:c8:27:9d:fa:5d:38:89:3a:97:87:87:21:65:
    a7:00:3d:4b:c6:2f:ac:0c:45:57:8c:1a:bd:89:78:2b:7a:00:
    4d:48:09:c5:55:22:9e:92:6b:f9:c8:dd:8f:de:5c:61:c7:3d:
    20:6a:a3:6b:e5:32:00:2f:dd:68:d8:a5:66:be:19:fb:95:e1:
    e2:cc:18:1e:96:2e:e5:2f:58:d9:4c:f8:d5:92:1d:34:ed:79:
    52:a2:3d:02:2e:58:2f:86:d3:29:b7:5c:66:27:25:61:d3:0e:
    5e:86:77:12:0f:4f:12:3c:bf:95:85:5c:b7:77:05:11:9e:bb:
    06:ac:f8:cc:c3:42:84:f7:a7:84:b3:6c:fe:fe:66:92:31:32:
    dc:47:8d:a2:04:e0:2e:43:74:de:9f:03:c6:7e:f0:90:1d:0f:
    8a:f3:bc:5c:2c:5c:0b:db:d9:7d:69:05:31:a9:13:f4:18:1f:
    7d:69:f4:26


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值