GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come sapere che gli aggiornamenti di sistema sono affidabili?

Aggiornerò regolarmente il mio sistema ogni volta che mi notifica aggiornamenti software. Questa è una di quelle cose di cui mi fido per funzionare senza conoscere i dettagli, ma recentemente sono diventata curiosa:come faccio a saperlo

  • il processo di verifica degli aggiornamenti mostrerà solo gli aggiornamenti legittimi?
  • gli aggiornamenti che ricevo e installo non sono dannosi?

So di avere una serie di fonti software che mi specificherò tramite URL e che se mi fido di tali fonti è una mia decisione. Ma cosa succede una volta che ho specificato quegli URL?

Da ciò che è comune in questi giorni, sospetterei che l'autenticità di quelle fonti sia verificata con qualcosa sulla falsariga di HTTPS / SSL, i. e. Ho alcuni certificati verificati rispetto a qualche autorità, il che significa che ho bisogno di certificati radice affidabili installati da qualche parte (probabilmente vengono forniti con il sistema).

Inoltre, suppongo che i pacchetti siano firmati crittograficamente, come con GPG o simili.

Sono ipotesi corrette? Dove posso ispezionare chiavi/certificati utilizzati? Come posso verificare se sono quelli giusti? Come posso verificare che siano effettivamente utilizzati? Esistono opzioni di configurazione che rendono il processo più o meno prudente e quali sono le impostazioni predefinite? Ci sono attacchi noti o si sono verificate vulnerabilità di recente? Mi sembra di ricordare che Windows ha avuto un problema del genere non molto tempo fa.

Sono il 12.04, ma presumo che si possa rispondere in modo più generale.

Risposta accettata:

Questa è un'ottima domanda. La risposta è (ovviamente) abbastanza complessa, ma lasciami provare a scomporla per te. Diamo prima un'occhiata ai processi tecnici:

La catena della fiducia

Non utilizziamo SSL per proteggere APT, utilizziamo hash crittografici (SHA256, al giorno d'oggi) e firme OpenPGP. Ciò consente di fidarsi dei mirror non attendibili ed evita di doversi fidare di CA PKI.

Quando aggiungi un repository a sources.list di APT , devi anche aggiungere la sua chiave PGP al portachiavi fidato di APT, con la apt-key comando. Il portachiavi viene fornito con le chiavi per i repository di Ubuntu incluse. E quando usi apt-add-repository comando per aggiungere un PPA, aggiunge la chiave (ottenuta da Launchpad su SSL) per te.

La catena di fiducia è:

  1. Ogni sources.list punti di ingresso APT a un Release file nel repository, con un Release.gpg firma (oppure possono essere combinati come InRelease file). Questo file descrive il repository e deve essere firmato da una chiave nel portachiavi del tuo APT.
  2. Il Release contiene gli hash crittografici di tutti i Packages e Sources File. Questi elencano tutti i pacchetti e le versioni disponibili nel repository.
  3. I Packages e Sources i file contengono gli hash crittografici di ogni pacchetto.
  4. I pacchetti stessi non sono firmati. Non è necessario, c'è una catena di fiducia per loro, dal file di rilascio, firmato dal mirror. Tuttavia, i pacchetti sorgente, usati per costruire i pacchetti binari sono firmati PGP, dallo sviluppatore che li ha caricati.

Puoi leggere di più sul formato del repository sul wiki di Debian.

Questa catena significa che non dobbiamo fidarci di alcun mirror intermediario, possiamo fidarci che il pacchetto che installiamo è identico a quello presente al momento della firma del file Release.

Puoi ispezionare il portachiavi di APT eseguendo sudo apt-key finger .

Verifica delle chiavi di archivio di Ubuntu

Come fai a sapere cosa dovrebbe esserci? Se non ti fidi del tuo computer, non puoi fidarti di nessun programma su di esso per non mentirti (come apt-key ), e questo esercizio è inutile. Quindi supponiamo che sia solo per interesse accademico e verifichiamo il contenuto del portachiavi dal pacchetto sorgente definitivo, che è firmato PGP dallo sviluppatore che lo ha caricato.

Correlati:hai 2 × 2 spazi di lavoro in Gnome 3 in Ubuntu?

Scarica il ubuntu-keyring pacchetto sorgente e guarda cosa dovrebbe esserci:

$ apt-get source ubuntu-keyring
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Need to get 20.0 kB of source archives.
Get:1 http://localhost/ubuntu/ quantal/main ubuntu-keyring 2012.05.19 (dsc) [1542 B]
Get:2 http://localhost/ubuntu/ quantal/main ubuntu-keyring 2012.05.19 (tar) [18.5 kB]
Fetched 20.0 kB in 0s (0 B/s)               
dpkg-source: info: extracting ubuntu-keyring in ubuntu-keyring-2012.05.19
dpkg-source: info: unpacking ubuntu-keyring_2012.05.19.tar.gz
$ gpg --verify ubuntu-keyring_2012.05.19.dsc
gpg: Signature made Sat May 19 03:33:12 2012 SAST
gpg:                using RSA key 0x393587D97D86500B
gpg: Good signature from "Colin Watson <[email protected]>"
gpg:                 aka "Colin Watson <[email protected]>"
gpg:                 aka "Colin Watson <[email protected]>"
gpg:                 aka "Colin Watson <[email protected]>"
$ gpg --no-default-keyring --keyring ubuntu-keyring-2012.05.19/keyrings/ubuntu-archive-keyring.gpg --fingerprint
ubuntu-keyring-2012.05.19/keyrings/ubuntu-archive-keyring.gpg
-------------------------------------------------------------
pub   1024D/0x40976EAF437D05B5 2004-09-12
      Key fingerprint = 6302 39CC 130E 1A7F D81A  27B1 4097 6EAF 437D 05B5
uid                            Ubuntu Archive Automatic Signing Key <[email protected]>
sub   2048g/0x251BEFF479164387 2004-09-12

pub   1024D/0x46181433FBB75451 2004-12-30
      Key fingerprint = C598 6B4F 1257 FFA8 6632  CBA7 4618 1433 FBB7 5451
uid                            Ubuntu CD Image Automatic Signing Key <[email protected]>

pub   4096R/0x3B4FE6ACC0B21F32 2012-05-11
      Key fingerprint = 790B C727 7767 219C 42C8  6F93 3B4F E6AC C0B2 1F32
uid                            Ubuntu Archive Automatic Signing Key (2012) <[email protected]>

pub   4096R/0xD94AA3F0EFE21092 2012-05-11
      Key fingerprint = 8439 38DF 228D 22F7 B374  2BC0 D94A A3F0 EFE2 1092
uid                            Ubuntu CD Image Automatic Signing Key (2012) <[email protected]>

So che quella è in realtà la firma di Colin Watson, poiché l'ho incontrato diverse volte e ci siamo verificati l'identità dell'altro e ci siamo firmati le chiavi dell'altro. Se hai una chiave nel set forte del PGP, dovresti essere in grado di trovare un percorso di fiducia per lui. So anche che posso fidarmi di lui per caricare il corretto ubuntu-keyring pacchetto.

Per Debian, c'è un pacchetto (debian-keyring ) contenente le chiavi PGP di tutti gli sviluppatori Debian e puoi usarlo per verificare le firme del pacchetto sorgente. Ubuntu non ha un equivalente, ma molti sviluppatori Ubuntu sono anche sviluppatori Debian e tutte le chiavi PGP dei nostri sviluppatori sono disponibili sui loro profili in Launchpad.

Le altre domande

Come faccio a sapere che gli aggiornamenti non sono dannosi?

Si tratta di fiducia. Devi fidarti completamente di ogni repository che usi. Stai dando ai manutentori di ogni repository il permesso di eseguire le cose come root sulla tua macchina.

I pacchetti Ubuntu possono essere caricati solo da sviluppatori Ubuntu a cui sono stati concessi i diritti di caricamento dal Developer Membership Board (di cui attualmente servo). Per richiedere i diritti di caricamento devi essere sostenuto da diversi sviluppatori Ubuntu esistenti che hanno lavorato con te e fidati delle tue capacità di lavorare da solo. Senza diritti di caricamento, i caricamenti devono essere sponsorizzati da sviluppatori che ne detengono i diritti (che dovrebbero includere la revisione del caricamento).

Per gli aggiornamenti successivi al rilascio, Ubuntu ha politiche rigorose sui contenuti degli aggiornamenti. Dovrebbero contenere solo patch minime per correggere bug noti. Le patch vengono esaminate dai membri dei team SRU/Security prima di essere accettate.

Ovviamente, i PPA e i repository di terze parti non hanno tutte queste restrizioni. Devi fidarti dei proprietari di PPA per essere ragionevoli.

Tutti i pacchetti Ubuntu e PPA hanno il sorgente disponibile, quindi possono essere ispezionati da chiunque.

Esistono opzioni di configurazione che rendono il processo più o meno prudente e quali sono le impostazioni predefinite?

Puoi disattivare la verifica della firma in APT, ma ovviamente è attiva per impostazione predefinita. Quando provi a installare qualcosa da un repository non firmato/non attendibile, apt ti fa confermare che vuoi davvero farlo.

Ci sono attacchi noti o si sono verificate delle vulnerabilità di recente?

Ne ricordo uno, il bug Debian 499897. Debian risolve questo problema dando ai file di rilascio una data di scadenza, dopo la quale non ci si può fidare. Ubuntu non lo supporta ancora.

Correlati:come cercare il nome dell'area di lavoro corrente?
Ubuntu
  1. Come cambiare l'identità di un sistema Linux

  2. Come saltare il menu Grub su un sistema dual-boot??

  3. Come conoscere il numero di settori danneggiati sul disco rigido?

  4. Come utilizzare un task manager in Ubuntu per monitorare il sistema

  5. Come conoscere il percorso JVM in un sistema Linux?

Come controllare la RAM installata sul tuo sistema Ubuntu

Come conoscere la versione dell'applicazione prima dell'installazione in Ubuntu

Come gestire gli aggiornamenti automatici in Ubuntu

Come installare gli aggiornamenti di sicurezza in Ubuntu e Debian

Come recuperare la notifica Skype nella barra delle applicazioni?

Come riparare il sistema operativo Ubuntu rotto senza reinstallare il sistema