Re: hash_hkdf() signature

php.internals

Tom Worster

9 years ago
On 2/7/17 3:22 PM, Scott Arciszewski wrote:
> One such real-world use case: Defuse v1 used HKDF without a salt. > > https://github.com/defuse/php-encryption/blob/b87737b2eec06b13f025cabea847338fa203d1b4/Crypto.php#L157-L170 > https://github.com/defuse/php-encryption/blob/b87737b2eec06b13f025cabea847338fa203d1b4/Crypto.php#L358 > > In version 2, we included a 32-byte random salt for each encryption, > which > was stored next to the AES-256-CTR nonce in the ciphertext. (Both the > nonce > and HKDF-salt, as well as the version information header, are covered > by > the HMAC of the ciphertext.) > > The end result: Instead of having to worry about birthday collisions > after > you've seen 2^64 AES outputs (because 128-bit randomly generated > nonce), > now you need 2^192 before you have a useful collision.
In this situation shouldn't you either use a longer random IKM or not use HKDF at all? If your IKM is so weak that it needs a salt then shouldn't you use an iterated hash instead of HKDF? Tom