sbp opened a new pull request #30:
URL: https://github.com/apache/incubator-ponymail-foal/pull/30


   The **DKIM-ID** implementation in Foal is outdated, and corresponds to a 
very early design in Ponymail's [PR 
517](https://github.com/apache/incubator-ponymail/pull/517). This new PR not 
only brings the design up to date with PR 517, but makes the following extra 
improvements:
   
   * Uses **[Style 
O](https://github.com/apache/incubator-ponymail/pull/517#issuecomment-693319064)**,
 the [compromise 
solution](https://github.com/apache/incubator-ponymail/pull/517#issuecomment-691482048)
 for ensuring that messages imported into lists with different list IDs result 
in different DKIM-IDs generated
   * Increases the length of the DKIM-ID from 26 characters to 32 characters, 
giving 160 bits of security instead of 120 bits of security. This brings 
collision attacks out of the currently known capabilities of even nation states
   * Changes the hash algorithm from SHAKE-128 to truncated SHA-256 HMAC. It 
was necessary to use an algorithm that can provide more than 128 bits of 
non-collision security in order to get 160 bits of non-collision security, and 
it was necessary to use a keyed algorithm in order to mix in the list ID. 
Candidates implemented in Python were SHAKE-256, BLAKE-3, and truncated SHA-256 
HMAC. There is no way to key SHAKE-256, and BLAKE-3 is only implemented in Rust 
in PyPI and may not even be added to Python 3.10. Therefore truncated SHA-256 
is the only remaining option, if not a perfect one
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to