Public Key Infrastructure
PKI技术以非对称密钥技术为基础,以数字证书为媒介,将各参与实体的标识信息与公钥绑定在一起。通过特定接口为用户提供安全服务,包括加密、解密、数字签名、身份认证等;具有透明性、易用性、可扩展性、互操作性、多用性、支持多平台等基础设施共有的特点。
PKI系统内容
PKI系统主要包括以下内容:
- 认证中心CA:证书的签发机构;负责签发证书、验证身份、登记、发布证书撤销列表CRL
- 证书库:颁发证书和撤销证书集中存放地
- 密钥备份及恢复系统
- 证书撤销处理系统:Certificate Revocation List
- PKI应用接口系统
PKI应用系统包括:
- 认证中心CA
- X.500目录服务器:用于发布用户的证书以及证书注销列表
- 安全WWW服务器以及安全通信平台:通过SSL、IPsec等安全协议保证传输数据的机密性、完整性、真实性
- 安全应用系统
PKI提供的服务
- 安全登录
- 对终端用户透明:接口
- 全面的安全性:用统一的方式提供安全服务,保证信息的机密性、完整性、认证性、不可否认性
PKI体系结构
PAA
Policy Approval Authority政策批准机构,创建PKI系统方阵、政策、批准PAA下属PCA政策,为PCA签发公钥证书,建立整个PKI体系的安全策略。
PCA
Policy Certification Authority政策认证机构,制定本PCA的具体政策,如密钥的产生、长度、证书有效期、CRL处理;并为下属CA签发公钥证书。
CA
Certificate Authority认证中心,担任具体的用户密钥对生成和签发,CRL的生成以及发布。核心功能是发放和管理数字证书。
在Fabric中,CA为组织内部节点发放证书,包含用户公钥、标识等信息,用户证书被CA签名发放。通过CA,第三方用户可以验证用户持有的证书是否由信任的CA分发,以验证用户的合法身份。
PEM格式:Privacy-Enhanced Mail 隐私增强邮件。
此外,证书是公开的,因此不包含私钥信息。对于CA自己的证书,一般通过自签名为自己发放。
以ca.example.com-cert.pem
为例,这是一个证书文件,为了便于在网络上传送,通常证书会编码为PEM
,如果我们直接查看它的内容:
-----BEGIN CERTIFICATE-----
MIICPjCCAeOgAwIBAgIQUkJOmiAwvlYsCrOusBHa8jAKBggqhkjOPQQDAjBpMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy
YW5jaXNjbzEUMBIGA1UEChMLZXhhbXBsZS5jb20xFzAVBgNVBAMTDmNhLmV4YW1w
bGUuY29tMB4XDTIxMDIwNDExMjgwMFoXDTMxMDIwMjExMjgwMFowaTELMAkGA1UE
BhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lz
Y28xFDASBgNVBAoTC2V4YW1wbGUuY29tMRcwFQYDVQQDEw5jYS5leGFtcGxlLmNv
bTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLobAhmABZmDnBUN7kYay3p9hX8K
3jC6gfo4cH+fMe15b1hwKCr5pcbyNrBLpzejsEu8HKLf6qjQgeqU99t8uOCjbTBr
MA4GA1UdDwEB/wQEAwIBpjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw
DwYDVR0TAQH/BAUwAwEB/zApBgNVHQ4EIgQgjWGUej/DLisEDcDHYMST4otUkW0k
qigiB7mobi0r20MwCgYIKoZIzj0EAwIDSQAwRgIhALlqhswN20B9C5z5ZcPjtUsb
BE90U8L7RoO/VMQSi/NbAiEApyA0DvYXtm4El8G8w+9D8aE/y4aQGq4d+QKHZYIn
BXY=
-----END CERTIFICATE-----
由于Fabric中采用X.509证书,我们使用openssl
查看ca.example.com-cert.pem
的可读格式的内容,下面是一个X.509证书的主要内容:
C:\Users\HP\Desktop\test-network\organizations\ordererOrganizations\example.com\ca>openssl x509 -in ca.example.com-cert.pem -text -noout
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
52:42:4e:9a:20:30:be:56:2c:0a:b3:ae:b0:11:da:f2 # 序列号
Signature Algorithm: ecdsa-with-SHA256 # 签名算法
Issuer: C = US, ST = California, L = San Francisco, O = example.com, CN = ca.example.com #发放机构
Validity # 有效期
Not Before: Feb 4 11:28:00 2021 GMT
Not After : Feb 2 11:28:00 2031 GMT
Subject: C = US, ST = California, L = San Francisco, O = example.com, CN = ca.example.com # 证书持有人
Subject Public Key Info:
Public Key Algorithm: id-ecPublicKey
Public-Key: (256 bit) # 公钥
pub:
04:ba:1b:02:19:80:05:99:83:9c:15:0d:ee:46:1a:
cb:7a:7d:85:7f:0a:de:30:ba:81:fa:38:70:7f:9f:
31:ed:79:6f:58:70:28:2a:f9:a5:c6:f2:36:b0:4b:
a7:37:a3:b0:4b:bc:1c:a2:df:ea:a8:d0:81:ea:94:
f7:db:7c:b8:e0
ASN1 OID: prime256v1
NIST CURVE: P-256
X509v3 extensions:
X509v3 Key Usage: critical
Digital Signature, Key Encipherment, Certificate Sign, CRL Sign
X509v3 Extended Key Usage:
TLS Web Client Authentication, TLS Web Server Authentication
X509v3 Basic Constraints: critical
CA:TRUE
X509v3 Subject Key Identifier:
8D:61:94:7A:3F:C3:2E:2B:04:0D:C0:C7:60:C4:93:E2:8B:54:91:6D:24:AA:28:22:07:B9:A8:6E:2D:2B:DB:43
Signature Algorithm: ecdsa-with-SHA256 # CA对该证书的签名
30:46:02:21:00:b9:6a:86:cc:0d:db:40:7d:0b:9c:f9:65:c3:
e3:b5:4b:1b:04:4f:74:53:c2:fb:46:83:bf:54:c4:12:8b:f3:
5b:02:21:00:a7:20:34:0e:f6:17:b6:6e:04:97:c1:bc:c3:ef:
43:f1:a1:3f:cb:86:90:1a:ae:1d:f9:02:87:65:82:27:05:76
CA证书的发放
- 离线发放:申请批准后,RA初始化申请者信息,在LDAP(Lightweight Directory Access Protocol)服务器添加信息;信息传给CA,生成参照号Ref.number以及认证码Auth.code;使用电子邮件或者打印,线下传递;申请人收到后在审查机构面对面领取证书,证书可存入光盘,软盘等
- 在线发放:申请批准后,RA初始化申请者信息,在LDAP(Lightweight Directory Access Protocol)服务器添加信息;信息传给CA,生成参照号Ref.number以及认证码Auth.code;申请人在本机登录网站通过浏览器安装Root CA证书,输入参照号和授权码获得证书。
CRL
证书废除原因主要有以下几点:
- 密钥泄露:私钥泄露或者被破坏
- 从属变更:关于密钥的信息变更
- 终止使用:该密钥不再用于原来的用途或者证书已经到期
- CA本身原因:CA系统私钥泄露
- CA有理由怀疑证书细节不真实、不可信
- 证书持有者没有履行协议
- 证书持有者死亡、违反电子交易规则或者被判定为犯罪
ORA
Online Register Authority在线证书审查机构进行申请者身份认证,向CA提交证书申请,验证接受CA签发的证书,发放给申请者。
EE
End Entity最终实体是PKI的最终使用者