- 
          
 - 
                Notifications
    
You must be signed in to change notification settings  - Fork 794
 
Borg 2.0
        TW edited this page Sep 16, 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 | 
- Encryption: get rid of AES-CTR mode and use "session keys". This is mainly motivated by:
- With AES-CTR and 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).
 - Using separate "session keys" in multiple threads makes multi-threading easier. Also, one can just start from 0 for the IVs of each session key.
 - 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
 - Using "session keys" could allow to freely choose from a set of encryption algorithms - one algorithm is not the best for all machines.
 
 - use more modern / faster AEAD ciphers: AES-OCB and chacha20-poly1305
 - use a more modern KDF: argon2
 - concept of related repositories: using same chunker secret and id-hash key material.
 - borg transfer: enables copying archives from one repo to another related repository.
 - have separate encrypted metadata and data in a repo object
 - better and more symmetric way to deal with hardlinks: hlid
 - clean up the CLI
 - in general: get rid of legacy