[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#58472: [PATCH] Make `message-unique-id' less prone to collisions
From: |
Stefan Kangas |
Subject: |
bug#58472: [PATCH] Make `message-unique-id' less prone to collisions |
Date: |
Wed, 12 Oct 2022 09:07:53 -0700 |
This is a proposal to make `message-unique-id' less prone to collisions.
For the first 1-2 characters, it uses the return value `user-uid', which
on most single-user systems is a fixed value (for example, this gives us
"87" on almost any single-user Debian machine).[1] It's also
unnecessarily leaky of potentially privacy sensitive information.
The next 8 characters are the current time, with some gymnastics to
emulate support for a fractional part to seconds. This seems
unnecessary now that, AFAIU, `time-convert' can do that for us portably
(please correct me if I'm wrong, Paul).
I suggest that we instead base the left-hand side of the Message-ID on:
1. (time-convert nil (expt 10 9))
2. 2^N bits of pseudo random data (e.g. N=32)
We can then ignore the effective user id, while significantly decreasing
the risk of a Message-ID collision.[2]
Currently, we get values like:
(message-unique-id)
=> "87o7uhi3at.fsf" ; length 10
With the attached patch, we have instead:
(message-unique-id)
=> "cnk29wgg1a4nvrpqcy.fsf" ; length ~22
Note also that `message-number-base36' uses a Caesar cipher for some
reason:
(message-number-base36 5 -1)
=> "u" ; expect "5"
(message-number-base36 (expt 36 3) -1)
=> "yzzz" ; expect "1000"
The patch fixes this also.
I don't know if this change should be in NEWS or not.
Footnotes:
[1] Just for fun, you can search for 87 on
https://en.wikipedia.org/wiki/Message-ID
[2] See also: https://www.jwz.org/doc/mid.html
0001-Make-message-unique-id-less-prone-to-collisions.patch
Description: Text Data
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions,
Stefan Kangas <=
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Paul Eggert, 2022/10/12
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Stefan Kangas, 2022/10/12
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Matt Armstrong, 2022/10/13
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Stefan Kangas, 2022/10/13
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Matt Armstrong, 2022/10/13
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Paul Eggert, 2022/10/13
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Stefan Kangas, 2022/10/14
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Paul Eggert, 2022/10/13
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Stefan Kangas, 2022/10/14
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Stefan Kangas, 2022/10/16