You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -111,9 +121,7 @@ Get the last report for the corresponding environment and verify the signatures
111
121
A gpg-based one can be found in [the O.R.CA documentation](https://eove.github.io/orca/unstable/signing_and_verifying.html)
112
122
113
123
> [!Warning]
114
-
> All signatures should be valid. The check above should be valid for at least the 3 👥`team members` of the previous ceremony.
115
-
>
116
-
> Only **one** invalid/missing signature is enough to **stop the ceremony**. In such a case, the issue should be analysed.
124
+
> **Any** invalid/missing/incomplete signature is enough to **stop the ceremony**. In such a case, the issue should be analysed.
117
125
118
126
Once all signatures has been verified, to get ready for subsequent steps, extract from the `previous ceremony report`:
119
127
- the `trusted commit` that was used back then (that we will refer to as `previous trusted commit`)
@@ -243,7 +251,7 @@ These 3 persons should be **physically present during the whole ceremony**, and
243
251
244
252
> [!Tip]
245
253
> To extract these sections from the html version of the ceremony's workflow, use the following filter:\
246
-
> `cat /path/to/ceremory_workflow.html | sed -e 's|<\([/]\)*code class="language-report">|\n<\1\@ORCA\@report\@>\n|g' | sed -n -e '/<\@ORCA\@report\@>/,/<\/\@ORCA\@report\@>/{s/<[/]*\@ORCA\@report\@>//;p}' | tee /tmp/blank_report.txt`
254
+
> `cat /path/to/ceremony_workflow.html | sed -e 's|<\([/]\)*code class="language-report">|\n<\1\@ORCA\@report\@>\n|g' | sed -n -e '/<\@ORCA\@report\@>/,/<\/\@ORCA\@report\@>/{s/<[/]*\@ORCA\@report\@>//;p}' | tee /tmp/blank_report.txt`
247
255
248
256
3. The third role is the `observer` (👀).\
249
257
This person should be [randomly](https://www.random.org/lists/) picked among all share holders except the two other 👥`team members`. The random draw will be performed by either the 💻`operator` or 📝`reporter`.\
@@ -260,6 +268,9 @@ These 3 persons should be **physically present during the whole ceremony**, and
260
268
261
269
For the rest of the procedure below, you can consider references to 👥`team members` as a synonym for the group of the 3 roles above.
262
270
271
+
> [!Warning]
272
+
> The 👀`observer` will have to access the keyboard to give sudo access during the checks. The other 👥`team members` should be able to keep an eye on the USB stick while not seeing the keyboard at that moment.
273
+
263
274
> [!Important]
264
275
> In the report below, and only when initializing the vault the first time, a few `FAIL`ed items are expected.\
265
276
> They are identified with a star in the report like this `FAIL* []`
Copy file name to clipboardExpand all lines: example/docs/periodical_checks.md
+10-10Lines changed: 10 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -40,7 +40,7 @@ If a word used in this document is unknown to you, the [O.R.CA documentation con
40
40
In order to execute the current document, you will need:
41
41
* An initialised offline vault
42
42
* An initialised and running online vault
43
-
* To fulfill all the prerequisites to run an ceremony
43
+
* To fulfill all the prerequisites to run a ceremony
44
44
45
45
## Recurrent checks
46
46
@@ -50,7 +50,7 @@ Checks (and fixes) below should be performed first on the preprod environment, t
50
50
If fixes are needed, this means running a ceremony on preprod, and then a ceremony on prod.
51
51
52
52
> [!Warning]
53
-
> In order to run scripts on the offline vault, samples files are provided in the `actions` directory. You should adapt these scripts to your need, then commit to git. Only then, will the live bootable media contain the updated version of these scripts.
53
+
> In order to run scripts on the offline vault, samples files are provided in the `actions` directory. You should adapt these scripts to your needs, then commit to git. Only then, will the live bootable media contain the updated version of these scripts.
54
54
55
55
### Hardware token's certificates that have expired should be renewed
56
56
@@ -72,7 +72,7 @@ This is especially important because, when initially generating certificates on
72
72
73
73
#### Test
74
74
75
-
Hardware token's certificates expire on 30/12 of the year mentioned in their public key filename (as registered in the folder `share_holders/`)
75
+
Hardware token's certificates expire on 30/12 of the year mentioned in their public key filename (as registered in the folder `share_holders/`).
76
76
If a hardware token certificate is expired when performing this check, then it should be renewed.
77
77
78
78
The 📢`organiser` should perform this check and ask the relevant share holders to renew their hardware token's GPG key pair.
@@ -93,7 +93,7 @@ An unseal share rotation should be run also on the online vault.
93
93
94
94
### Every share holder have and can use their hardware token's GPG key
95
95
96
-
Every share holder should have a hardware token and should have a GPG public key registered in the folder `share_holders/`
96
+
Every share holder should have a hardware token and should have a GPG public key registered in the folder `share_holders/`.
97
97
These hardware token's GPG keys' details should match their owner's name and e-mail address at the company.
98
98
99
99
Every share holder runs the following tests.
@@ -175,7 +175,7 @@ The start of validity date will be called *D<sub>start</sub>*, it can be found i
175
175
The expiry date will be called *D<sub>expiry</sub>*, it can be found in the `Validity`'s `Not After` attribute displayed by the command above.
If not, a new online CA should be generated, the fix below should be applied.
181
181
@@ -286,7 +286,7 @@ exit -42
286
286
> This means that, if that script succeeds, you can trust that CSR.
287
287
> However, if it fails, then it can either be a wrong CSR **or** a change in vault. Please check accordingly.
288
288
289
-
Once the check have been performed, a ceremony is executed on the offline CA and the CSR is signed, we should get a certificate chain output PEM file, let's store it into `/tmp/online_cert.pem`.
289
+
Once the check has been performed, a ceremony is executed on the offline CA and the CSR is signed, we should get a certificate chain output PEM file, let's store it into `/tmp/online_cert.pem`.
290
290
We now have to import that certificate in the **online vault**.
291
291
292
292
Once this has been done, in order to be sure that the imported certificate corresponds to a CSR generated by the online vault, please make sure that the current **default** issuer ID for the devices PKI has changed from the value you initially wrote down above:
@@ -338,20 +338,20 @@ You have two options there:
338
338
- Either the current offline root CA can be rotated (see [Vault's documentation](https://developer.hashicorp.com/vault/tutorials/pki/pki-engine#step-7-rotate-root-ca))\
339
339
This requires writing scripts for this to be run on the offline *ephemeral vault*.
340
340
- Or you can create a brand new offline root CA.\
341
-
This would be a brand new start of the root CA and this means re-initializing a new vault, start from an empty backup etc.\
341
+
This would be a brand new start of the root CA and this means re-initialising a new vault, start from an empty backup etc.\
342
342
Please read [the documentation on how to setup a new PKI](https://eove.github.io/orca/unstable/pki_init.html).
343
343
344
344
> [!Note]
345
-
> In any case, the old PKI (and offline CAs) are still valid for at least 6 months, so you can use them up to the end of their validity. After their validity has elapsed, the expired CAs should be kept as read-only and won't be used anymore (except if revokation is required).
345
+
> In any case, the old PKI (and offline CAs) are still valid for at least 6 months, so you can use them up to the end of their validity. After their validity has elapsed, the expired CAs should be kept as read-only and won't be used anymore (except if revocation is required).
346
346
347
347
> [!Tip]
348
348
> When renewing the root CA, you may as well evaluate the following aspects:
349
349
> - is the crypto used for the trust chain still up-to-date or should it be updated?
350
350
> - is hashicorp vault and upstream O.R.CA version (used as a template) still up-to-date and maintained, in general and in NixOS or should the PKI be setup using new tools?
351
-
> - the environment in which the vault has been created initially has been progressively migrated from an initialization state 30 years before, it's maybe time to clean-up and start from scratch.
351
+
> - the environment in which the vault has been created initially has been progressively migrated from an initialisation state 30 years before, it's maybe time to clean-up and start from scratch.
352
352
> - restarting from scratch allows to detach the currently active PKI from all history of previously chained reports and audit trails.
353
353
> - we may want to start with better security ecosystem (better crypto, improved initialisation in both hashicorp vault and our own scripts) after 30 years, it's probably time to review the whole setup in depth, including scripts, hashicorp vault, tools (hardware tokens, NixOS bootable media), and where and how backups+reports are saved.
354
-
> - after 30 years, it would be good to get new people own the whole system, including setup from scratch
354
+
> - after 30 years, it would be good to get new people to own the whole system, including setup from scratch
0 commit comments