Il-kontrolli f’21-compliance.md sezzjoni 14 li awditur jitlob b’isimhom. Din il-paġna hija l-proċedura; ir-rekords li tipproduċi huma l-evidenza.
Iċ-ċwievet
Kull kredenzjali maħżuna hija ssiġillata b’ċavetta friska ta’ encryption tad-data (DEK). Id-
DEK hija mgeżwra miċ-ċavetta master (il-KEK), u r-referenza taċ-ċavetta master
tinħażen ħdejha (key_ref, jew ir-referenza ġewwa valur ippakkjat). Ir-rotazzjoni
taċ-ċavetta master terġa’ tgeżwer id-DEKs. Qatt ma tiddekripta jew terġa’ tenkripta kredenzjali.
| Setting | Meaning |
|---|---|
QUIRE_MASTER_KEY |
Iċ-ċavetta master attwali: 32 bytes, base64. Kull sigriet ġdid huwa mgeżwer taħtha |
QUIRE_MASTER_KEY_VERSION |
It-tikketta tal-verżjoni tagħha. v1 meta mhijiex issettjata. Għolliha kull meta tbiddel iċ-ċavetta |
QUIRE_MASTER_KEY_RETIRED |
Ċwievet ta’ qabel li sigrieti maħżuna jistgħu għadhom taħthom, bħala v1=<base64>,v0=<base64>. Aqra, qatt tikteb |
Il-livell web, il-worker u l-kmand bun run kek:rotate jaqraw l-istess tliet
settings. Kollha jrid ikollhom l-istess valuri, jew wieħed minnhom ma jistax jiftaħ dak li
ieħor issiġilla.
Mingħajr QUIRE_MASTER_KEY kull sottosistema żżomm iċ-ċavetta li tidderiva minn
QUIRE_SECRET_KEY. Dan jaħdem, il-paġna tas-saħħa tas-Sistema turih bħala degradat, u
jibqa’ jinqara wara li tissettja ċavetta master, li huwa kif l-ewwel rotazzjoni
tmexxi kollox minn fuqha. Kull min jista’ jaqra l-ambjent tal-proċess jista’ jiddekripta
kull kredenzjali maħżuna, għalhekk installazzjoni ta’ produzzjoni għandu jkollha ċavetta master,
miżmuma f’maħżen ta’ sigrieti u mhux fl-istess backup mad-database.
Rotazzjoni
L-età taċ-ċavetta tidher fuq il-console tal-Pjattaforma, Sigurtà, Ċavetta master, u bħala l-metrika
quire.secrets.master_key.age (jiem). L-iskeda ta’ kuljum platform.key_age (03:41 UTC)
tikteb entrata ta’ tfakkira fil-katina tal-verifika tal-pjattaforma meta ċ-ċavetta tilħaq 365
jum, u mill-ġdid kull 30 jum sakemm tiddawwar. Dawwar mat-tfakkira, u kull meta ċavetta setgħet kienet esposta.
- Iġġenera ċ-ċavetta l-ġdida:
openssl rand -base64 32. - Issettja
QUIRE_MASTER_KEYgħaliha uQUIRE_MASTER_KEY_VERSIONgħat-tikketta li jmiss (v2). Mexxi ċ-ċavetta l-qadima għalQUIRE_MASTER_KEY_RETIREDbħalav1=<old base64>. Żomm kopja tat-tnejn xi mkien ieħor barra dan il-host. - Deployja l-livell web u l-worker bis-settings il-ġodda. Sigrieti ġodda issa huma
mgeżwra taħt
env:QUIRE_MASTER_KEY:v2; dawk qodma xorta jinfetħu permezz taċ- ċavetta rtirata. - Itlob ir-rotazzjoni, bir-raġuni li se toqgħod fit-trail tal-verifika:
- fil-console: Sigurtà, Ċavetta master, Dawwar iċ-ċavetta master; jew
- fuq shell bl-istess ambjent:
bun run kek:rotate request --reason "Annual rotation, ticket SEC-114".
- Il-worker jerġa’ jgeżwer porzjon kull minuta (l-iskeda
platform.key_rotationtal-iskedar) u jkompli wara restart. Biex tlestiha f’seduta waħda:bun run kek:rotate run. Araha b’bun run kek:rotate status. - Meta r-rekord juri li r-rotazzjoni kompluta b’żero mhux solvuti u żero
falluti, neħħi ċ-ċavetta rtirata minn
QUIRE_MASTER_KEY_RETIREDu erġa’ deployja. Sa dakinhar żommha: valur li ma setax iċaqalqu għadu mgeżwer taħt iċ-ċavetta l-qadima.
X’jimxi x-xogħol
Kull maħżen li fih DEK imgeżwer: dawk f’SEALED_STORES
(apps/worker/src/key-rotation.ts). Maħżen tad-database tal-kontroll jimxew fuq id-
database tal-kontroll; maħżen tal-organizzazzjoni jimxew organizzazzjoni waħda kull darba taħt
sigurtà fil-livell tar-ringieli, f’kull database li żżomm l-organizzazzjoni, biex tenant
imwaħħal ma’ database dedikata jiddawwar f’dik id-database. Test ifalli meta l-
iskema tikseb kolonna ta’ ċavetta mgeżwra li l-lista ma ssemmihiex, u ieħor meta
ir-reviżjoni tal-kredenzjali tikklassifika kolonna ssiġillata li l-lista titlef.
Ir-rekord
ops.key_rotation: ringiela waħda għal kull rotazzjoni, bir-raġuni tagħha, min talabha, l-istat tagħha u t-totali tagħha (mgeżwra mill-ġdid, diġà attwali, mhux solvuti, falluti).ops.key_rotation_progress: ringiela waħda għal kull maħżen u skop ladarba jimtela, bir- referenzi taċ-ċwievet li ma setax jaqra u kemm valuri kien hemm taħt kull waħda. Rotazzjoni mkomplija taqbeż dawn.- Katina tal-verifika tal-pjattaforma:
platform/key_rotation_request(bir-raġuni), waħdaplatform/key_rotation_storegħal kull maħżen bil-għadd tiegħu, uplatform/key_rotation_completejewplatform/key_rotation_fail;platform/key_age_remindergħat-tfakkira. - Metriki:
quire.secrets.master_key.ageuquire.secrets.rewrap.outstanding(valuri li l-aħħar rotazzjoni ma setgħetx iċċaqlaq).
Meta l-valuri huma mhux solvuti
Valur mhux solvut huwa mgeżwer taħt referenza ta’ ċavetta li din l-installazzjoni ma
jkollhiex, jew mhuwiex fil-forma li l-kolonna tiegħu twiegħed. Ir-rekord tal-progress isemmi r-
referenza (pereżempju env:QUIRE_MASTER_KEY:v0 (unreadable)). Erġa’ poġġi dik iċ-ċavetta
f’QUIRE_MASTER_KEY_RETIRED u ħaddem rotazzjoni oħra, jew, jekk iċ-ċavetta intilfet
għal kollox, ħalli l-amministratur tal-organizzazzjoni jerġa’ jdaħħal il-kredenzjali:
imbagħad tiġi ssiġillata taħt iċ-ċavetta attwali. Rotazzjonijiet falluti juru l-iżball tagħhom fuq ir-
rekord; iffissa l-kawża u itlob mill-ġdid.
Ċwievet tal-iffirmar
Separati miċ-ċavetta master: kull organizzazzjoni tiffirma t-tokens OpenID Connect tagħha
u l-messaġġi LTI biċ-ċavetta RSA tagħha, ippubblikata f’/.well-known/jwks.json.
Xejn hawnhekk ma jeħtieġ operatur. L-iskeda ta’ kull siegħa platform.signing_keys
tippubblika suċċessur sebat ijiem qabel ma d-disgħin jum taċ-ċavetta attwali jispicċaw, ġimgħa
aktar tard is-suċċessur jibda jiffirma u ċ-ċavetta l-qadima ssir rtiranti, u disgħin jum
wara li ċ-ċavetta l-qadima titħassar u tħalli s-sett taċ-ċwievet. Kull pass huwa
entrata platform/signing_key_advance fuq il-katina tal-verifika tal-pjattaforma.
Biex tissostitwixxi ċ-ċavetta ta’ organizzazzjoni kmieni, pereżempju wara espożizzjoni:
- fil-console: Sigurtà, Ċavetta master, Ippubblika ċavetta ġdida tal-iffirmar (teħtieġ
platform/keys_manage); jew - fuq shell bl-ambjent tal-worker:
bun run kek:rotate signing-keys rotate --tenant <slug or id> --reason "Key exposed, INC-3310".bun run kek:rotate signing-keys statusjelenka ċ-ċwievet ta’ kull organizzazzjoni skont l-istadju.
Iċ-ċavetta l-ġdida tiġi ppubblikata f’daqqa u tibda tiffirma wara sebat ijiem, meta ċ-
ċavetta attwali tirtħa. Il-ġimgħa hija deliberata: partijiet li jiddependu jikkesċjaw is-sett taċ-ċwievet,
u overlap iqsar ifalli kull għodda f’daqqa. Iċ-ċavetta rtiranti tibqa’ fis-sett taċ-ċwievet
għal disgħin jum oħra biex tokens li diġà ffirmat ikomplu jivverifikaw; jekk l-
espożizzjoni tfisser li trid tieqaf tiġi fdata aktar kmieni, it-tħassir tar-ringiela tagħha hija bidla
magħmula bl-aċċess tad-database tal-operatur stess taħt rekord ta’ bidla (l-aċċess break-glass
huwa qari biss), u tokens iffirmati biha mbagħad ifallu l-verifika. Ir-
rotazzjoni sfurzata hija platform/signing_key_rotate fil-katina tal-verifika, bir-
raġuni. Il-worker jeħtieġ l-istess settings ta’ QUIRE_MASTER_KEY bħal-livell web biex
jgeżwer iċ-ċavetta l-ġdida; bun run kek:rotate għaċ-ċavetta master jerġa’ jgeżwer ċwievet tal-iffirmar
ma’ kollox (oauth_signing_key tinsab f’SEALED_STORES).
Aċċess break-glass għall-produzzjoni
Ħadd m’għandu aċċess permanenti għall-produzzjoni. Meta xi ħaġa ma tistax tistenna, sid joħroġ għotja break-glass: Console tal-Pjattaforma, Sigurtà, Aċċess break-glass.
- Għotja għandha skop (organizzazzjoni waħda, jew ir-reġistru tal-pjattaforma), raġuni ta’ mill- inqas 20 karattru li ssemmi l-inċident jew it-ticket, u tieqa ta’ 5 sa 240 minuta. Tiskadi waħedha: tiġi ċċekkjata mal-arloġġ f’kull dikjarazzjoni.
- Tista’ tinħareġ lis-sid li joħroġha, jew lil sid ieħor (il-forma ta’ żewġ persuni).
Il-persuna li nħarġet lilha biss tista’ tużaha. Il-ħruġ jeħtieġ
platform/break_glass_issueu l-użu jeħtieġplatform/break_glass_use; it-tnejn huma tas-sid biss default. - Dikjarazzjonijiet jaħdmu permezz tal-gateway, mhux fuq login tad-database: qari biss, waħda kull darba, limitati għall-organizzazzjoni jew għar-reġistru tal-kontroll, b’timeout ta’ ħames sekondi u l-aktar 500 ringiela. Valuri binarji jintwerew bid-daqs.
- Il-katina tal-verifika tal-pjattaforma tirreġistra l-ħruġ (bir-raġuni), ir-revoka,
kull dikjarazzjoni qabel ma taħdem (
platform/break_glass_statement, dawk rifjutati b’riżultatdenied) u kull riżultat (platform/break_glass_result).ops.break_glass_statementfih l-ids tal-entrati tal-verifika, biex ir-rekord tal-ħruġ jingħaqad mal-entrati tal-verifika tiegħu. - Kitbiet mhumiex offruti. Bidla li ma tistax tistenna release tuża l- aċċess tad-database tal-operatur stess taħt ir-rekord tal-bidla tiegħu, barra dan il-prodott, u r-rekord għandu jiċċita r-referenza tal-inċident użata hawnhekk.
Għaliex ma toħroġx kredenzjali tad-database: login Postgres jgħix aktar mis-sessjoni li talbitu, jevita s-sigurtà fil-livell tar-ringieli li l-applikazzjoni tiddependi fuqha, u ma jistax jikteb fil-katina tal-verifika ta’ dan il-prodott, biex id-dikjarazzjonijiet tiegħu jiġu vverifikati biss safejn xi ħadd bagħat il-log tas-server. Il-gateway jagħmel it-trail tal-verifika proprjetà tal-aċċess aktar milli prattika madwaru.
Biex twieġeb talba tal-verifika: elenka l-għotjiet fil-perjodu (Aċċess break-glass),
iftaħ l-istorja ta’ għotja għad-dikjarazzjonijiet tagħha u l-ids tal-entrati tal-verifika, u aqra dawk
l-entrati fuq il-katina tal-verifika tal-pjattaforma (bun run audit:verify --platform jipprova li l-
katina hija intatta).