Daniel Carosone wrote:
Your parenthetical comments here raise some concerns, or at least eyebrows, 
with me.  Hopefully you can lower them again.

compress, encrypt, checksum, dedup.


(and you need to use zdb to get enough info to see the
leak - and that means you have access to the raw devices)

An attacker with access to the raw devices is the primary base threat model for 
on-disk encryption, surely?

An attacker with access to disk traffic, via e.g. iSCSI, who can also deploy 
dynamic traffic analysis in addition to static content analysis, and who also 
has similarly greater opportunities for tampering, is another trickier threat 
model.

It seems like entirely wrong thinking (even in parentheses) to dismiss an issue 
as irrelevant because it only applies in the primary threat model.

I wasn't dismissing it I was pointing out that this wasn't something an unprivilege end user could easily do.

If the risk is unacceptable then dedup shouldn't be enabled. For some uses cases the risk is acceptable and for those use cases we want to allow the use of dedup with encryption.

(and the way I have implemented the IV generation for AES CCM/GCM mode ensures that the same
plaintext will have the same IV so the ciphertexts will match).

Again, this seems like a cause for concern. Have you effectively turned these fancy and carefully designed crypto modes back into ECB, albeit at a larger block size (and only within a dataset)?

No I don't believe I have. The IV generation when doing deduplication is done by calculating an HMAC of the plaintext using a separate per dataset key (that is also refreshed if 'zfs key -K' is run to rekey the dataset).

Let's consider copy-on-write semantics: with the above issue an attacker can 
tell which blocks of a file have changed over time, even if unchanged blocks 
have been rewritten.. giving even the static image attacker some traffic 
analysis capability.

So if that is part of your deployment risk model deduplication is not worth enabling in that case.

This would be a problem regardless of dedup, for the scenario where the 
attacker can see repeated ciphertext on disk (unless the dedup metadata itself 
is sufficiently encrypted, which I understand it is not).

In the case where deduplication is not enabled the IV generation uses a compbination of the txg number, the object and blockid which complies with the recommendations for IV generation for both CCM and GCM.

(you need to understand what I've done with the AES CCM/GCM MAC

I'd like to, but more to understand what (if any) protection is given against 
replay attacks (above that already provided by the merkle hash tree).

What do you mean by a replay attack ?  What is being replayed and by whom ?

--
Darren J Moffat
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to