borg/src/borg/archiver
Thomas Waldmann 1b6f928917
ro_type: typed repo objects, see #7670
writing: put type into repoobj metadata
reading: check wanted type against type we got

repoobj metadata is encrypted and authenticated.
repoobj data is encrypted and authenticated, also (separately).
encryption and decryption of both metadata and data get the
same "chunk ID" as AAD, so both are "bound" to that (same) ID.

a repo-side attacker can neither see cleartext metadata/data,
nor successfully tamper with it (AEAD decryption would fail).

also, a repo-side attacker could not replace a repoobj A with a
differently typed repoobj B without borg noticing:
- the metadata/data is cryptographically bound to its ID.
  authentication/decryption would fail on mismatch.
- the type check would fail.

thus, the problem (see CVEs in changelog) solved in borg 1 by the
manifest and archive TAMs is now already solved by the type check.
2023-09-24 20:10:50 +02:00
..
__init__.py fix E741 2023-07-26 01:24:00 +02:00
_common.py fix E501 2023-07-26 01:24:20 +02:00
benchmark_cmd.py
check_cmd.py
compact_cmd.py
config_cmd.py simplify flake8 configuration 2023-07-25 23:56:31 +02:00
create_cmd.py create: do not try to read parent dir of recursion root, fixes #7746 2023-07-29 23:31:16 +02:00
debug_cmd.py ro_type: typed repo objects, see #7670 2023-09-24 20:10:50 +02:00
delete_cmd.py
diff_cmd.py
extract_cmd.py
help_cmd.py docs: remove zstd compat hint 2023-09-02 14:30:34 +02:00
info_cmd.py
key_cmds.py always implicitly require manifest TAMs 2023-09-03 22:01:46 +02:00
list_cmd.py
lock_cmds.py
mount_cmds.py
prune_cmd.py
rcompress_cmd.py ro_type: typed repo objects, see #7670 2023-09-24 20:10:50 +02:00
rcreate_cmd.py always implicitly require manifest TAMs 2023-09-03 22:01:46 +02:00
rdelete_cmd.py
recreate_cmd.py recreate: remove --recompress option 2023-09-23 00:01:39 +02:00
rename_cmd.py
rinfo_cmd.py
rlist_cmd.py fix E501 2023-07-26 01:24:20 +02:00
serve_cmd.py
tar_cmds.py ro_type: typed repo objects, see #7670 2023-09-24 20:10:50 +02:00
transfer_cmd.py ro_type: typed repo objects, see #7670 2023-09-24 20:10:50 +02:00