And in a sick twist they have this comment for it:
std::string BrowserDMTokenStorageLinux::InitClientId() {
// The client ID is derived from /etc/machine-id
// (https://www.freedesktop.org/software/systemd/man/machine-id.html). As per
// guidelines, this ID must not be transmitted outside of the machine, which
// is why we hash it first and then encode it in base64 before transmitting
// it.Quoting from https://www.freedesktop.org/software/systemd/man/machine-id....:
This ID uniquely identifies the host. It should be considered "confidential", and must not be exposed in untrusted environments, in particular on the network. If a stable unique identifier that is tied to the machine is needed for some application, the machine ID or any part of it must not be used directly. Instead the machine ID should be hashed with a cryptographic, keyed hash function, using a fixed, application-specific key. That way the ID will be properly unique, and derived in a constant way from the machine ID but there will be no way to retrieve the original machine ID from the application-specific one.
Reading https://cs.chromium.org/chromium/src/chrome/browser/policy/b..., I do not not see it being hashed with a key, just unkeyed sha1.
> If a stable unique identifier that is tied to the machine is needed for some application,
Ideally there should be no stable identifiers accessible to untrusted applications.
This made me chuckle. "As per the rules, we'll put on a boxing glove before we punch your lights out". You wont get privacy, but at least there is some security!
This also made me chuckle
--machine-id
Spoof id number in /etc/machine-id file - a new random id is generated inside the sandbox.
Example:
$ firejail --machine-id* http://jdebp.uk./Softwares/nosh/guide/commands/machine-id.xm...
* http://jdebp.uk./Softwares/nosh/guide/commands/machine-id.xm...