mirror of
https://github.com/borgbackup/borg.git
synced 2025-02-22 06:01:54 +00:00
Merge pull request #3710 from ThomasWaldmann/docs-security-fingerprinting
security: describe chunk size / proximity issue, see #331
This commit is contained in:
commit
b2c141899b
1 changed files with 40 additions and 0 deletions
|
@ -386,3 +386,43 @@ and thus no problem in practice.
|
|||
No matter what, there is always the option not to use compression if you are worried about this.
|
||||
|
||||
.. _github issue #1040: https://github.com/borgbackup/borg/issues/1040
|
||||
|
||||
Fingerprinting
|
||||
==============
|
||||
|
||||
Stored chunk sizes
|
||||
------------------
|
||||
|
||||
A borg repository does not hide the size of the chunks it stores (size
|
||||
information is needed to operate the repository).
|
||||
|
||||
The chunks stored are the (compressed and encrypted) output of the chunker,
|
||||
chunked according to the input data, the chunker's parameters and the secret
|
||||
chunker seed (which all influence the chunk boundary positions).
|
||||
|
||||
Small files below some specific threshold (default: 512kiB) result in only one
|
||||
chunk (identical content / size as the original file), bigger files result in
|
||||
multiple chunks.
|
||||
|
||||
After chunking is done, compression, encryption and authentication are applied,
|
||||
which influence the sizes of the chunks stored into the repository.
|
||||
|
||||
Within our attack model, an attacker posessing a specific set of files which
|
||||
he assumes that the victim also posesses (and backups into the repository)
|
||||
could try a brute force fingerprinting attack based on the chunk sizes in the
|
||||
repository to prove his assumption.
|
||||
|
||||
Stored chunk proximity
|
||||
----------------------
|
||||
|
||||
Borg does not try to obfuscate order / proximity of files it discovers by
|
||||
recursing through the filesystem. For performance reasons, we sort directory
|
||||
contents in file inode order (not in file name alphabetical order), so order
|
||||
fingerprinting is not useful for an attacker.
|
||||
|
||||
But, when new files are close to each other (when looking at recursion /
|
||||
scanning order), the resulting chunks will be also stored close to each other
|
||||
in the resulting repository segment file(s).
|
||||
|
||||
This might leak additional information for the chunk size fingerprinting
|
||||
attack (see above).
|
||||
|
|
Loading…
Reference in a new issue