Skip to content

1) 💣 your hyper-important secrets into nonsense shards 2) hand shards to your ❤️ ones 3) when 💩 hits the fan, they together can re-assemble your secrets

License

Notifications You must be signed in to change notification settings

twiddler/frackup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This helps you with ...

... securely backing up data on m devices such that any n of them can be used together to recover the data. No need to remember passwords. No need to trust each individual device or environment.

Usage

./src/split.sh in out n m archives input directory in, splits it into m parts of which n are sufficient for recombination, and saves them including recovery files at out.

./src/recombine.sh in out repairs (if necessary) and combines parts from in and outputs the result at out.

(Note that you can hand more than 1 part to a single device if you trust it more than others. For example, you could store 2 parts on device A and 1 part on each of devices B and C, and require 3 parts for recovering your files.)

CLI programs used

  • tar is probably already included in your distro
  • gfsplit, gfcombine are available from sudo apt install libgfshare-bin
  • par2create, par2verify, par2combine are available from sudo apt install par2

Algorithm for splitting

  1. Archive the plain files
  2. Split the archive into m parts such that n of them together can recover the whole archive
  3. Protect the archive parts against data rot
  4. For i = 0 to m devices, manually move archive part k_i and its data rot protection files *.tar.[k_i]* to the i-th device

Steps 1 to 3 are executed by ./src/split.sh. Step 4 has to be carried out by you.

Algorithm for recombining

  1. Collect n archive parts
  2. Verify the parts
  3. Recombine the archive from the parts
  4. Extract the archive

Step 1 has to be carried out by you. Steps 2 to 4 are executed by ./src/recombine.sh.

Tests

Run ./scripts/test.sh to run the bats tests in a Ubuntu environment with the necessary libraries. Requires docker-compose, which in turn requires super-user privileges (i.e. you will be prompted by sudo).

About

1) 💣 your hyper-important secrets into nonsense shards 2) hand shards to your ❤️ ones 3) when 💩 hits the fan, they together can re-assemble your secrets

Topics

Resources

License

Stars

Watchers

Forks