Skip to content

Borg 2.0

TW edited this page Jul 15, 2022 · 5 revisions

Note: This page could be outdated. Look at the page history to see when it was last updated.

Status: implementing
Time frame: n/a

Development Goals

  • Using some sort of "session keys" for encryption. This is mainly motivated by four-ish reasons:
    1. With a global AES + MAC key one has to track the counter values perfectly to avoid leaking XORed plaintexts. This means extra synchronization and complexity between clients (and in a multi-threaded environment, between threads).
    2. Using separate "session keys" in multiple threads makes multi-threading easier
    3. Data encrypted using "session keys" could be more easily moved between repositories, which would allow efficient replication. This is not possible with a global CTR, since it may never repeat
    4. Using "session keys" could allow to freely choose from a set of encryption algorithms - one algorithm is not the best for all machines.
    5. more modern KDF (argon2 additionally to pbkdf2)
  • Possibly: Some form of replication (between "similar" repositories, for some definition of "similar"). The session key design must consider this.
Clone this wiki locally