본 제품에 대한 문서 세트는 편견 없는 언어를 사용하기 위해 노력합니다. 본 설명서 세트의 목적상, 편견 없는 언어는 나이, 장애, 성별, 인종 정체성, 민족 정체성, 성적 지향성, 사회 경제적 지위 및 교차성에 기초한 차별을 의미하지 않는 언어로 정의됩니다. 제품 소프트웨어의 사용자 인터페이스에서 하드코딩된 언어, RFP 설명서에 기초한 언어 또는 참조된 서드파티 제품에서 사용하는 언어로 인해 설명서에 예외가 있을 수 있습니다. 시스코에서 어떤 방식으로 포용적인 언어를 사용하고 있는지 자세히 알아보세요.
Cisco는 전 세계 사용자에게 다양한 언어로 지원 콘텐츠를 제공하기 위해 기계 번역 기술과 수작업 번역을 병행하여 이 문서를 번역했습니다. 아무리 품질이 높은 기계 번역이라도 전문 번역가의 번역 결과물만큼 정확하지는 않습니다. Cisco Systems, Inc.는 이 같은 번역에 대해 어떠한 책임도 지지 않으며 항상 원본 영문 문서(링크 제공됨)를 참조할 것을 권장합니다.
이 문서에서는 등록 및 기타 PKI(Public Key Infrastructure) 작업에 사용되는 프로토콜인 SCEP(Simple Certificate Enrollment Protocol)에 대해 설명합니다.
SCEP는 원래 Cisco에서 개발되었으며 IETF(Internet Engineering Task Force) 초안에 문서화되어 있습니다.
주요 특징은 다음과 같습니다.
SCEP의 등록 및 사용량은 일반적으로 다음과 같습니다.
SCEP는 CSR에 대한 메시지 교환을 보호하기 위해 CA 인증서를 사용합니다.따라서 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에 ID를 검증합니다.새 인증서를 받으면 클라이언트는 즉시 현재 인증서를 삭제하고 해당 인증서가 즉시 유효성 검사가 시작되는 새 인증서로 대체합니다.
롤오버는 CA 인증서가 만료되고 새 CA 인증서가 생성되는 특수한 경우입니다.CA는 현재 CA 인증서가 만료되면 유효한 새 CA 인증서를 생성합니다.일반적으로 CA는 클라이언트에 대한 "Shadow ID" 인증서를 생성하기 위해 필요하기 때문에 롤오버 시간 전에 이 "Shadow CA" 인증서를 생성합니다.
SCEP 클라이언트의 ID 인증서가 만료될 때 SCEP 클라이언트는 CA에 "Shadow CA" 인증서를 쿼리합니다.이 작업은 다음과 같이 GetNextCACert 작업을 통해 수행됩니다.
GET /cgi-bin/pkiclient.exe?operation=GetNextCACert
SCEP 클라이언트에 "Shadow CA" 인증서가 있으면 일반 등록 절차 후에 "Shadow ID" 인증서를 요청합니다.CA는 "Shadow CA" 인증서로 "Shadow ID" 인증서에 서명합니다.일반적인 갱신 요청과 달리, 반환되는 "Shadow ID" 인증서는 CA 인증서 만료(롤오버) 시 유효하게 됩니다. 따라서 클라이언트는 CA와 ID 인증서 모두에 대해 사전 및 사후 롤오버 인증서의 사본을 유지해야 합니다.CA 만료(롤오버) 시 SCEP 클라이언트는 현재 CA 인증서 및 ID 인증서를 삭제하고 "Shadow" 복사본으로 대체합니다.
이 구조는 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 }
캡슐화된 데이터는 암호화되지 않거나 애매합니다.이 형식은 변경된 메시지에 대한 보호를 제공합니다.
Enveloped Data 형식은 암호화된 데이터를 전송하며, 지정된 수신자만 해독할 수 있습니다. 여기에는 다음 정보가 포함됩니다.
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 메서드를 사용하면 메시지 파트가 일반 텍스트 또는 DER(Distinguished Encoding Rules) 인코딩 PKCS#7이 Base64로 변환됩니다. POST 메서드가 지원되는 경우 GET을 사용하여 Base64 인코딩으로 전송되는 콘텐츠가 대신 POST를 사용하여 이진 형식으로 전송될 수 있습니다.
작업 및 관련 메시지 값에 사용할 수 있는 값
PKIOperation
:
SCEP 응답은 표준 HTTP 콘텐츠로 반환되며 원래 요청 및 반환된 데이터 유형에 따라 달라지는 Content-Type이 사용됩니다.DER 콘텐츠는 요청에 대한 Base64가 아닌 이진으로 반환됩니다.PKCS#7 콘텐츠에는 암호화된/서명된 enveloped 데이터가 포함되거나 포함되지 않을 수 있습니다.인증서 집합이 포함되지 않은 경우(인증서 집합만 포함), 이를 dergenerate PKCS#7이라고 합니다.
콘텐츠 형식에 사용할 수 있는 값:
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