citadel-core/scripts/backup
Aaron Dewes 9054194ab7
Citadel 0.1.0 (#85)
Co-authored-by: nolim1t - f6287b82CC84bcbd <nolim1t@users.noreply.github.com>
Co-authored-by: Aaron Dewes <aaron.dewes@protonmail.com>
Co-authored-by: Philipp Walter <philippwalter@pm.me>
Co-authored-by: Lele <emanuele.lele.calo@gmail.com>
2022-10-26 10:28:31 +02:00
..
backup Citadel 0.0.5 (#45) 2022-06-11 18:35:47 +02:00
decoy-trigger Citadel 0.0.5 (#45) 2022-06-11 18:35:47 +02:00
monitor Citadel 0.0.5 (#45) 2022-06-11 18:35:47 +02:00
README.md Move to GPL 3 2022-01-21 21:37:48 +01:00
restore Citadel 0.1.0 (#85) 2022-10-26 10:28:31 +02:00

Automatic Encrypted Backups

The backups are encrypted client side before being uploaded over Tor and are padded with random data. Backups are made immediately as soon as the channel state changes. However, Citadel also makes decoy backups at random intervals to prevent timing-analysis attacks.

These features combined ensure that the backup server doesn't learn any sensitive information about the user's Citadel.

  • The IP address of user is hidden due to Tor.
  • User's channel data are encrypted client side with a key only known to the Citadel device.
  • Random interval decoy backups ensure the server can't correlate backup activity with channel state changes on the Lightning network and correlate a backup ID with a channel pubkey.
  • Random padding obscures if the backup size has increased/decreased or remains unchanged due to it being a decoy.

Due to the key/id being deterministically derived from the Citadel seed, all that's needed to fully recover an Citadel is the mnemonic seed phrase. Upon recovery the device can automatically regenerate the same backup id/encryption key, request the latest backup from the backup server, decrypt it, and restore the user's settings and Lightning network channel data.

There is currently no way to disable backups or recover from them in the dashboard yet. Both of these features will be introduced in the coming updates.