On 2020-04-20 19:57:23 +0200, Gero Treuner wrote:
> This is necessary to stay on the deterministic track: For this we
> require that different Mutt instances use information which differs by
> the pid and time/sequence number at some point, which is the data fed to
> the hash algorithm.

OK, that would be sufficient. But there is no need to be deterministic.
You should also add some noise (random data) to be fed to the hash
algorithm in order to limit the possibility of guessing the Message-Id.
Imagine a system that sends a public message every day at the same time.
Thus the time is known to the public and the sequence number is too (it
is always 1 in this case). On a machine with a 15-bit PID, an attacker
can retrieve it by an exhaustive search (32768 possibilities). Then
perhaps the PID of the next message can be guessed, or its range remains
small. In such a case, an attacker can send a few messages using the
possible PIDs before the real message is sent. And the real message
could be discarded by some systems as a consequence.

> If we don't want to be deterministic, then I don't see a major advantage
> of hash functions compared to random data.

In this case you need to make sure that such random data cannot be
guessed. This may be difficult without using entropy. Using entropy
each time Mutt is started would not be a good idea, in case a system
would run Mutt several times a second to send mail (e.g. personalized
mail to its users).

-- 
Vincent Lefèvre <vinc...@vinc17.net> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)

Reply via email to