Hi all,

I currently have a MR open against archlinux-keyring [1], that adds a
systemd service and timer, which would automatically refresh valid and
existing keys on user systems. For people without access to the
repository's ticket and merge request features, it is possible to browse
the commits in question on the respective branch [2].

To quote from the accompanying ticket [3]:
```
For situations in which we do have new signatures which have been
released, we may want a service on user systems that update existing
keys via WKD to have an updated set of keys before updating
archlinux-keyring.

Rationale:
Keys are updated in WKD after a release of archlinux-keyring (currently
this is still done in the https://gitlab.archlinux.org/archlinux/wkd
repo).
User systems may upgrade any time after that and pacman will pull new
keys from WKD automatically, however it will not pull updates for
existing keys.
Packages that are signed with a key that still had marginal trust in
release A (and therefore already existed on the user system since
release A) and gained full trust in release B will not be updated before
the user does a system upgrade. This leads to the requirement of
installing archlinux-keyring before doing a system upgrade, as otherwise
the key will still have marginal trust on the user system and the
signatures of other updated packages using the key in question will fail
to validate.

To remedy this situation I think it would be helpful to have a service
update existing keys from WKD twice daily on a timer.

I am not 100% sure whether this has side-effects in regards to
revocations, but as we only ever update WKD after issuing a release and
not when updating the default branch, this should be fine(?).
```

In short: The service in question will update any valid keys in the
pacman keyring on user systems, that use Arch Linux's relevant domains
as UID to retrieve updated keys (e.g. extended expiration, additional
signatures). Invalid keys and those of other domains are ignored.

This feature is implemented to circumvent (some, but not all) cases of
"update archlinux-keyring before doing a system upgrade".
Cases not covered are (in no particular order):
* *long* outdated system is updated
  * new main signing key is required for a packager key to gain full
    trust for the packages about to be updated
  * local system's archlinux-keyring does not yet offer this feature
  * local system's pacman does not yet offer the feature of downloading
    package signatures for new keys from WKD
* packager key on local system does not yet have any main key signatures
  and would gain full trust with an update of archlinux-keyring

Currently the timer which triggers this service is supposed to be vendor
enabled (i.e. symlink in /usr/lib/systemd/system/timers.target.wants/)
and run daily with a deviation of up to 12h.
Members of the DevOps team have raised concerns about the interval as we
do not really have a clear picture about how many Arch Linux
installations there are world-wide to get numbers on expected median
load for this.

If you have ideas for improvement or general questions, please direct
them at the merge request.

Best,
David

[1] 
https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/merge_requests/138
[2] 
https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/tree/wkd_sync_service
[3] https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/issues/184

-- 
https://sleepmap.de

Attachment: signature.asc
Description: PGP signature

Reply via email to