Dear Debian developpers,
popularity-contest relies on /usr/bin/gpg for encrypting files.
(it cannot use gpgv which does not provide encryption).
Why does it need to encrypt data?
Can't we just send telemetry over https like everyone else?
On 2025-03-27 20:57:52 +0100 (+0100), Petter Reinholdtsen wrote:
[Simon Josefsson]
Why does it need to encrypt data?
To protect the users privacy.
Can't we just send telemetry over https like everyone else?
Not all popcon submissions go over https, the fallback mechanism is
SMTP.
Also, OpenPGP encryption for the PopCon key means that you trust the
handful of Debian project members and systems entrusted with access to
that private key. Relying on HTTPS (SSL/TLS) means you're going to
trust every organization who controls a CA in the root certificates
list on your system as well as anyone/anything they might delegate
wildcard records to (unless popularity-contest pins specific server
certs, I haven't dug deep enough to know whether it does).
Not that I personally feel like my popcon data is so highly sensitive
that I'm worried about random governments or organized
crime^W^Wcorporate interests snooping it, but the distinction is
significant. PGP and TLS are not even remotely similar models
privacy-wise.
[Simon Josefsson]
Why does it need to encrypt data?
To protect the users privacy.
Can't we just send telemetry over https like everyone else?
Not all popcon submissions go over https, the fallback mechanism is
SMTP.
Dear Debian developpers,
popularity-contest relies on /usr/bin/gpg for encrypting files.
(it cannot use gpgv which does not provide encryption).
By design popularity-contest needs to have as few non-essential
dependencies as possible because this skews the result.
It used to be the case that apt depended on gpg, but not anymore.
Is it still the best option ?
Dear Debian developpers,
popularity-contest relies on /usr/bin/gpg for encrypting files.
(it cannot use gpgv which does not provide encryption).
By design popularity-contest needs to have as few non-essential
dependencies as possible because this skews the result.
It used to be the case that apt depended on gpg, but not anymore.
Is it still the best option ?
Bill Allombert <ballombe@debian.org> writes:
Dear Debian developpers,
popularity-contest relies on /usr/bin/gpg for encrypting files.
(it cannot use gpgv which does not provide encryption).
Why does it need to encrypt data?
Can't we just send telemetry over https like everyone else?
I don't think the security properties of a popcon recipient PGP key and
the WebPKI keys is all that different. Both are keys held by others who users have little information about. At least for WebPKI there are
policies and transparency mechanisms in place, but the Debian PGP keys
we have none of that. Which approach results in better outcome is
probably a subjective opinion.
On Thu, Mar 27, 2025 at 07:45:12PM +0100, Bill Allombert wrote:
Dear Debian developpers,
popularity-contest relies on /usr/bin/gpg for encrypting files.
(it cannot use gpgv which does not provide encryption).
By design popularity-contest needs to have as few non-essential dependencies as possible because this skews the result.
It used to be the case that apt depended on gpg, but not anymore.
Is it still the best option ?
I am among the people who have moved towards the Sequoia family of cryptographic tools; in particular, sqop (a Sequoia implementation of
the SOP command-line interface) seems to work:
[roam@straylight ~]$ echo canttouchthis | sqop encrypt /usr/share/popularity-contest/debian-popcon.gpg | pgpdump
New: Public-Key Encrypted Session Key Packet(tag 1)(524 bytes)
New version(3)
Key ID - 0x4E9024B327CBD937
Pub alg - RSA Encrypt or Sign(pub 1)
RSA m^e mod n(4095 bits) - ...
-> m = sym alg(1 byte) + checksum(2 bytes) + PKCS-1 block type 02
New: Symmetrically Encrypted and MDC Packet(tag 18)(63 bytes)
Ver 1
Encrypted data [sym alg is specified in pub-key encrypted session key]
(plain text + MDC SHA1(20 bytes))
[roam@straylight ~]$
Hope that helps!
I am among the people who have moved towards the Sequoia family of cryptographic tools; in particular, sqop (a Sequoia implementation of
the SOP command-line interface) seems to work:
[roam@straylight ~]$ echo canttouchthis | sqop encrypt /usr/share/popularity-contest/debian-popcon.gpg | pgpdump
New: Public-Key Encrypted Session Key Packet(tag 1)(524 bytes)
New version(3)
Key ID - 0x4E9024B327CBD937
Pub alg - RSA Encrypt or Sign(pub 1)
RSA m^e mod n(4095 bits) - ...
-> m = sym alg(1 byte) + checksum(2 bytes) + PKCS-1 block type 02
New: Symmetrically Encrypted and MDC Packet(tag 18)(63 bytes)
Ver 1
Encrypted data [sym alg is specified in pub-key encrypted session key]
(plain text + MDC SHA1(20 bytes))
[roam@straylight ~]$
Hope that helps!
Sent too fast. What I really intended to suggest was to support any SOP implementation (the command-line interface is the same, that's the point) and possibly prefer one as default. See e.g. dpkg-buildpackage for
an example (and a great big thanks, Guillem! the SOP support there made unattended automated signing much easier!).
On Thu, Mar 27, 2025 at 11:22:50PM +0200, Peter Pentchev wrote:
I am among the people who have moved towards the Sequoia family of cryptographic tools; in particular, sqop (a Sequoia implementation of
the SOP command-line interface) seems to work:
[roam@straylight ~]$ echo canttouchthis | sqop encrypt /usr/share/popularity-contest/debian-popcon.gpg | pgpdump
New: Public-Key Encrypted Session Key Packet(tag 1)(524 bytes)
New version(3)
Key ID - 0x4E9024B327CBD937
Pub alg - RSA Encrypt or Sign(pub 1)
RSA m^e mod n(4095 bits) - ...
-> m = sym alg(1 byte) + checksum(2 bytes) + PKCS-1 block type 02
New: Symmetrically Encrypted and MDC Packet(tag 18)(63 bytes)
Ver 1
Encrypted data [sym alg is specified in pub-key encrypted session key]
(plain text + MDC SHA1(20 bytes))
[roam@straylight ~]$
Hope that helps!
Sent too fast. What I really intended to suggest was to support any SOP implementation (the command-line interface is the same, that's the point) and
possibly prefer one as default. See e.g. dpkg-buildpackage for
an example (and a great big thanks, Guillem! the SOP support there made unattended automated signing much easier!).
Could you provide a patch for supporting that ?
(the file is /etc/cron.daily/popularity-contest)
On Thu, Mar 27, 2025 at 10:46:23PM +0100, Bill Allombert wrote:
On Thu, Mar 27, 2025 at 11:22:50PM +0200, Peter Pentchev wrote:
I am among the people who have moved towards the Sequoia family of cryptographic tools; in particular, sqop (a Sequoia implementation of the SOP command-line interface) seems to work:
[roam@straylight ~]$ echo canttouchthis | sqop encrypt /usr/share/popularity-contest/debian-popcon.gpg | pgpdump
New: Public-Key Encrypted Session Key Packet(tag 1)(524 bytes)
New version(3)
Key ID - 0x4E9024B327CBD937
Pub alg - RSA Encrypt or Sign(pub 1)
RSA m^e mod n(4095 bits) - ...
-> m = sym alg(1 byte) + checksum(2 bytes) + PKCS-1 block type 02
New: Symmetrically Encrypted and MDC Packet(tag 18)(63 bytes)
Ver 1
Encrypted data [sym alg is specified in pub-key encrypted session key]
(plain text + MDC SHA1(20 bytes))
[roam@straylight ~]$
Hope that helps!
Sent too fast. What I really intended to suggest was to support any SOP implementation (the command-line interface is the same, that's the point) and
possibly prefer one as default. See e.g. dpkg-buildpackage for
an example (and a great big thanks, Guillem! the SOP support there made unattended automated signing much easier!).
Could you provide a patch for supporting that ?
(the file is /etc/cron.daily/popularity-contest)
Here you go. Let me know if you'd like me to rename the variables to uppercase, change the indentation, or change anything else to make it
easier for you to review.
(the patch itself is much clearer if you apply it and then run
`diff -b` against the original)
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 493 |
Nodes: | 16 (2 / 14) |
Uptime: | 01:32:12 |
Calls: | 9,707 |
Calls today: | 2 |
Files: | 13,740 |
Messages: | 6,180,644 |