Chiavi di firma e aggiornamenti

Tutti gli artefatti binari, i commit ostree e le immagini del sistema operativo appartenenti a Fedora e Fedora CoreOS (FCOS) sono firmati tramite GPG. L’attuale set di chiavi di firma fidate è disponibile su https://fedoraproject.org/security/.

Rotazione delle chiavi e barriere di aggiornamento

All’inizio di ogni nuovo ciclo di rilascio principale di Fedora, viene generata una nuova chiave di firma e la sua parte pubblica viene pubblicata sul sito web di Fedora. La nuova chiave sarà successivamente utilizzata per firmare nuovi artefatti, sostituendo quella attualmente in uso. Questo viene fatto per stabilire una catena di fiducia automatica da una versione più vecchia a una più recente, che potrebbe essere firmata da una chiave più nuova e diversa.

Per garantire che gli aggiornamenti automatici di Fedora CoreOS funzionino tra le diverse versioni principali di Fedora, il set di chiavi di firma integrate viene aggiornato almeno una volta per ciclo di rilascio di Fedora. Quando ciò accade, viene inserita una barriera di aggiornamento nel grafico degli aggiornamenti di FCOS.

Il motivo principale per una tale barriera di aggiornamento è assicurarsi che le istanze più vecchie (e possibilmente obsolete) ricevano e si fidino automaticamente delle chiavi di nuova generazione. Ciò viene realizzato forzando tali macchine a recuperare progressivamente gli aggiornamenti intermedi (firmati da una chiave già fidata) prima di passare all’ultima versione pubblicata.

Example

Taking the Fedora 32 release cycle as an example, in the beginning FCOS images only know about signing keys for 32 and 33 majors:

$ grep OSTREE /etc/os-release
OSTREE_VERSION='32.20200615.3.0'

$ ls -v /usr/etc/pki/rpm-gpg/*primary | tail -3
/usr/etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-31-primary
/usr/etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-32-primary
/usr/etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-33-primary

Later in that release cycle, the signing key is generated for future Fedora 34 releases and added to FCOS. A barrier is put in place in FCOS update graph, for example on release 32.20200907.3.0. Inspecting that image shows the following:

$ grep OSTREE /etc/os-release
OSTREE_VERSION='32.20200907.3.0'

$ ls -v /usr/etc/pki/rpm-gpg/*primary | tail -3
/usr/etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-32-primary
/usr/etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-33-primary
/usr/etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-34-primary

With this barrier in place, older instances must first upgrade to 32.20200907.3.0 in order to make sure they know (and trust) the signing key for Fedora 34, before being able to upgrade to new releases based on that.