Provision AirgapOS
Requirements
-
Tamper proofing equipment
-
SD card(s)
-
2 Computers
Procedure
-
Turn on one of the computers - this one will be used for writing the SD cards
-
Build the software according to the readme in the repository.
-
Use the
make reproduce
command -
Unseal the 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
-
-
Label each SD card that will be used "AirgapOS [date]"
-
Place all the SD cards into High Visibility Storage
-
Retrieve a labelled SD card from High Visibility Storage, and plug it into the computer where AirgapOS will be built
-
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:
-
Hash the .iso file and make note of it (it will be required later)
sha256sum out/airgap.iso
-
Flash
airgap.iso
to an SD Card:dd if=out/airgap.iso of=/dev/<device_name> bs=4M conv=fsync
-
Reset the computer, and boot the SD card
-
Once booted, the card needs to be locked using
sdtool
which is available inAirgapOS
:- Note: the device will not mount as a proper block device on QubesOS so a different OS has to be used where the device appears as /dev/mmcblk
- Note: the device will not mount as a proper block device on QubesOS so a different OS has to be used where the device appears as /dev/mmcblk
-
./sdtool /dev/<device_name> permlock
-
Once burned, unplug the SD card
-
Plug the SD card into a different computer from the one that was used to write the SD card
-
Boot the computer
-
Open a terminal
-
Verify the card can't be written to:
echo "42" | dd of=/dev/<device_name>
-
Verify the contents on the SD card match the recorded hash
-
Build AirgapOS once more according to the readme in the repository.
- Ensure it's the same version as in the previous step
-
head -c $(stat -c '%s' out/airgap.iso) /dev/<device_name> | sha256sum
-
Additionally, the user can refer to the StageX hashes of AirgapOS for a given version
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
-