此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍简单证书注册协议(SCEP),该协议用于注册和其他公钥基础设施(PKI)操作。
SCEP最初由思科开发,并记录在互联网工程任务组(IETF)草案中。
其主要特点是:
SCEP的注册和使用通常遵循以下工作流程:
SCEP使用CA证书来保护CSR的消息交换。因此,必须获取CA证书的副本。使用GetCACert操作。
请求作为HTTP GET请求发送。请求的数据包捕获类似于以下内容:
GET /cgi-bin/pkiclient.exe?operation=GetCACert
响应仅是二进制编码CA证书(X.509)。 客户端需要通过检查指纹/哈希来验证CA证书是否受信任。这必须通过带外方法(向系统管理员打电话或在信任点内预配置指纹)来完成。
注册请求作为HTTP GET请求发送。该请求的数据包捕获类似于以下内容:
/cgi-bin/pkiclient.exe?operation=PKIOperation&message=
MIIHCgYJKoZIhvcNAQcCoIIG%2BzCCBvcCAQExDjA......<snip>
对SCEP注册请求的响应是以下三种类型之一:
在证书到期之前,客户端需要获取新证书。续约和翻转之间存在细微的行为差异。当客户端的ID证书即将到期,且其到期日期与CA证书的到期日期不同(早于)时,会发生续订。当ID证书即将到期且其到期日期与CA的证书到期日期相同时,将发生滚动更新。
随着ID证书到期日期的临近,SCEP客户端可能希望获取新证书。客户端生成CSR并完成注册流程(如前所定义)。 当前证书用于签名SignedData PKCS#7,这反过来证明CA的身份。收到新证书后,客户端立即删除当前证书并将其替换为新证书,新证书的有效性立即开始。
滚动更新是CA证书过期并生成新CA证书的特殊情况。CA生成新的CA证书,当前CA证书过期后,该证书将生效。CA通常会在滚动更新时间之前的某个时间生成此“影子CA”证书,因为为了为客户端生成“影子ID”证书,需要生成该证书。
当SCEP客户端的ID证书即将到期时,SCEP客户端会向CA查询“影子CA”证书。此操作通过GetNextCACert操作完成,如下所示:
GET /cgi-bin/pkiclient.exe?operation=GetNextCACert
一旦SCEP客户端拥有“影子CA”证书,它会在正常注册过程后请求“影子ID”证书。CA使用“Shadow CA”证书签署“Shadow ID”证书。与正常续约请求不同,返回的“影子ID”证书在CA证书到期(滚动)时生效。 因此,客户端需要为CA和ID证书保留滚动前和滚动后证书的副本。在CA到期(全反)时,SCEP客户端删除当前CA证书和ID证书,并用“卷影”副本替换它们。
此结构用作SCEP的构建块。
注意:PKCS#7和PKCS#10不特定于SCEP。
PKCS#7是允许对数据签名或加密的已定义数据格式。数据格式包括执行加密操作所需的原始数据和相关元数据。
签名信封是一种格式,用于传送数据并确认封装的数据在传输过程中没有通过数字签名进行更改。包括以下信息:
SignedData ::= SEQUENCE {
version CMSVersion,
digestAlgorithms DigestAlgorithmIdentifiers,
encapContentInfo EncapsulatedContentInfo,
certificates [0] IMPLICIT CertificateSet OPTIONAL,
crls [1] IMPLICIT RevocationInfoChoices OPTIONAL,
signerInfos SignerInfos }
封装的数据未加密或模糊处理。此格式仅提供对已更改消息的保护。
“封装数据”格式传送已加密且只能由指定收件人解密的数据。 包括以下信息:
EnvelopedData ::= SEQUENCE {
version CMSVersion,
originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
recipientInfos RecipientInfos,
encryptedContentInfo EncryptedContentInfo,
unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL }
PKCS#10描述CSR的格式。CSR包含客户端请求包含在其证书中的信息:
以下是CSR的示例:
Certificate Request:
Data:
Version: 0 (0x0)
Subject: CN=scepclient
Subject Public Key Info:
Public Key Algorithm: rsaEncryption Public-Key: (1024 bit)
Modulus:
00:cd:46:5b:e2:13:f9:bf:14:11:25:6d:ff:2f:43:
64:75:89:77:f6:8a:98:46:97:13:ca:50:83:bb:10:
cf:73:a4:bc:c1:b0:4b:5c:8b:58:25:38:d1:19:00:
a2:35:73:ef:9e:30:72:27:02:b1:64:41:f8:f6:94:
7b:90:c4:04:28:a1:02:c2:20:a2:14:da:b6:42:6f:
e6:cb:bb:33:c4:a3:64:de:4b:3a:7d:4c:a0:d4:e1:
b8:d8:71:cc:c7:59:89:88:43:24:f1:a4:56:66:3f:
10:25:41:69:af:e0:e2:b8:c8:a4:22:89:55:e1:cb:
00:95:31:3f:af:51:3f:53:ad
Exponent: 65537 (0x10001)
Attributes:
challengePassword :
Requested Extensions:
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Subject Alternative Name:
DNS:webserver.example.com
Signature Algorithm: sha1WithRSAEncryption
8c:d6:4c:52:4e:c0:d0:28:ca:cf:dc:c1:67:93:aa:4a:93:d0:
d1:92:d9:66:d0:99:f5:ad:b4:79:a5:da:2d:6a:f0:39:63:8f:
e4:02:b9:bb:39:9d:a0:7a:6e:77:bf:d2:49:22:08:e2:dc:67:
ea:59:45:8f:77:45:60:62:67:64:1d:fe:c7:d6:a0:c3:06:85:
e8:f8:11:54:c5:94:9e:fd:42:69:be:e6:73:40:dc:11:a5:9a:
f5:18:a0:47:33:65:22:d3:45:9f:f0:fd:1d:f4:6f:38:75:c7:
a6:8b:3a:33:07:09:12:f3:f1:af:ba:b7:cf:a6:af:67:cf:47: 60:fc
请求以HTTP GET形式发送:
GET CGI-path/pkiclient.exe?operation=operation&message=message HTTP/version
其中:
使用GET方法时,消息部分为纯文本或转换为Base64的由可分辨编码规则(DER)编码的PKCS#7。如果支持POST方法,则将使用GET的Base64编码发送的内容可以使用POST以二进制格式发送。
操作及其关联的消息值的可能值:
PKIOperation
:
SCEP响应作为标准HTTP内容返回,其内容类型取决于原始请求和返回的数据类型。DER内容以二进制形式返回(对于请求,不在Base64中)。PKCS#7内容可能包含加密/签名的封装数据;如果它不包含(仅包含一组证书),则称为退化PKCS#7。
Content-Type的可能值:
application/x-pki-message:
application/x-x509-ca-cert:
application/x-x509-ca-ra-cert:
application/x-x509-next-ca-cert:
2.16.840.1.113733.1.9.2 scep-messageType
2.16.840.1.113733.1.9.3 scep-pkiStatus
2.16.840.1.113733.1.9.4 scep-failInfo
2.16.840.1.113733.1.9.5 scep-senderNonce
2.16.840.1.113733.1.9.6 scep-recipientNonce
2.16.840.1.113733.1.9.7 scep-transId
2.16.840.1.113733.1.9.8 scep-extensionReq