You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[QUESTION / FEATURE-REQUEST] borg2: way to deduplicate across entities, without those being able to decrypt and/or alter/delete other entitiy's data #10524
I tried to make the title as generic as possible with the idea not to fall for the classic "X-Y-problem"-trap.
Let me narrow it down to an example: I have several hosts I want to backup. Currently they're treated as independent / isolated repos on the backend. I use SFTP as backend, and every host to be backed up has different access credentials and a different path on the backup host to write in. Hence, no host can access backup data of another host, nor can it alter/delete/prune that data.
In order to allow deduplication across hosts, that of course would have to be weakened. I read that I can create different keys - one key per host in my case - which all still allow writing into the same backup repository and got already excited; however, those different keys still seem to have the same permissions and only unlock the same master encryption key behind, allowing all keys again having access to all data (correct?).
Now I'm thinking if there is a way to achieve that (or a tolerable) degree of isolation with deduplication at all or whether the two are mutually exclusive.
Thinking this technically, for host A figuring out the chunk of data to be backed up already exists in the backup backend (e.g. initially from host B), it only needs to compare its checksum. That info would need to be shared across all hosts. As a consequence, this meta-data (checksum) needs to be available unencrypted - or encrypted with all host specific keys. Adding a key would then probably mean re-encrypting all that metadata. Since those checksums can be re-created, a compromised host purging such data (for all hosts) wouldn't be that bad. Although, it would probably disrupt backup operation for the other hosts. At least that could probably be monitored and the disruptive host identified. What would be worse: altering the data without anyone noticing. But I'm already focusing and wandering into a way too specific direction based on way too many (wrong) assumptions.
Then we have the pruning issue, whereas host A might have initially written chunk X, then also used by host B, then not anymore by host A and meanwhile retired, and now also not used by host B anymore, hence needs pruning - by whoever.
Is that technically possible and if yes, is that possible with the current borg2 architecture and if yes, is the borg-project willing to consider that?
Activity
RonnyPfannschmidt commentedon Oct 13, 2026
the common mechanism for that is shared key and append only mode for the hosts that back up - pruning would be managed from somewhere else
mirko commentedon Oct 13, 2026
Thanks, could you elaborate what "shared key" means here exactly? would every host be able to access other host's backup data or not?