PKI in življenjski cikel certifikatov
Povzetek. Ta stran opisuje hierarhijo CA ter življenjski cikel certifikatov, naročil in ključev CA: zahtevek, naročilo, odobritev, izdajo, obnovo, preklic, distribucijo stanja, korensko CA brez povezave in ceremonije. Vsaka organizacija ima lastno hierarhijo; poteki so v vsaki namestitvi enaki, ne glede na model delovanja.
Pojmi
- Korenska CA – najvišja CA, samopodpisana, trajno brez povezave.
- Izdajateljska CA – CA organizacije ali partnerja, ki jo certificira korenska CA; izdaja sistemske certifikate.
- Generacija CA – CA z lastnim ključem; menjava ključa ustvari novo generacijo.
- Predloga profila – predloga, ki se vzdržuje v upravljanju in iz katere nastane naročilo.
- Razred profila – kategorija, določena v pravilniku delavca CA, z zavezujočimi pravili (veljavnost, razširitve, pravilo odobritve, ročno ali samodejno).
- CSR – zahtevek za certifikat po PKCS #10 s podpisom vlagatelja kot dokazom posesti.
Hierarhija
graph TD W[Korenska CA<br/>brez povezave, HSM] --> C1[Izdajateljska CA partnerja A<br/>nameConstraints: partner-a.example<br/>pathLen 0] W --> C2[Izdajateljska CA partnerja B<br/>nameConstraints: partner-b.example<br/>pathLen 0] C1 --> S1[zaloga.partner-a.example] C1 --> S2[stroj7.obrat.partner-a.example] C2 --> S3[narocila.partner-b.example] classDef off fill:#e1dfdd,stroke:#323130,color:#201f1e classDef ca fill:#fde7e9,stroke:#a4262c,color:#201f1e classDef ee fill:#deecf9,stroke:#0078d4,color:#201f1e class W off class C1,C2 ca class S1,S2,S3 ee
Vsebina certifikata CA je v orodju korenske CA trdno določena in je ni mogoče prosto nastavljati:
cA=TRUE, pathLenConstraint=0, keyUsage samo keyCertSign in cRLSign, nameConstraints
kritično. Vsak najemnik ima vsaj eno lastno izdajateljsko CA; nobena CA se ne deli med najemniki. Za
vsako generacijo algoritmov obstaja lastna CA – klasična CA naknadno ne postane hibridna, temveč jo
nadomesti hibridna generacija.
Vsebina certifikata
| Polje | Pravilo |
|---|---|
subjectAltName | natanko en dNSName v imenskem prostoru CA; rfc822Name, iPAddress in vseh drugih vrst ni mogoče izdati |
subject | opisno; O nastavi delavec CA iz najemnika; nikoli varnostno pomembno |
| Serijska številka | ustvari jo delavec CA, pozitivno naključno število z vsaj 64 biti naključja, enolično za vsako CA |
| Veljavnost | omejena z razredom profila; izdaja samo, dokler preostala veljavnost CA presega najdaljšo veljavnost profila |
| Hibridni certifikati | klasični ključ subjekta; ključ ML-DSA v subjectAltPublicKeyInfo; alternativni podpis CA v altSignatureValue |
| Razširitve | samo tiste, ki jih razred profila dovoli, z določeno kritičnostjo |
Profili
Naslednji profili prikazujejo zgradbo s privzetimi vrednostmi. Nabori parametrov in veljavnosti sledijo strani Kriptografija in postkvantni prehod in privzetim vrednostim na strani Delovanje in izredne razmere.
Izdajateljska CA partnerja (hibridna)
Različica: 3 Serijska številka: <iz orodja korenske CA, vsaj 64 bitov naključja> Algoritem podpisa: ecdsa-with-SHA384 (1.2.840.10045.4.3.3) Izdajatelj: CN=<korenska CA> Veljavnost: 5 let (privzeto) Subjekt: CN=<ime CA>, O=<najemnik> Javni ključ: EC P-384 Razširitve: basicConstraints kritično: cA=TRUE, pathLenConstraint=0 keyUsage kritično: keyCertSign, cRLSign nameConstraints kritično: permittedSubtrees dNSName=l.example subjectKeyIdentifier, authorityKeyIdentifier cRLDistributionPoints URL seznama preklicanih korenske CA (distribucija) authorityInfoAccess caIssuers: URL korenskega certifikata (distribucija) subjectAltPublicKeyInfo (2.5.29.72) nekritično: ML-DSA-87, 2.16.840.1.101.3.4.3.19 altSignatureAlgorithm (2.5.29.73) nekritično: ML-DSA-87, 2.16.840.1.101.3.4.3.19 altSignatureValue (2.5.29.74) nekritično: podpis ML-DSA korenske CA
Sistemski certifikat
Različica: 3 Serijska številka: <iz delavca CA, vsaj 64 bitov naključja> Algoritem podpisa: ecdsa-with-SHA384 Izdajatelj: CN=<ime CA>, O=<najemnik> Veljavnost: 30 dni samodejno, največ 1 leto ročno Subjekt: CN=zaloga.l.example, O=<najemnik, nastavi delavec CA> Javni ključ: EC P-256 (ustvari ga sistem) Razširitve: basicConstraints kritično: cA=FALSE keyUsage kritično: digitalSignature extendedKeyUsage serverAuth (1.3.6.1.5.5.7.3.1), clientAuth (1.3.6.1.5.5.7.3.2) po razredu profila subjectAltName dNSName=zaloga.l.example natanko eno subjectKeyIdentifier, authorityKeyIdentifier cRLDistributionPoints URL seznama preklicanih CA authorityInfoAccess caIssuers: URL certifikata CA subjectAltPublicKeyInfo (2.5.29.72) ML-DSA-65 (ustvari ga sistem) altSignatureAlgorithm (2.5.29.73) ML-DSA-87 altSignatureValue (2.5.29.74) podpis ML-DSA CA
Certifikat agenta. Agenti ključev se preverjajo samo med seboj; klasični preverjevalci njihovih
certifikatov nikoli ne vidijo. Certifikat agenta je zato čisti certifikat ML-DSA po RFC 9881: ključ
subjekta ML-DSA-65, podpis CA z ML-DSA-87, subjectAltName z imenom DNS strežnika, extendedKeyUsage z
identifikatorjem za agente ključev, veljavnost 30 dni s samodejno obnovo.
Učinek omejitve imen. Po RFC 5280 omejitev dNSName=l.example dovoli ime l.example in vsako ime,
ki nastane z dodajanjem oznak spredaj, na primer zaloga.l.example ali stroj7.obrat.l.example;
l.example.attacker.example in xl.example nista dovoljeni.
Izdaja
sequenceDiagram participant AS as Vlagatelj participant VE as Upravljanje ali vpis participant DB as Podatkovna baza participant FG as Odobritelj participant WK as Delavec CA participant RG as Register participant HS as HSM AS->>VE: CSR (dokaz posesti), predloga profila, ime DNS VE->>VE: preveri CSR, razreši predlogo,<br/>ustvari naročilo kot JSON VE->>DB: naročilo (bajti), zgoščena vrednost FG->>DB: odobritev = podpis zgoščene vrednosti WK->>DB: prebere naročilo in odobritve WK->>WK: preverjanje glede na pravilnik WK->>RG: namera s serijsko številko WK->>HS: podpiše TBS (ML-DSA, nato klasično) WK->>RG: rezultat WK->>DB: projekcija certifikata DB-->>AS: certifikat prek upravljanja ali protokola
Vsebina naročila (obvezno): identifikator in različica formata, identifikator naročila, najemnik, izvor, korelacijski identifikator, vlagateljev ključ idempotentnosti, vlagatelj, izdajateljska CA s prstnim odtisom, razred profila, informativno predloga profila in njena različica, vrsta certifikata, javni ključ (pri hibridnem oba), CSR in njegova zgoščena vrednost, subject, seznam SAN, celotne razširitve s kritičnostjo, algoritem podpisa, začetek in konec veljavnosti, zahtevano pravilo odobritve, čas nastanka, rok. Ni v naročilu: serijska številka.
Preverjanja delavca CA: odobritev oziroma atestacija glede na pravilnik; pravilo je tisto, ki je predpisano za razred profila (naročilo si ne more izbrati blažjega); CA je dovoljena in pripada najemniku; dokaz posesti (pri hibridnem za oba ključa); ime v imenskem prostoru; samo dovoljene razširitve; veljavnost; rok; naročilo ni stornirano; naročilo še ni izvedeno.
Stanja naročila
stateDiagram [*] --> pending_approval : naročilo ustvarjeno pending_approval --> approval_complete : odobritve oddane pending_approval --> canceled : storniranje approval_complete --> claimed : delavec CA začne approval_complete --> canceled : storniranje claimed --> issued : rezultat v registru claimed --> rejected : kršitev pravila ali največje število poskusov pending_approval --> expired : rok prekoračen issued --> [*] rejected --> [*] canceled --> [*] expired --> [*]
pending_approval, approval_complete in claimed so v podatkovni bazi; issued in rejected sta
zavezujoča samo v registru in se zrcalita v podatkovno bazo. Če storniranje pride prepozno, se že izdani
certifikat prekliče. Imena stanj so vrednosti, ki jih vrača upravljalni API.
Natanko ena izdaja
| Položaj | Vedenje |
|---|---|
| Sesutje po nameri, pred podpisom | ponovni zagon podpiše odprto namero z isto serijsko številko in isto pripravljeno vsebino |
| Sesutje po podpisu, pred vpisom rezultata | kot zgoraj; prvi podpis ni nikoli zapustil delavca CA |
| Sesutje po vpisu rezultata, pred projekcijo | projekcija se izvede naknadno; je idempotentna |
| Dva delavca CA za isto CA | izključeno z izključnim zaklepanjem datoteke registra |
| Obnova registra iz varnostne kopije | delavec CA prevzame projicirane certifikate z veljavnim podpisom CA, preden obdela nova naročila |
Obnova
Obnova je nov zahtevek z novim naročilom; stari certifikat ostane veljaven do poteka. Samodejni razredi profilov obnavljajo, ko ostane še tretjina veljavnosti; najkrajša veljavnost je tri dni. Ročni razredi zahtevajo novo odobritev.
Preklic
sequenceDiagram participant P as Oseba ali imetnik participant V as Upravljanje ali protokol participant D as Podatkovna baza participant W as Delavec CA participant R as Register participant T as Distribucija P->>V: naročilo za preklic (CA, serijska številka, razlog) V->>D: naročilo za preklic W->>D: prebere naročilo za preklic W->>R: certifikat v registru? CA, najemnik? W->>R: vpiše preklic (trenutek = vpis) W->>W: nov seznam preklicanih, številka CRL + 1 W->>D: seznam preklicanih (pot 1) W->>T: seznam preklicanih (pot 2) T->>T: preveri podpis, dostavi najvišjo številko
| Pravilo | Določitev |
|---|---|
| Ključ naročila za preklic | izdajateljska CA in serijska številka; ponovitev ne spremeni ničesar |
| Pooblastitev | prek upravljanja prijavljena oseba s pravico preklica v najemniku; prek protokola imetnik z dokazom posesti ključa certifikata (preverjeno s ključem iz registra) |
| Razlogi za preklic | identifikatorji iz RFC 5280, razdelek 5.3.1, brez removeFromCRL |
| Trenutek preklica | trenutek vpisa v register, ne za nazaj |
| Monotonost | preklic je dokončen; certificateHold s poznejšo odpravo ni predviden |
| Tekma z izdajo | odloča vrstni red v registru; naročilo za preklic certifikata, ki še ni izdan, čaka ali poteče |
| Preklic CA | nikoli po tej poti, samo na ceremoniji pri korenski CA |
| Izredni preklic | na konzoli gostitelja delavca CA, tudi brez podatkovne baze |
Distribucija stanja
| Parameter | Vrednost | Utemeljitev |
|---|---|---|
Veljavnost seznama preklicanih (nextUpdate − thisUpdate) | 72 ur | rezerva za izpade |
| Ritem ustvarjanja | 6 ur in takoj po vsakem preklicu | omejuje zamudo |
| Ritem prenosa pri preverjevalcih | 6 ur | pogodba preverjevalca, točka 10 |
| Rezerva ob izpadu delavca CA | 66 ur | veljavnost minus ritem |
| Delta seznami | se ne ponujajo | seznami izdajateljske CA ostanejo dovolj majhni za ritem prenosa |
| OCSP | se ne ponuja | podpis na poti zahteve je izključen; adapter TLS prenaša sezname v ritmu |
Življenjski cikel ključev CA
stateDiagram [*] --> ustvarjen : v HSM ustvarjen --> certificiran : ceremonija certificiran --> aktiven : omogočen v pravilniku aktiven --> samo_seznami : preostala veljavnost krajša od najdaljše veljavnosti profila samo_seznami --> ustavljen : zadnji izdani certifikat je potekel ustavljen --> unicen : ceremonija aktiven --> ustavljen : kompromitacija unicen --> [*]
- Menjava (rollover): nov ključ je nova generacija CA z novim certifikatom; isti ključ se ne certificira znova. Stara generacija podpisuje samo še sezname preklicanih.
- Varnostna kopija: samo prek mehanizma HSM in po pravilu več oseb.
- PIN: v shrambi skrivnosti operacijskega sistema gostitelja delavca CA; ceremonije s kvorumom.
- Nadzor: števci podpisov modula se usklajujejo z registrom; odstopanje pomeni sum kompromitacije.
Korenska CA brez povezave in ceremonija
sequenceDiagram participant L as Vodja ceremonije participant V as Skrbniki (kvorum) participant Z as Priča participant R as Korenska CA (brez povezave) participant K as Drugi kanal L->>R: CSR izdajateljske CA (nosilec podatkov) K->>L: prstni odtis ključa in imenski prostor,<br/>odčitana na konzoli gostitelja delavca CA L->>L: primerjava CSR z drugim kanalom V->>R: aktivacija korenskega ključa R->>R: podpis certifikata CA s trdno vsebino Z->>Z: sopodpis zapisnika R->>L: certifikat CA, seznam preklicanih korenske CA,<br/>javni del zapisnika
| Pravilo | Določitev |
|---|---|
| Izvor vhodov | nič, kar korenska CA podpiše, ne izvira samo iz spletnega sistema; ključ in imenski prostor se potrdita po drugem kanalu |
| Dovoljeni artefakti noter | CSR, naročilo za ceremonijo, naročilo za preklic CA |
| Dovoljeni artefakti ven | certifikat CA (v pravilnik), korenski certifikat, seznam preklicanih korenske CA (delavec CA ga preveri pred objavo), javni del zapisnika |
| Vloge | vodja ceremonije, skrbnik, priča |
| Hramba | dva sefa na ločenih lokacijah; tabela za obnovo |
| Dokaz | lasten register korenske CA; glava verige registra delavca CA se sprejme v vsako ceremonijo |
Veljavnosti, kvorumi, ritem ceremonij in nextUpdate seznama preklicanih korenske CA so kot privzete
vrednosti navedeni na strani Delovanje in izredne razmere.
Česa ta stran ne določa
- Razmerij zaupanja med organizacijami; opisuje jih stran Federacija in dvostransko zaupanje.
- OCSP. Podatki o stanju so na voljo prek seznamov preklicanih certifikatov, ki jih adapter TLS prenaša v ritmu.
- Certifikatov za prijavo oseb v aplikacije. TrustBridge identificira sisteme, storitve in agente; osebni ključi za odobritev služijo samo odobritvi.