GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Woher wissen Sie, dass die Systemaktualisierungen vertrauenswürdig sind?

Ich aktualisiere mein System regelmäßig, wenn es mich über Software-Updates benachrichtigt. Dies ist eines dieser Dinge, denen ich einfach vertraue, dass sie funktionieren, ohne die Details zu kennen, aber ich bin in letzter Zeit neugierig geworden:Woher weiß ich das?

  • Der Prozess, der nach Updates sucht, zeigt nur legitime Updates an?
  • die Updates, die ich erhalte und installiere, sind nicht bösartig?

Ich weiß, dass ich eine Reihe von Softwarequellen habe, die ich selbst per URL angebe, und dass es meine Entscheidung ist, ob ich diesen Quellen vertraue. Aber was passiert, nachdem ich diese URLs angegeben habe?

Aus heutiger Sicht würde ich vermuten, dass die Echtheit dieser Quellen mit etwas in der Art von HTTPS / SSL verifiziert wird, d.h. e. Ich habe einige Zertifikate, die gegen eine Behörde verifiziert sind, was bedeutet, dass ich irgendwo zuverlässige Stammzertifikate installieren muss (wahrscheinlich werden sie mit dem System geliefert).

Außerdem schätze ich, dass die Pakete kryptografisch signiert sind, wie mit GPG oder ähnlichem.

Sind diese Annahmen richtig? Wo kann ich verwendete Schlüssel / Zertifikate einsehen? Wie kann ich überprüfen, ob es die richtigen sind? Wie kann ich überprüfen, ob sie tatsächlich verwendet werden? Gibt es Konfigurationsoptionen, die den Prozess mehr oder weniger umsichtig machen, und was sind ihre Standardeinstellungen? Gibt es bekannte Angriffe oder gab es kürzlich Schwachstellen? Ich meine mich zu erinnern, dass Windows vor nicht allzu langer Zeit ein solches Problem hatte.

Ich bin am 12.04, gehe aber davon aus, dass dies allgemeiner beantwortet werden kann.

Akzeptierte Antwort:

Das ist eine großartige Frage. Die Antwort ist (natürlich) ziemlich komplex, aber lassen Sie mich versuchen, sie für Sie aufzuschlüsseln. Schauen wir uns zunächst die technischen Prozesse an:

Die Kette des Vertrauens

Wir verwenden kein SSL, um APT zu sichern, wir verwenden kryptografische Hashes (SHA256, heutzutage) und OpenPGP-Signaturen. Dadurch können Sie nicht vertrauenswürdigen Mirrors vertrauen und vermeiden, dass Sie der CA PKI vertrauen müssen.

Wenn Sie ein Repository zur sources.list von APT hinzufügen , müssen Sie auch seinen PGP-Schlüssel mit dem apt-key zum vertrauenswürdigen Schlüsselbund von APT hinzufügen Befehl. Der Schlüsselring wird mit den Schlüsseln für die Repositories von Ubuntu geliefert. Und wenn Sie das apt-add-repository verwenden Befehl zum Hinzufügen eines PPA, fügt es den Schlüssel (von Launchpad über SSL erhalten) für Sie hinzu.

Die Vertrauenskette ist:

  1. Jede sources.list Einstiegspunkte APT zu einem Release Datei im Repository, mit einem Release.gpg Signatur (oder sie können als InRelease kombiniert werden Datei). Diese Datei beschreibt das Repository und muss mit einem Schlüssel im Schlüsselbund Ihres APT signiert werden.
  2. Die Release Datei enthält kryptografische Hashes aller Packages und Sources Dateien. Diese listen alle im Repository verfügbaren Pakete und Versionen auf.
  3. Die Packages und Sources Dateien enthalten die kryptografischen Hashes jedes Pakets.
  4. Die Pakete selbst sind nicht signiert. Es ist unnötig, es gibt eine Vertrauenskette zu ihnen, von der Release-Datei, signiert vom Mirror. Die Quellpakete, die zum Erstellen der Binärpakete verwendet werden, sind jedoch von dem Entwickler, der sie hochgeladen hat, PGP-signiert.

Sie können mehr über das Repository-Format im Debian-Wiki nachlesen.

Diese Kette bedeutet, dass wir keinen zwischengeschalteten Mirrors vertrauen müssen, wir können darauf vertrauen, dass das Paket, das wir installieren, mit dem identisch ist, das vorhanden war, als die Release-Datei signiert wurde.

Sie können den Schlüsselbund von APT überprüfen, indem Sie sudo apt-key finger ausführen .

Überprüfen der Archivschlüssel von Ubuntu

Woher weißt du, was da sein sollte? Wenn Sie Ihrem Computer nicht vertrauen, können Sie keinem Programm darauf vertrauen, dass es Sie nicht anlügt (wie apt-key). ), und diese Übung ist zwecklos. Nehmen wir also an, dass dies nur aus akademischem Interesse geschieht, und überprüfen Sie den Inhalt des Schlüsselbunds anhand des endgültigen Quellpakets, das von dem Entwickler, der es hochgeladen hat, PGP-signiert ist.

Verwandte:Haben Sie 2 × 2-Arbeitsbereiche in Gnome 3 in Ubuntu?

Laden Sie den ubuntu-keyring herunter Quellpaket, und sehen Sie, was dort sein sollte:

$ 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]>

Ich weiß, dass dies tatsächlich Colin Watsons Unterschrift ist, da ich ihn mehrere Male getroffen habe und wir die Identität des anderen überprüft und die Schlüssel des anderen signiert haben. Wenn Sie einen Schlüssel im PGP Strong Set haben, sollten Sie in der Lage sein, einen Vertrauenspfad zu ihm zu finden. Ich weiß auch, dass ich darauf vertrauen kann, dass er den richtigen ubuntu-keyring hochlädt Paket.

Für Debian gibt es ein Paket (debian-keyring ) mit den PGP-Schlüsseln aller Debian-Entwickler, und Sie können dies verwenden, um Quellpaketsignaturen zu überprüfen. Ubuntu hat kein Äquivalent, aber viele Ubuntu-Entwickler sind auch Debian-Entwickler, und alle PGP-Schlüssel unserer Entwickler sind in ihren Profilen im Launchpad verfügbar.

Die anderen Fragen

Woher weiß ich, dass Updates nicht schädlich sind?

Auf Vertrauen kommt es an. Sie müssen jedem Repository, das Sie verwenden, voll und ganz vertrauen. Sie geben den Betreuern jedes Repositorys die Erlaubnis, Dinge als root auf Ihrem Rechner auszuführen.

Ubuntu-Pakete können nur von Ubuntu-Entwicklern hochgeladen werden, denen Upload-Rechte vom Developer Membership Board (dem ich derzeit angehöre) gewährt wurden. Um Upload-Rechte zu beantragen, müssen Sie von mehreren bestehenden Ubuntu-Entwicklern unterstützt werden, die mit Ihnen zusammengearbeitet haben und auf Ihre Fähigkeiten vertrauen, um selbstständig zu arbeiten. Ohne Upload-Rechte müssen Uploads von Entwicklern gesponsert werden, die die Rechte haben (was eine Überprüfung des Uploads beinhalten sollte).

Für Post-Release-Updates hat Ubuntu strenge Richtlinien zum Inhalt von Updates. Sie sollten nur minimale Patches enthalten, um bekannte Fehler zu beheben. Die Patches werden von Mitgliedern des SRU-/Sicherheitsteams überprüft, bevor sie angenommen werden.

Offensichtlich haben PPAs und Repositories von Drittanbietern nicht all diese Einschränkungen. Sie müssen darauf vertrauen, dass die PPA-Eigentümer vernünftig sind.

Für alle Ubuntu- und PPA-Pakete ist der Quellcode verfügbar, sodass sie von jedem eingesehen werden können.

Gibt es Konfigurationsoptionen, die den Prozess mehr oder weniger umsichtig machen, und was sind ihre Standardeinstellungen?

Sie können die Signaturüberprüfung in APT deaktivieren, aber natürlich ist sie standardmäßig aktiviert. Wenn Sie versuchen, etwas aus einem unsignierten/nicht vertrauenswürdigen Repository zu installieren, lässt apt Sie bestätigen, dass Sie dies wirklich tun möchten.

Gibt es bekannte Angriffe oder gab es kürzlich Sicherheitslücken?

Ich erinnere mich an einen, Debian-Fehler 499897. Debian umgeht dies, indem es Release-Dateien ein Ablaufdatum gibt, nach dem sie nicht mehr vertrauenswürdig sind. Ubuntu unterstützt dies noch nicht.

Verwandte Themen:Wie kann ich den Namen des aktuellen Arbeitsbereichs nachschlagen?
Ubuntu
  1. Wie überspringe ich das Grub-Menü auf einem Dual-Boot-System?

  2. Wie erkennt man die Anzahl der fehlerhaften Sektoren auf der Festplatte?

  3. Wie ändere ich das Standard-Hintergrundbild des Systems?

  4. Wie portabel sind in Ubuntu kompilierte Binärdateien?

  5. Wie repariere ich die Installation?

So überprüfen Sie den installierten RAM auf Ihrem Ubuntu-System

So kennen Sie die Version der Anwendung vor der Installation in Ubuntu

Umgang mit automatischen Updates in Ubuntu

So installieren Sie Sicherheitsupdates in Ubuntu und Debian

Wie bekomme ich die Skype-Benachrichtigung wieder in die Taskleiste?

So reparieren Sie ein defektes Ubuntu-Betriebssystem, ohne das System neu zu installieren