|
@@ -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).
|