I was reading the Arq backup data format specification. In short (if I've understood right) it is:
- Generate password protected master key
- Generate random session key
- Encrypt plain text with session key
- Encrypt session key with master
- Concat encrypted session key with encrypted text
The document says the session key is only used for 256 objects before it is replaced. What's the point of generating a session key each time if you can attack the master for the same (or better) result? I don't see anything that says the master is replaced every 256 uses.
I'm assuming the master and session key are of equal strength. The master key is generated via PBKDF2/HMACSHA1 (200000 rounds) and it is used with AES256-CBC.
This is a specific example, but I guess it's the same in more general circumstances. I can see some benefit to this with communication methods to protect against MITM as the attack might not get hold of more than one communication stream, but with backup files I guess you'd find a large number of files, and possibly several backups, all stored in the same place.
I'm probably missing an obvious principle so I would be grateful for any insight given.