Data Density Attack

I suppose that first encryption is the one done by self encryptor.

The second encryption cannot be done on final storing vault, otherwise a modified version of the code could reveal original data (original content for a MD, encrypted content by self encryptor for an ImD).

This means there must be another vault that does it. Hence, this is probably a variation on the same solution that was proposed by David (constant indirection with encryption).

I would say several orders of magnitude longer instead.

The waiting is active in my attack, meaning that while the attacker is waiting for a chunk to disappear from cache, he can send get requests for other chunks. Let us get some figures (examples that simplify mental calculation):

  • the vault has 24000 IDs

  • The attacker can the get the source ID of 24 of them by scanning through all the public files he knows about

  • An item disappears from cache after 1 day when it is not requested

If constant indirection with encryption is not implemented, the user can loop over the 24000 IDs and requests 1000 gets per hour without hitting the cache.

If this solution is implemented he loops over the 24 IDs he knows and requests only 1 get per hour. Furthermore, as the IDs he knows are only of public files, these IDs have a higher probably to remain in cache because other users might also read these files.

Of course, real figures will be different, but there will be several orders of magnitude between the rates of gets the attacker can issue with and without constant indirection with encryption.

2 Likes