Non sembrano esserci molte informazioni approfondite sul processo di firma del certificato diverse da:
-
Guida all'uso del protocollo di interoperabilità di Gestione delle chiavi Versione 1.2 (PDF)
-
RFC 2986 - PKCS # 10: specifica sintassi della richiesta di certificazione, versione 1.7
Ecco un esempio di CSR che ho creato:
-----BEGIN CERTIFICATE REQUEST-----
MIIC3zCCAccCAQAwaTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRQwEgYDVQQH
EwtMb3MgQW5nZWxlczEQMA4GA1UEChMHRXhhbXBsZTELMAkGA1UECxMCQ0ExGDAW
BgNVBAMTD2Nzci5leGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
AQoCggEBALsbtWr46Mx8Loal+tKuAFzKHDmzBNr1DG1XlKuO32oVekJW8rkSXdIt
i90g2Bpl9yS8ndFt9djI+Jx0YZp2BnErAbriX7PXXLY13tj3OmO0f8JEAv/5HOaL
qYl79Mr03prhjyTZrlxSPsFuuXfy+arErNet7sqkOua7iexpC6Vx0CTL/YGjzEG3
PA3zAdqKMWnHruSzyAExf/NocLTJ8OdvvAIh2MP79ga8MRtXdM/nEIs6xgnd9B1c
I2mkS0gK7yFCKISZpeSusLJB9SplaOLiH0FBAzslek5WkMVs4AiEahieOMOFtyYR
8v3rKSNvSQW0y29M71AjQq9CA69VrVUCAwEAAaAxMC8GCSqGSIb3DQEJDjEiMCAw
CQYDVR0TBAIwADATBgNVHSUEDDAKBggrBgEFBQcDATANBgkqhkiG9w0BAQUFAAOC
AQEAGRIzq4nE7KhNZ5vt85gfw6BLM887G/W2A679cXzH7nSjL0Hmr7dii891ak8v
AzgwLKYn6sRBA+cN1bidExcb49v8G7TMOIBxhZjlEewgouBRBZMtNxSJFhD7TSrr
uj7r/tudnztqIjfYL9cXo+MuoGHsGJcXoBSQBIE8jheEUdaAA2LFVaLL+3lQgylL
14iCuY6DR1bF51lZP0zSqdba+mFvAVpspZfcrVClYqsf/xfkiHH7Rx1pz4sDCKTt
WV/7YHDxGXwIjIxkhEwuMX+zz3rO++jy+iBTXnFVwfPogcbLDmcFM/j4JPxuVz4a
nx5Y3pWKymuKNQ58BAguzF+tmA==
-----END CERTIFICATE REQUEST-----
Ho incollato quanto sopra in certlogik.com e ho esaminato l'output.
Se ho capito bene, 4 componenti costituiranno CertificationRequestInfo
:
- Versione
- Soggetto
- Informazioni chiave pubblica
- Attributi
Suppongo che utilizzando SHA1 o SHA2, il CertificationRequestInfo
sia quindi sottoposto a hash e che l'output dell'hash sia crittografato utilizzando la chiave privata del computer che sta creando il CSR.
Quando arriva alla CA, la CA prende CertificationRequestInfo
e esegue un hash su di essa. Quindi prende anche il valore crittografato e prova a decodificarlo utilizzando la chiave pubblica nel CSR. Se l'output dell'hash e l'output dell'hash decrittografati corrispondono, la CA firmerà il CSR.
Per favore correggimi se ho torto con quanto sopra. A questo punto sono confuso riguardo a quali dati la CA effettivamente segni (quali dati l'hash della CA e quindi crittografa quell'hash).