On Thu, 13 Jan 2022 at 13:22, Jason A. Donenfeld <Jason@xxxxxxxxx> wrote: > > On 1/13/22, Ard Biesheuvel <ardb@xxxxxxxxxx> wrote: > > > > The question is not whether but when we can/will change this. > > > > SHA-1 is broken and should be removed at *some* point, so unless the > > feature itself is going to be obsolete, its implementation will need > > to switch to a PRF that fulfils the requirements in RFC7217 once SHA-1 > > ceases to do so. > > > > And I should also point out that the current implementation does not > > even use SHA-1 correctly, as it omits the finalization step. This may > > or may not matter in practice, but it deviates from crypto best > > practices, as well as from RFC7217 > > > > I already pointed out to Jason (in private) that the PRF does not need > > to be based on a cryptographic hash, so as far as I can tell, siphash > > would be a suitable candidate here as well, and I already switched the > > TCP fastopen code to that in the past. But SHA-1 definitely has to go. > > > > Correction: this should be a cryptographically secure. Of course. I said it does not need to be based on a cryptographic *hash*. > That's part of > the point of moving away from SHA-1 of course. But fortunately, > siphash *is* > considered to be cryptographically secure. Whether you want blake2s's > keyed mode or siphash doesn't really matter to me. I thought the > former's API mapped a bit neater here. Fair enough. This is not on a hot path anyway, so it doesn't really matter performance wise.