Namespace Entropy Ceremony
This is a ceremony for generating and sharding entropy to a set of existing Quorum Keys.
Requirements
-
For ALL tamper proofed hardware used in the ceremony, both operators MUST print photographic evidence from digital cameras which is stored in a PGP signed repository. The photographs should be of the top and underside of the vacuum sealed object.
- The operators should verify the commit signatures of the photographs they are printing against a list of permitted PGP keys found in the "ceremonies" repo
-
- Provided by Air-Gapped Bundle
- Alternative: Create your own from documentation in AirgapOS Repository
-
AirgapOS Laptop
- Provided by Air-Gapped Bundle
- Alternative: Computer that can load AirgapOS (compatibility reference)
-
Minimum of 1 Operator and 1 Witness
- Personal PGP key pair for each operator
-
Tamper-proofing equipment
-
High Visibility Storage: plastic container or bag that's used to keep items while not in use in a visible location like the middle of a desk.
Procedure
-
Enter the designated location with required personnel and equipment
-
Lock access to the location - there should be no inflow or outflow of people during the ceremony
-
Retrieve Air-Gapped Bundle and polaroid tamper evidence from locked storage
Vacuum sealing based tamper proofing
a. Retrieve digital/physical photographs of both sides of sealed bundle
b. Compare all photographs to object for differences
c. Proceed with unsealing the object if no differences are detected
Safe based tamper proofing
-
Inspect the safe for any signs of tampering
-
Retrieve items from the safe
-
-
Place all materials except for the laptop into High Visibility Storage
-
Retrieve AirgapOS SD card from High Visibility Storage and plug it into air-gapped laptop
-
Turn on the machine
-
Once booted, remove the AirgapOS SD card and place it into High Visibility Storage
-
Plug the Trove SD card into the machine
-
Run the command to generate new entropy and shard it to quorum of public certificates of the input shardfile:
- Replace the values: <path_to_input_shard>, <pgp_user_id>
$ keyfork mnemonic generate --shard-to <path_to_input_shard>,output=shardfile.asc --derive='openpgp --public "Your Name <your@email.co>" --output certificate.asc'
-
Unseal an SD card pack
Vacuum sealing based tamper proofing
a. Retrieve digital/physical photographs of both sides of sealed bundle
b. Compare all photographs to object for differences
c. Proceed with unsealing the object if no differences are detected
Safe based tamper proofing
-
Inspect the safe for any signs of tampering
-
Retrieve items from the safe
-
-
Place all unsealed SD cards into High Visibility Storage
-
Plug in the Trove SD card
-
Back up the files
$ cp shardfile.asc /media/trove/<namespace>/ $ cp certificate.asc /media/trove/<namespace>/ $ cp -r /media/trove /root/
-
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-
Plug in fresh SD card
-
cp -r /root/vaults /media/
-
Unplug the SD card
-
Label the SD card "Ceremony [date]"
-
Place the SD caard in High Visibility Storage
-
-
Power down the air-gapped machine
-
Transfer the ceremony artifacts to an online machine using one of the SD cards and commit the changes made to the
vaults
repository that's on the Trove SD card -
Connect SD card to online linux workstation
-
Look for the SD card device name (
<device_name>
) in the output of thelsblk
command. It will typically be listed as/dev/sdX
or/dev/mmcblk<num>
, where X is a letter (e.g.,/dev/sdb
,/dev/sdc
). You can identify it by its size or by checking if it has a partition (like/dev/sdX1
)- Mount the device using:
sudo mount /dev/<device_name> /media
- Mount the device using:
-
If the
~/trove/
repository already exists, ensure it doesn't have any changes that haven't been committed, then remove it usingsudo rm -rf ~/trove
before re-running the previous step -
Copy the repository with updated files to an online linux workstation, sign, commit and push to the
vaults
repository:$ cp -r /media/trove ~/trove/ $ cd ~/trove $ git add . $ git commit -S -m "<message>" $ git push origin HEAD
-
Gather all the original items that were in the air-gapped bundle:
-
Air-gapped computer
-
AirgapOS SD card
Vacuum sealing based tamper proofing
-
Insert object(s) into plastic sealing bag
-
Fill bag with enough plastic beads that most of the object is surrounded
-
Use vacuum sealer to remove air from the bag until the beads are no longer able to move
-
Take photographs of both sides of the sealed object using both the digital and polaroid camera
-
Date and sign the polaroid photographs and store them in a local lock box
-
Take the SD card to an online connected device, ensuring continued dual custody, and commit the tamper evidence photographs to a repository. If two individuals are present, have one create a PR with a signed commit, and the other do a signed merge commit.
Safe based tamper proofing
-
Place items into safe
-
Ensure the safe is properly locked
-