Merge remote-tracking branch 'origin/feat/dry-run'

This commit is contained in:
Lance Vick 2024-08-16 13:19:27 -07:00
commit 1243bcf549
Signed by: lrvick
GPG Key ID: 8E47A1EC35A1551D
15 changed files with 514 additions and 0 deletions

View File

@ -0,0 +1,42 @@
-----BEGIN PGP PRIVATE KEY BLOCK-----
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
VTnPOhtM1woBQ9DN+pREBA==
=Bu9/
-----END PGP PRIVATE KEY BLOCK-----

View File

@ -0,0 +1,39 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEAAAAARYJKwYBBAHaRw8BAQdA5S6Dghpl9IC8QL2yJCN5PTFlwBQBr5iCSdNN
q88nKCqIxgQfFgoAeAWCZrAE5QWJZrFWZAkQQ+yIHYyA3kFHFAAAAAAAHgAgc2Fs
dEBub3RhdGlvbnMuc2VxdW9pYS1wZ3Aub3JntHZqrHod+WoOHKWV6QNQNyxHBShe
k+gFjKv4G1pLk68CmwEWIQRfgncBgiQl6LsNLqtD7IgdjIDeQQAAJgkA/A1BbLMS
te6m8Y24dvf1mNoqFzLANgCKH3PcUjrfVnhmAQDfOjm/R+uzOehOJ9EbeW9diTOP
v5eYHuTpcqqyR3YiBLQZQWxpY2UgPGFsaWNlQGRpc3RydXN0LmNvPojGBBMWCgB4
BYJmsATlBYlmsVZkCRBD7IgdjIDeQUcUAAAAAAAeACBzYWx0QG5vdGF0aW9ucy5z
ZXF1b2lhLXBncC5vcmfWAK8i++/SvNT26MwBucfyuM3XG9S2QMExyTcdscKdhgKb
ARYhBF+CdwGCJCXouw0uq0PsiB2MgN5BAADh6QD6A1B+C4zHgeTIrw5pgf2O/YOs
7Kj2OuXFXAufWBXc8J0BAK1pX8F4iB6KtfOz3jEGCRBJMAi8hNLxemYmNueujCMM
iMkEExYKAHsFgmawBOUFiWaxVmQJEEPsiB2MgN5BRxQAAAAAAB4AIHNhbHRAbm90
YXRpb25zLnNlcXVvaWEtcGdwLm9yZ5G+PvlhNiUZJpZXw6v5DY5rKIUOoT3JFqI5
QkSKsWLSApkBApsBFiEEX4J3AYIkJei7DS6rQ+yIHYyA3kEAAD3lAQChseOofXyj
iO3Rtm4PFr71dthxDVehgb6+AiGlYZjoFgEAiQPdqu1Ob5wKhwVgeKjOqpJkDZNL
oTSK2w3TOOodHgu4MwQAAAABFgkrBgEEAdpHDwEBB0AzRnbvUibQq2I8yWzK/QUD
/Z/Zcfw4h3gSrBUYup01O4kBhQQYFgoBNwWCZrAE5QWJZrFWZAkQQ+yIHYyA3kFH
FAAAAAAAHgAgc2FsdEBub3RhdGlvbnMuc2VxdW9pYS1wZ3Aub3JnPb7ofnVGKw0A
ERsZdeh+cNzMNuCnOsGMKpzBBq83o28CmwK+oAQZFgoAbwWCZrAE5QkQ/RA3bjdE
hJFHFAAAAAAAHgAgc2FsdEBub3RhdGlvbnMuc2VxdW9pYS1wZ3Aub3JndMm5mw52
/YBmWZWHFOm+D4Ei3xY0n0rcatKF4AGpMx4WIQTj+EIw93Kpjwu4fEP9EDduN0SE
kQAAFxwBAPCt65PyC6A3cUjUU1bAjUxh1IKna/5jpWNgu9BAlfoQAQCaKhdqFn6l
UOsaVN9AdiEoFAQFVTUNdFHhtv68n2U7BBYhBF+CdwGCJCXouw0uq0PsiB2MgN5B
AAC3bwEAyA1/hfcx2L8bz0gg8cxAi8EPwNprgHb0LLRwJCaXrKMBALj2VUtaBrLb
Of2m5cpaXHr39xMTQhhMfzQJZZTZVN8AuDMEAAAAARYJKwYBBAHaRw8BAQdAkqGA
wmw1uMrpSBCaSeJjadLTOBASpT7b+69gy1NRYfiIxgQYFgoAeAWCZrAE5QWJZrFW
ZAkQQ+yIHYyA3kFHFAAAAAAAHgAgc2FsdEBub3RhdGlvbnMuc2VxdW9pYS1wZ3Au
b3JnlBpywhp1XH0ghAI1blsna0hJqhaATY3c1RC2rHAkrwMCmyAWIQRfgncBgiQl
6LsNLqtD7IgdjIDeQQAA6+4A/R+M2pV0taLhzn9+H35mqvpcybh2qZsKCl9RquaL
D6PqAP9f1N817CpV8aVZ0ngP5JQx6N+UGnR8/KqKKjNTl8f3ALg4BAAAAAESCisG
AQQBl1UBBQEBB0Clq1r5LDxLEMQ42aqG12vicntZG4kERnUPl13F6GmfAgMBCAeI
xgQYFgoAeAWCZrAE5QWJZrFWZAkQQ+yIHYyA3kFHFAAAAAAAHgAgc2FsdEBub3Rh
dGlvbnMuc2VxdW9pYS1wZ3Aub3Jn0DcQHPAxsj9u1yI+IK/vhmAOApducmzwyraZ
ocQz188CmwwWIQRfgncBgiQl6LsNLqtD7IgdjIDeQQAA7CABAKKafURY8LXsCWsI
FC9pzHfkeEAMxfJMIeKK7T3KlfksAQDQbaR/SkWT3V5NEGHZpPhBVTnPOhtM1woB
Q9DN+pREBA==
=H+u2
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,42 @@
-----BEGIN PGP PRIVATE KEY BLOCK-----
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
vCFnnd4VGw7yebbNKw4=
=JfJQ
-----END PGP PRIVATE KEY BLOCK-----

View File

@ -0,0 +1,39 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
ebbNKw4=
=2pCF
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,42 @@
-----BEGIN PGP PRIVATE KEY BLOCK-----
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
aKEhrNlP9Uy1h1gF
=MT2O
-----END PGP PRIVATE KEY BLOCK-----

View File

@ -0,0 +1,39 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
h1gF
=7+uv
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1 @@
a78a023a9532927f0e7af7ce1177b8286fdfa425670d166932f46ee90abcafe8 airgap.iso

View File

@ -0,0 +1,28 @@
#!/bin/sh
script_dir="$(dirname "$(realpath "$0")")"
read -p "Provide the path to PGP certificates which will be used for the ceremony: " relative_path
directory_path="$script_dir/$relative_path"
if [ ! -d "$directory_path" ]; then
echo "Directory does not exist. Please enter a valid directory path."
exit 1
fi
for file in "$directory_path"/*; do
if [ -f "$file" ]; then
echo "Processing file: $file"
gpg --import --import-options import-show $file
fi
done
read -p "Do the PGP key IDs match what you expect? (y/n): " matches_expectation
if [ $matches_expectation != "y" ]; then
echo "Ceasing ceremony as PGP key IDs don't match"
exit 1
fi
keyfork bottoms-up --threshold 2 --output-cert /media/cert --output-shardfile /media/shardfile --user-id "Distrust Key Ceremony" /media/public-certificates/

View File

@ -0,0 +1 @@
8b8dadafcb891d47fd48960d0ebbd64f927bc1958d0a15f1e414fa04bc0e1b50 ceremony.sh

View File

@ -0,0 +1,47 @@
usage: Disaster Recovery (Test)
officiant: Anton Livaja
location: Private Home (Address Redacted)
witnesses: N/A
hardware: Dell XPS 13 9630
firmware: BIOS 2.13.0
laptop_modifications: N/A
boot_media: Kingston SDCIT2/8GBSP
software:
- name: Airgap OS
repo: https://git.distrust.co/public/airgap
ref: main
hash: 485fc58bfb1b4dc75a81138d93948385cc5bf600
playbooks:
- name: some/path/to/location_key_generation.md
repo: https://git.distrust.co/public/docs
ref: some-git-ref-here
notes: used once for each Location Key
- name: some/path/to/hybrid_quroum_key_generation.md
repo: https://git.distrust.co/public/docs
ref: some-git-ref-here
notes: used once to generate Root Entropy and Disaster Recovery Key
outputs:
- cert: ./disaster-recovery-key.priv.asc
- shardfile: ./shardfile
public_keys:
- type: operator
fingerprint: 0609D5C2634DB5D75226AD9A7A8A6F24873977E4
- type: operator
fingerprint: 5F827701822425E8BB0D2EAB43EC881D8C80DE41
- type: operator
fingerprint: 6E18E082945BC43411C3B490E43B49017440605D
- type: disaster recovery
fingerprint: 8BA0304345D05775C303E292D9BDBC00D3E85E87
log:
- 2024-08-04:0900: One man team generates all the Location Keys inside of a
Qube VM
- 2024-08-04:0920: SD card with flashed airgap.iso is booted on the Dell XPS13
and public certs and `ceremony.sh` script are brought over on a usb stick; the
usb is mounted, ceremony.sh is run and pub keys are verified
- 2024-08-04:0922: Set the system time using `date -s "2024-08-04 23:10:00", as
the system time has to be after pgp cert creation and before expiration time of
certs
- 2024-08-04:0925: The disaster recovery pgp cert and shards are copied to the
usb drive and brought over to an online connected machine and committed to git
repo
general_notes: N/A

View File

@ -0,0 +1,39 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
PPeGCA==
=2zQE
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1 @@
busy lyrics owner arrow industry various fossil chef secret define tenant able matrix casino knife like grow wine taste coast wrist shed fiscal capital

View File

@ -0,0 +1 @@
nurse flock luggage sphere van child wide owner reject home dial call urban depth segment range stage title blood unfold culture night gauge mammal

View File

@ -0,0 +1 @@
inner camera struggle unique waste trumpet powder modify heart oblige route elegant flash foil mirror gap salad food wheel same small inhale loud affair

152
2024-08-x/test/shardfile Executable file
View File

@ -0,0 +1,152 @@
-----BEGIN PGP MESSAGE-----
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
=gYNT
-----END PGP MESSAGE-----