reduce number of steps in docs

This commit is contained in:
Anton Livaja 2025-02-23 10:08:08 -05:00
parent 950a078f4e
commit 98c7efef54
Signed by: anton
GPG Key ID: 44A86CFF1FDF0E85
14 changed files with 98 additions and 176 deletions

View File

@ -29,10 +29,12 @@
* [Transaction Approval](generated-documents/level-2/fixed-location/approver/approve-transaction.md) * [Transaction Approval](generated-documents/level-2/fixed-location/approver/approve-transaction.md)
* [Operator](generated-documents/level-2/fixed-location/operator/index.md) * [Operator](generated-documents/level-2/fixed-location/operator/index.md)
* [Quorum Entropy Ceremony](generated-documents/level-2/fixed-location/operator/quorum-entropy-ceremony.md) * [Quorum Entropy Ceremony](generated-documents/level-2/fixed-location/operator/quorum-entropy-ceremony.md)
* [Namespace Entropy Ceremony](generated-documents/level-2/fixed-location/operator/namespace-entropy-ceremony.md)
* [Ceremony SD Card Provisioning](generated-documents/level-2/fixed-location/operator/ceremony-sd-card-provisioning.md) * [Ceremony SD Card Provisioning](generated-documents/level-2/fixed-location/operator/ceremony-sd-card-provisioning.md)
* [SOL - Transfer Token](generated-documents/level-2/fixed-location/operator/coins/sol/transfer-token.md) * [Namespace Operations]()
* [SOL - Generate Address](generated-documents/level-2/fixed-location/operator/coins/sol/generate-address.md) * [Namespace Entropy Ceremony](generated-documents/level-2/fixed-location/operator/namespace-entropy-ceremony.md)
* [Decrypt Namespace Secret](generated-documents/level-2/fixed-location/operator/decrypt-namespace-secret.md) * [Decrypt Namespace Secret](generated-documents/level-2/fixed-location/operator/decrypt-namespace-secret.md)
* [Encrypt Wallet To Namespace PGP Key](generated-documents/level-2/fixed-location/operator/encrypt-wallet-to-namespace-key.md) * [Encrypt Wallet To Namespace PGP Key](generated-documents/level-2/fixed-location/operator/encrypt-wallet-to-namespace-key.md)
* [Export Namespace Mnemonic](generated-documents/level-2/fixed-location/operator/export-namespace-mnemonic.md) * [Export Namespace Mnemonic](generated-documents/level-2/fixed-location/operator/export-namespace-mnemonic.md)
* [Coins - SOL]()
* [SOL - Generate Address](generated-documents/level-2/fixed-location/operator/coins/sol/generate-address.md)
* [SOL - Transfer Token](generated-documents/level-2/fixed-location/operator/coins/sol/transfer-token.md)

View File

@ -4,30 +4,15 @@
1. {{ #include finding-device-name.md:content }} 1. {{ #include finding-device-name.md:content }}
1. Copy files into designated location in a repository: 1. If the `~/vaults/` repository already exists, ensure it doesn't have any changes that haven't been committed, then remove it using `sudo rm -rf ~/vaults` before re-running the previous step
* e.g `cp -r /media/vaults ~/vaults/` 1. Copy the repository with updated files to an online machine, sign, commit and push to the `vaults` repository:
```
* If the `~/vaults/` repository already exists, ensure it doesn't have any changes that haven't been committed, then remove it using `sudo rm -rf ~/vaults` before re-running the previous step $ cp -r /media/vaults ~/vaults/
$ cd ~/vaults
1. Change directory to `vaults` $ git add .
$ git commit -m -S "<message>"
* `cd ~/vaults` $ git push origin HEAD
```
1. Add all files to git stage:
* `git add .`
1. Review what files are staged:
* `git status`
1. Create a signed commit:
* `git commit -m -S "<message>"`
1. Push the changes to the branch you are on:
* `git push origin HEAD`
// ANCHOR_END: content // ANCHOR_END: content
/* ANCHOR_END: all */ /* ANCHOR_END: all */

View File

@ -11,12 +11,6 @@ Git is used because it permits cryptographic singing of commits using PGP, as we
1. Set appropriate permissions to limit who can write to the repository. 1. Set appropriate permissions to limit who can write to the repository.
* `main` branch should be write protected so that merges to that branch can only be done if at least 2 approvals are present
* The organization may choose to require more approvals based on risk tolerance and operational capacity
* The merges should be done via CLI signed commits
* Require that all commits are signed using well known PGP keys * Require that all commits are signed using well known PGP keys
1. Optionally set up a chron job that periodically pulls the data from the repository as a backup. 1. Optionally set up a chron job that periodically pulls the data from the repository as a backup.

View File

@ -116,7 +116,7 @@ Sealing bags of standard size objects which need to be protected can fit in. The
1. Insert object(s) into plastic bag 1. Insert object(s) into plastic bag
1. Fill bag with enough plastic beads that all of the object is surrounded 1. Fill bag with enough plastic beads that most of the object is surrounded
1. Use vacuum sealer to remove air from the bag until the beads are no longer able to move 1. Use vacuum sealer to remove air from the bag until the beads are no longer able to move

View File

@ -46,14 +46,11 @@ The approver is responsible for verifying a transaction proposed by a [proposer]
1. {{ #include ../../../../component-documents/finding-device-name.md:content }} 1. {{ #include ../../../../component-documents/finding-device-name.md:content }}
1. Copy the git repo locally from the Ceremony SD card 1. Copy the git repo locally from the Ceremony SD card and change into it
```
* `cp -r /media/vaults /root/vaults` $ cp -r /media/vaults /root/vaults
$ cd /root/vaults
1. Change directory to vaults ```
* `cd /root/vaults`
1. Plug in the Operator smart card 1. Plug in the Operator smart card
1. Verify the existing signatures and add your own signature: 1. Verify the existing signatures and add your own signature:
@ -72,26 +69,17 @@ The approver is responsible for verifying a transaction proposed by a [proposer]
1. {{ #include ../../../../component-documents/finding-device-name.md:content }} 1. {{ #include ../../../../component-documents/finding-device-name.md:content }}
1. Copy the updated repository locally: 1. Copy the updated repository locally and change into it:
```
* `cp -r /media/vaults ~/` $ cp -r /media/vaults ~/
$ cd ~/vaults
1. Change into locally copied directory ```
1. Stage, sign, commit and push changes to the ceremonies repository:
* `cd ~/vaults` ```
$ git add <namespace>/ceremonies/<date>/payloads/*
1. Stage the modified file: $ git commit -S -m "add payload signature for payload_<num>.json"
$ git push origin main
* `git add <namespace>/ceremonies/<date>/payloads/*` ```
1. Create a signed git commit:
* `git commit -S -m "add payload signature for payload_<num>.json"`
1. Push the latest commit to the repository
* `git push origin main`
1. Tamper proof the AirgapOS and Air-gapped laptop 1. Tamper proof the AirgapOS and Air-gapped laptop
{{ #include ../../../../component-documents/tamper-evidence-methods.md:vsbwf-procedure-sealing}} {{ #include ../../../../component-documents/tamper-evidence-methods.md:vsbwf-procedure-sealing}}

View File

@ -36,13 +36,11 @@
1. Retrieve Ceremony SD card from High Visibility Storage and plug it into the air-gapped machine 1. Retrieve Ceremony SD card from High Visibility Storage and plug it into the air-gapped machine
1. Copy the `vaults` repository to the machine 1. Copy the `vaults` repository to the machine and switch to it
```
* `cp -r /media/vaults /root/` $ cp -r /media/vaults /root/
$ cd /root/vaults
1. Change directory to `vaults`: ```
* `cd /root/vaults`
1. Start Keyfork using the relevant Shardfile: 1. Start Keyfork using the relevant Shardfile:
@ -158,22 +156,12 @@
* Once the airdrop is done, nonce account will be created * Once the airdrop is done, nonce account will be created
1. Add all files to git stage: 1. Stage, commit, sign and push the changes:
```
* `git add .` $ git add .
$ git commit -m -S "<message>"
1. Review what files are staged: $ git push origin HEAD
```
* `git status`
1. Create a signed commit:
* `git commit -m -S "<message>"`
1. Push the changes to the branch you are on:
* `git push origin HEAD`
### Sealing ### Sealing
1. Gather all the original items that were in the air-gapped bundle: 1. Gather all the original items that were in the air-gapped bundle:

View File

@ -32,20 +32,12 @@ This is a ceremony for generating and sharding entropy to a set of existing Quor
1. Plug in the Ceremony SD card 1. Plug in the Ceremony SD card
1. Back up the `shardfile.asc` 1. Back up the files
```
* `cp shardfile.asc /media/vaults/<namespace>/` $ cp shardfile.asc /media/vaults/<namespace>/
TODO (NOT IMPLEMENTED): $ cp encryption_certificate.asc /media/vaults/<namespace>/
1. TODO - NOT IMPLEMENTED: $ cp -r /media/vaults /root/
```
* Back up the root OpenPGP certificate
* `cp encryption_certificate.asc /media/vaults/<namespace>/`
1. Copy the contents of Ceremony SD card to machine
* `cp -r /media/vaults /root/`
1. To create additional backups of the updated `vaults` repository, plug in SD cards one at a time and use following steps to back up ceremony artifacts 1. To create additional backups of the updated `vaults` repository, plug in SD cards one at a time and use following steps to back up ceremony artifacts
1. Plug in fresh SD card 1. Plug in fresh SD card

View File

@ -35,23 +35,13 @@ This is a ceremony for generating entropy which is used to derive Quorum PGP key
1. Plug in the Ceremony SD card 1. Plug in the Ceremony SD card
1. Back up the `shardfile.asc` 1. Back up the files
```
* `cp shardfile.asc /media/vaults/<namespace>/` $ cp shardfile.asc /media/vaults/<namespace>/
$ cp keyring.asc /media/vaults/<namespace>/
1. Back up the `keyring.asc` TODO (NOT IMPLEMENTED): $ cp encryption_cert.asc /media/vaults/<namespace>/
$ cp -r /media/vaults /root/
* `cp keyring.asc /media/vaults/<namespace>/` ```
1. TODO - NOT IMPLEMENTED:
* Back up the root OpenPGP certificate
* `cp encryption_cert.asc /media/vaults/<namespace>/`
1. Copy the contents of Ceremony SD card to machine
* `cp -r /media/vaults /root/`
1. To create additional backups of the updated `vaults` repository, plug in SD cards one at a time and use following steps to back up ceremony artifacts 1. To create additional backups of the updated `vaults` repository, plug in SD cards one at a time and use following steps to back up ceremony artifacts

View File

@ -12,8 +12,6 @@ The procurer is responsible for:
* Ensuring equipment is properly tamper proofed * Ensuring equipment is properly tamper proofed
* Maintaining stock of supplies in the inventory
* Minimizing hardware supply chain security risks * Minimizing hardware supply chain security risks
## Order of Operations ## Order of Operations
@ -28,4 +26,10 @@ The procurer is responsible for:
1. Procuring [hardware](./procure-hardware.md) 1. Procuring [hardware](./procure-hardware.md)
1. Procuring [SD cards](./procure-sd-card-pack.md) * Laptops
* SD cards
* SD card USB adapters
* Smart cards

View File

@ -7,13 +7,3 @@
1. Procure an enclosure for locking equipment. A simple lockbox or a safe can be used. It should be at least large enough to fit several laptops, with some extra room. 1. Procure an enclosure for locking equipment. A simple lockbox or a safe can be used. It should be at least large enough to fit several laptops, with some extra room.
1. Designate the location as the facility for conducting ceremonies and update documentation and policies to reflect this 1. Designate the location as the facility for conducting ceremonies and update documentation and policies to reflect this
## Maintenance
* The facility should always be well stocked with SD cards
* Usage of these SD cards:
* Transferring transaction data from online to air-gapped machine
* Storing tamper proofing evidence produced at the end of the ceremony

View File

@ -14,6 +14,10 @@
## Procedure: Online Procurement ## Procedure: Online Procurement
1. Select a well known and reputable supplier. Establishing a relationship with a hardware supplier that has a reputation for privacy, supply chain security is preferred.
2. Order the supplies to a registered mailbox, to prevent exposing your organization's location
## Tamper Proofing ## Tamper Proofing
All hardware: All hardware:

View File

@ -38,14 +38,11 @@ The proposer must combine these values into a JSON file, such as:
1. Turn on online machine 1. Turn on online machine
1. Clone the repository if it's not available locally: 1. Clone the `vaults` repository if it's not available locally and get the latest changes:
```
* `git clone <repository_git_url>` $ git clone <repository_git_url>
$ git pull origin main
1. Pull the latest changes from the `ceremonies` repository ```
* `git pull origin main`
1. Unseal the SD Card Pack 1. Unseal the SD Card Pack
{{ #include ../../../../component-documents/tamper-evidence-methods.md:vsbwf-procedure-unsealing}} {{ #include ../../../../component-documents/tamper-evidence-methods.md:vsbwf-procedure-unsealing}}
@ -66,19 +63,15 @@ The proposer must combine these values into a JSON file, such as:
1. Insert the AirgapOS SD card into the airgapped machine and turn it on 1. Insert the AirgapOS SD card into the airgapped machine and turn it on
1. Once booted, unplug the AirgapOS SD card 1. Once booted, unplug the AirgapOS SD card and place it in High Visibility Storage
1. Plug in the Ceremony SD card 1. Plug in the Ceremony SD card
1. Copy the git repo locally from the Ceremony SD card and change to it
1. Copy the git repo locally from the Ceremony SD card ```
$ cp -r /media/vaults /root
* `cp -r /media/vaults /root` $ cd /root/vaults
```
1. Change into the vaults directory:
* `cd /root/vaults`
1. Create a new payloads directory in the `vaults` repository for the date on which the ceremony for the transaction will take place if it doesn't already exist 1. Create a new payloads directory in the `vaults` repository for the date on which the ceremony for the transaction will take place if it doesn't already exist
* `mkdir -p <namespace>/ceremonies/<date>/payloads` * `mkdir -p <namespace>/ceremonies/<date>/payloads`
@ -101,31 +94,21 @@ The proposer must combine these values into a JSON file, such as:
* `cp -r /root/vaults /media` * `cp -r /root/vaults /media`
1. Unplug the SD card from the air-gapped machine 1. Transfer the SD card from the air-gapped machine to the online machine
1. Plug in the SD card into the online machine
1. {{ #include ../../../../component-documents/finding-device-name.md:content }} 1. {{ #include ../../../../component-documents/finding-device-name.md:content }}
1. Copy the updated repository locally: 1. Copy the updated repository locally and switch to it:
```
* `cp -r /media/vaults ~/` $ cp -r /media/vaults ~/
$ cd ~/vaults
1. Change into locally copied directory ```
1. Stage, sign, commit and push the changes to the ceremonies repository:
* `cd ~/vaults` ```
$ git add <namespace>/ceremonies/<date>/payloads/*
1. Stage the modified file: $ git commit -S -m "add payload signature for payload_<num>.json"
$ git push origin main
* `git add <namespace>/ceremonies/<date>/payloads/*` ```
1. Create a signed git commit:
* `git commit -S -m "add payload signature for payload_<num>.json"`
1. Push the latest commit to the repository
* `git push origin main`
1. Notify relevant individuals that there are new transactions queued up, and that a ceremony should be scheduled. This can be automated in the future so that when a commit is made or PR opened, others are notified, for example using a incident management tool. 1. Notify relevant individuals that there are new transactions queued up, and that a ceremony should be scheduled. This can be automated in the future so that when a commit is made or PR opened, others are notified, for example using a incident management tool.

View File

@ -10,14 +10,16 @@
## Procedure ## Procedure
1. Unseal a tamper proofed laptop
{{ #include ../../../../component-documents/tamper-evidence-methods.md:vsbwf-procedure-unsealing }} {{ #include ../../../../component-documents/tamper-evidence-methods.md:vsbwf-procedure-unsealing }}
1. Follow a given model manual to remove all radio cards, storage drive, speakers, and microphone using standard industry laptop repair tactics 1. Remove all radio cards, storage drive, speakers, and microphone using standard industry laptop repair tactics
{{ #include ../../../../component-documents/tamper-evidence-methods.md:vsbwf-procedure-sealing }} {{ #include ../../../../component-documents/tamper-evidence-methods.md:vsbwf-procedure-sealing }}
1. Apply a new label which indicates the laptop has been provisioned 1. Apply a new label which indicates the laptop has been provisioned (include date, and any other desired metadata such as a unique ID (e.g Laptop #4))
1. Return the provisioned laptop to inventory 1. Place the provisioned laptop in inventory
1. Update inventory to reflect that this hardware has ben provisioned 1. Update inventory to reflect that this hardware has been provisioned, and including the metadata in the `description.txt` for that item according to the [inventory repository structure](../procurer/create-inventory-repository.md)