---
title: "Rotazzjoni taċ-ċavetta master u taċ-ċwievet tal-iffirmar, u aċċess break-glass"
description: "Dawwar iċ-ċavetta master li tipproteġi l-kredenzjali maħżuna, u uża aċċess break-glass."
image: "https://docs.quirelms.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.quirelms.com/mt/llms.txt
> Use this file to discover all available pages before exploring further.

# Rotazzjoni taċ-ċavetta master u taċ-ċwievet tal-iffirmar, u aċċess break-glass

<span id="master-key-and-signing-key-rotation-and-break-glass-access"></span>

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 <!--quire:the-keys-->

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 <!--quire:rotating-->

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.

1. Iġġenera ċ-ċavetta l-ġdida: `openssl rand -base64 32`.
2. Issettja `QUIRE_MASTER_KEY` għaliha u `QUIRE_MASTER_KEY_VERSION` għat-tikketta li jmiss
   (`v2`). Mexxi ċ-ċavetta l-qadima għal `QUIRE_MASTER_KEY_RETIRED` bħala `v1=<old base64>`.
   Żomm kopja tat-tnejn xi mkien ieħor barra dan il-host.
3. 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.
4. 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"`.
5. Il-worker jerġa' jgeżwer porzjon kull minuta (l-iskeda `platform.key_rotation` tal-iskedar) u jkompli wara restart. Biex tlestiha
   f'seduta waħda: `bun run kek:rotate run`. Araha b'`bun run kek:rotate status`.
6. Meta r-rekord juri li r-rotazzjoni kompluta b'**żero mhux solvuti u żero
   falluti**, neħħi ċ-ċavetta rtirata minn `QUIRE_MASTER_KEY_RETIRED` u 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 <!--quire:what-the-job-walks-->

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 <!--quire:the-record-->

- `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ħda
  `platform/key_rotation_store` għal kull maħżen bil-għadd tiegħu, u
  `platform/key_rotation_complete` jew `platform/key_rotation_fail`;
  `platform/key_age_reminder` għat-tfakkira.
- Metriki: `quire.secrets.master_key.age` u `quire.secrets.rewrap.outstanding`
  (valuri li l-aħħar rotazzjoni ma setgħetx iċċaqlaq).

### Meta l-valuri huma mhux solvuti <!--quire:when-values-are-unresolved-->

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 <!--quire:signing-keys-->

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 status` jelenka ċ-ċ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 <!--quire:break-glass-production-access-->

Ħ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_issue` u 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żultat `denied`) u kull riżultat (`platform/break_glass_result`).
  `ops.break_glass_statement` fih 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).

Source: https://docs.quirelms.com/mt/ops/key-rotation/index.mdx
