Re: internals Digest 3 Feb 2017 23:56:52 -0000 Issue 4435
| From: | Andrey Andreev | Date: | Sat, 04 Feb 2017 18:21:11 +0000 |
| Subject: | Re: internals Digest 3 Feb 2017 23:56:52 -0000 Issue 4435 | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-98194@lists.php.net to get a copy of this message | ||
Hi,
On Sat, Feb 4, 2017 at 7:49 PM, Yasuo Ohgaki <yohgaki@ohgaki.net> wrote:
>
> On Sun, Feb 5, 2017 at 1:20 AM, Tom Worster <fsb@thefsb.org> wrote:
>
>> On 3 Feb 2017, at 18:56, internals-digest-help@lists.php.net wrote:
>>
>> HKDF w/o salt is OK, but with salt, it's much stronger than w/o it.
>>>
>>
>> That's not correct.
>>
>> The salt defends against certain attacks on predictable input key
>> material, i.e. weak passwords. But HKDF should not normally be used for
>> passwords because it is unsuitable.
>>
>>
>
s/normally/ever/
> Excuse me.
> Have you ever read the RFC?
> https://tools.ietf.org/html/rfc5869
>
> 3.1 <https://tools.ietf.org/html/rfc5869#section-3.1>.
> To Salt or not to Salt
>
> HKDF is defined to operate with and without random salt. This is
> done to accommodate applications where a salt value is not available.
> * We stress, however, that the use of salt adds significantly to the
> strength of HKDF*, ensuring independence between different uses of the
> hash function, supporting "source-independent" extraction, and
> strengthening the analytical results that back the HKDF design.
>
> Random salt differs fundamentally from the initial keying material in
> two ways: it is non-secret and can be re-used. As such, salt values
> are available to many applications. For example, a pseudorandom
> number generator (PRNG) that continuously produces outputs by
> applying HKDF to renewable pools of entropy (e.g., sampled system
> events) can fix a salt value and use it for multiple applications of
>
>
> Krawczyk & Eronen Informational [Page 4]
>
> ------------------------------
>
> <https://tools.ietf.org/html/rfc5869#page-5>RFC 5869
> <https://tools.ietf.org/html/rfc5869>
> Extract-and-Expand HKDF May 2010
>
>
> HKDF without having to protect the secrecy of the salt. In a
> different application domain, a key agreement protocol deriving
> cryptographic keys from a Diffie-Hellman exchange can derive a salt
> value from public nonces exchanged and authenticated between
> communicating parties as part of the key agreement (this is the
> approach taken in [IKEv2 <9µH$Òñ
> ¶£’0:‰äihttps://tools.ietf.org/html/rfc5869#ref-IKEv2>]).
>
> Ideally, the salt value is a random (or pseudorandom) string of the
> length HashLen. *Yet, even a salt value of less quality (shorter in
> size or with limited entropy) may still make a significant
> contribution to the security of the output keying material*; designers
> of applications are therefore encouraged to provide salt values to
> HKDF if such values can be obtained by the application.
>
> *It is worth noting that, while not the typical case, some
> applications may even have a secret salt value available for use; in
> such a case, HKDF provides an even stronger security guarantee.* An
> example of such application is IKEv1 in its "public-key encryption
> mode", where the "salt" to the extractor is computed from nonces that
> are secret; similarly, the pre-shared mode of IKEv1 uses a secret
> salt derived from the pre-shared key.
>
>
>
> I'm a bit tired with people posting nonsense comment without reading
> references...
>
>
Have *you* read anything else in the RFC?
The reason why its authors have to recommend salt usage is because it is
*otherwise the only optional part of the algorithm*.
Cheers,
Andrey.