Wie benutze ich https mit apt-get?

51

Hat apt-gethttps oder irgendeine Art von Verschlüsselung verwenden? Gibt es eine Möglichkeit, es zu konfigurieren, um es zu verwenden?

Strapakowsky
quelle
3
Beachten Sie, dass es aufgrund von Sicherheitslücken wie bugs.launchpad.net/ubuntu/+source/apt/+bug/1647467 ..., die InRelease-Signaturen umgehen, wahrscheinlich eine gute Idee ist, HTTPS trotzdem zu konfigurieren.
Royce Williams
whydoesaptnotusehttps.com ist eine Webseite, die genau und ausführlich diese Frage beantwortet.
m.raynal
1
Es gibt einen profanen Grund, warum dies nützlich wäre. Ich habe oft eine Internetverbindung mit einem defekten "transparenten" Proxy, der dazu neigt, bestimmte Deb-Downloads zu blockieren (sie lösen wahrscheinlich einen dummen Malware-Blocker aus). Über https weiß der Proxy jedoch nicht, was ich herunterlade, und stört daher nicht.
Nate Eldredge

Antworten:

53

apt-get(und andere Paketmanipulationsbefehle, die ein Front-End für dieselben APT-Bibliotheken sind) können HTTP, HTTPS und FTP (und bereitgestellte Dateisysteme) verwenden. Wenn Sie https://URLs in /etc/apt/sources.listund angeben /etc/apt/sources.list.d/*, verwendet APT HTTPS.

APT überprüft die Signatur von Paketen. Sie benötigen also kein Transportmittel, das die Datenauthentifizierung ermöglicht. Wenn ein Angreifer die heruntergeladenen Dateien ändert, wird dies bemerkt. Die Verwendung einer Signaturüberprüfung ist besser als die Verwendung einer HTTPS-Verbindung, da dadurch ein Angriff auf den Server erkannt wird, von dem Sie herunterladen, und nicht nur ein Angriff während der Übertragung.

Genauer gesagt ist der (vereinfachte) Datenfluss für ein Paket wie folgt:

  1. Das Paket wird auf einer Baumaschine hergestellt.
  2. Das Paket ist auf dem Buildcomputer signiert.
  3. Das signierte Paket wird auf einen Download-Mirror kopiert.
  4. Sie laden das Paket herunter.

HTTPS stellt sicher, dass Schritt 4 korrekt ausgeführt wird. Die Paketsignaturen stellen sicher, dass die Schritte 2 bis 4 korrekt ausgeführt werden.

Tatsächlich hat HTTPS für Schritt 4 einen kleinen Vorteil: Die Paketsignaturen stellen nur sicher, dass das Paket authentisch ist. Ein Angreifer in Schritt 4 könnte sich als legitimer Server ausgeben und veraltete Versionen des Pakets bereitstellen. Beispielsweise könnte der Angreifer verhindern, dass Sie Sicherheitsupdates herunterladen, um eine Sicherheitsanfälligkeit auf Ihrem Computer auszunutzen, die Sie ohne den Angriff gepatcht hätten. Dies ist kein sehr realistisches Szenario, da dafür ein aktiver Angreifer erforderlich ist (das müsste also jemand sein, der die Kontrolle über Ihre Internetverbindung hat), dies kann jedoch grundsätzlich passieren.

Der andere Vorteil von HTTPS wäre, wenn Sie versuchen, die Tatsache zu verbergen, dass Sie Ubuntu-Pakete von jemandem herunterladen, der auf Ihrer Netzwerkverbindung herumschnüffelt. Sogar dann konnte der Lauscher sehen, zu welchem ​​Host Sie eine Verbindung herstellen. Wenn Sie eine Verbindung zu einem Ubuntu-Spiegel herstellen und Hunderte von Megabyte herunterladen, ist es klar, dass Sie Ubuntu-Pakete herunterladen. Der Lauscher kann auch anhand der Größe der Dateien herausfinden, welche Pakete Sie herunterladen. HTTPS wäre also nur dann nützlich, wenn Sie von einem Server herunterladen, der auch andere Dateien ähnlicher Größe anbietet. Ich sehe keinen Grund, außer für Pakete von Drittanbietern, und dies nur unter sehr ungewöhnlichen Umständen.

Um es noch einmal zu wiederholen: Der übliche Vorteil von HTTPS, dass Sie wissen, dass Sie mit dem realen Server verbunden sind, ist nutzlos, wenn Sie Ubuntu-Pakete herunterladen. Die Signaturprüfung auf Paketen bietet eine stärkere Garantie als HTTPS bieten kann.

Gilles 'SO - hör auf böse zu sein'
quelle
11
Es ist nicht so, dass es weniger sicher ist, sondern dass es für das, was Sie schützen möchten, weniger relevant ist. Mit APT ist das Verschlüsseln der Inhalte Ihrer Transaktion nicht so wichtig, da das, was Sie herunterladen, sehr unumstritten ist: Es sind genau die Ubuntu-Pakete, die viele Leute herunterladen. Wichtig ist jedoch, dass Sie sicherstellen, dass die Dateien beim Empfang nicht manipuliert wurden.
Thomasrutter
3
Vor einigen Wochen habe ich versucht, die Quellen auf https zu ändern, und es hat einfach nicht funktioniert. apt-get updateBeim Versuch, auf die Links zuzugreifen , wurde ein Fehler gemeldet. Mit ppas: das gleiche. Hat es jemand ausprobiert?
Strapakowsky
8
Das Repository (Update-Server) muss https / SSL unterstützen, damit dies funktioniert. Die Hauptleitung archive.ubuntu.com tut es nicht . Sie können in Ihrem Browser überprüfen , ob ein Server unterstützt durch https prefixing: // auf die URL und zu sehen , wenn Sie eine Liste von Verzeichnissen etc.
ish
7
"Ein Angreifer in Schritt 4 könnte sich als legitimer Server ausgeben und veraltete Versionen des Pakets bereitstellen." Tatsächlich schützen wir uns davor, indem wir Paketinformationen ein Ablaufdatum geben. APT warnt nach diesem Datum, dass Ihr Spiegel veraltet ist.
Tumbleweed
4
Hier ist eine Liste aller 15 Spiegel , die HTTPS zusammen mit einem Skript zu unterstützen, die die Liste erzeugt: pastebin.com/QY2TQ1dq
Shnatsel
13

Bei APT ist es in der Regel wichtiger, dass Ihre Verbindung nicht verschlüsselt ist, sondern dass die empfangenen Dateien nicht manipuliert wurden.

APT verfügt über eine integrierte Signaturüberprüfung, um dies sicherzustellen.

Die Verschlüsselung würde verhindern, dass Lauscher sehen können, was Sie herunterladen, aber was Sie tatsächlich herunterladen (und anfordern), ist ziemlich unumstritten: Es wird dasselbe sein, wie Tausende anderer Ubuntu-Benutzer herunterladen und die Dateien enthalten nichts, was nicht vorhanden ist. Auf vielen Servern frei verfügbar. Wenn Sie jedoch den Datenschutz für die Pakete benötigen, die Sie herunterladen, können Sie HTTPS verwenden (geben Sie dies in Ihrer sources.list an).

Die in APT integrierte Signaturüberprüfung stellt sicher, dass die empfangenen Dateien nicht manipuliert wurden. Es spielt keine Rolle, woher die Dateien kommen, und es ist sogar möglich, Proxys oder Reverse-Proxys zwischen Ihnen und dem Server zu haben, um die Serverlast zu verringern oder die Geschwindigkeit zu erhöhen. Die Signaturüberprüfung stellt weiterhin sicher, dass Sie die unveränderte Datei erhalten, die der Signatur entspricht, die nur mit der Originaldatei und einer Kopie des privaten Schlüssels von Ubuntu kryptografisch erstellt werden konnte.

Wenn Sie zu HTTPS wechseln, können Sie Proxyserver nicht mehr nutzen, um den Zugriff zu beschleunigen oder die Last zu reduzieren. Und es würde keine Sicherheit mehr gegen Manipulationen geben, die die Signaturprüfung von APT noch nicht bietet. Dies würde jedoch bedeuten, dass Lauscher (wie Ihr ISP) nicht sehen können, welche Pakete Sie herunterladen (was wahrscheinlich nicht vertraulich ist und wie Gilles darauf hinwies, anhand der Dateigröße erraten werden kann).

thomasrutter
quelle
3
HTTPS bietet nicht viel Privatsphäre, da die Größe der Dateien sichtbar ist. HTTPS hat in der Tat einen kleinen Vorteil: Es stellt sicher, dass ein Angreifer, der die Kontrolle über Ihre Netzwerkverbindung hat, veraltete Daten nicht unbemerkt einschleusen kann. Es ist ein bisschen weit hergeholt.
Gilles 'SO- hör auf böse zu sein'
6
Gute Argumente. Mit "veralteten Daten" meine ich vermutlich einen Mann in der Mitte, der eine Version des Ubuntu-Spiegels einrichtet, die aus etwas früheren Versionen besteht, aber immer noch unverändert von dem ist, was Ubuntu zu der Zeit signiert hatte.
Thomasrutter
5
Ja das ist es. Zögern Sie nicht, darauf hinzuweisen, wenn ich ein bisschen Jargon bin - ich muss bedenken, dass dies Ask Ubuntu und nicht Informationssicherheit ist .
Gilles 'SO- hör auf böse zu sein'
Es scheint ein großes Loch in apt zu geben - wenn Sie apt updateund ein Mann in der Mitte Ihre falschen Indizes füttern, nimmt apt glücklich das, was der Mann in der Mitte Ihnen gibt, und schreibt es in / var / lib / apt / lists. Dies gilt nicht nur für einen bösen Mann in der Mitte, sondern auch, wenn Sie im Hotel-WLAN sind und auf eine Anmeldeseite umgeleitet werden. Wenn Sie apt updatevor dem Anmelden ausgeführt werden , werden Ihre / var / lib / apt / -Listen verworfen mit der hotel homepage HTML. BOGUS! Grundlegende TLS-Zertifizierungsprüfungen würden dies jedoch sofort ausschließen.
Marius
@Marius das sollte nicht möglich sein, da die Liste und die Pakete verifiziert sind. Wenn Sie dies mit einer Standard-Apt-Installation reproduziert haben, sollten Sie dies dem Betreuer melden.
Thomasrutter
1

In neueren APT-Versionen ist TLS-Unterstützung integriert, sodass Sie einfach die Spiegel-URLs Ihres Paket-Repositorys durch httpsvorab festgelegte URLs ersetzen müssen. Für Debian könnte es so aussehen:

deb https://deb.debian.org/debian/ stretch main
deb https://deb.debian.org/debian-security stretch/updates main
deb https://deb.debian.org/debian/ stretch-updates main

Dies ist nützlich, obwohl APT ein eigenes Signaturprotokoll enthält, um sicherzustellen, dass Pakete nicht manipuliert werden, da es in APT Fehler geben kann (wie bisher: CVE-2016-1252 , CVE-2019-3462 ). Die HTTP / TLS-Protokolle und ihre Verschlüsselungen werden einer eingehenden Prüfung unterzogen, sodass eine schwerwiegende Zero-Day-Sicherheitsanfälligkeit viel weniger wahrscheinlich ist, wenn Sie diese Sicherheitsstufe hinzufügen.

Leif Arne Storset
quelle
Hoppla, mir ist erst jetzt klar, dass diese Seite Ask Ubuntu ist. :) Ich konnte keine ähnliche CDN-Lösung für Ubuntu finden.
Leif Arne Storset
0

Ich denke, diese Frage könnte eine Antwort mit Anweisungen für den Laien gebrauchen, also ...

APT verwendet immer noch nicht standardmäßig HTTPS in täglichen Builds von Ubuntu 19.10 (Eoan) (das sich noch in der Entwicklung befindet). Sie können dies überprüfen, indem Sie die Datei /etc/apt/sources.list untersuchen und feststellen, dass alle Quell-URLs das URL-Schema "http:" verwenden.

Um es für die Verwendung von HTTPS zu konfigurieren, können Sie die folgenden Anweisungen befolgen:

Erstens , einen vertrauenswürdige offiziellen Ubuntu - Archiv Spiegel finden , die HTTPS unterstützt:

  1. Navigieren Sie zur offiziellen Webseite von Archive Mirrors for Ubuntu .
  2. Identifizieren Sie in der Tabelle auf dieser Webseite Spiegel, die (A) auf Websites gehostet werden, die Sie für vertrauenswürdig halten, (B) über einen "http:" - Spiegel verfügen und optional (C) Ihrer geografischen Nähe, Servergeschwindigkeit und Aktualisierung entsprechen Frischepräferenzen.
  3. Klicken Sie in der Tabelle auf dieser Webseite auf einen "http" -Link eines in Schritt (2) angegebenen Spiegels, um die "http:" - Version des Spiegels aufzurufen.
  4. Ändern Sie in der Adressleiste des Browsers "http:" in der URL der Webseite manuell in "https:".
  5. Navigieren Sie erneut zum Spiegel (über die URL "https:"), um zu sehen, ob die Auflösung erfolgt.

Zum Beispiel halte ich die Wikimedia Foundation für vertrauenswürdig, so dass ich die URL http://mirrors.wikimedia.org/ubuntu/ mirror besuchte und sie anschließend in https://mirrors.wikimedia.org/ubuntu/ änderte , was sich erfolgreich auflöst.

Wenn Sie Firefox (67.0.4) verwenden und die Erweiterung HTTPS Everywhere (2019.6.27) mit aktivierter Funktion "Alle berechtigten Sites verschlüsseln" (über die Symbolleistenschaltfläche) installiert haben, können die Schritte (4) und (5) weggelassen werden Da die Erweiterung die URL automatisch so ändert, dass sie HTTPS verwendet, kann sofort festgestellt werden, ob die "https:" - Version der URL aufgelöst wird.

Zweitens , aktualisieren Sie Ihre APT-Quellenliste:

  1. Führen Sie den Befehl aus sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup, um die Liste der Update-Quellen zu sichern.
  2. Ersetzen Sie die Spiegelbasis-URL, die hier als https://mirrors.wikimedia.org angezeigt wird, im Befehl sudo sed --in-place --regexp-extended 's http://(us\.archive\.ubuntu\.com|security\.ubuntu\.com) https://mirrors.wikimedia.org g' /etc/apt/sources.listdurch die Spiegelbasis- URL Ihres bevorzugten Spiegels, und führen Sie dann den Befehl aus.

Drittens sollten Sie den Inhalt des Verzeichnisses /etc/apt/sources.list.d/ auf "http:" - Quellen untersuchen, die nach der Installation von Software von außerhalb des Ubuntu-Archivs möglicherweise in "https:" geändert werden.

Beispielsweise fügt das Visual Studio Code-Paket von Microsoft diesem Verzeichnis eine vscode.list-Datei hinzu, die eine "http:" - URL angibt. Durch einfaches Ändern des URL-Schemas von "http:" in "https:" können Aktualisierungen über HTTPS vorgenommen werden.

Ziehen Sie in Betracht, solche Quelldateien zu sichern, bevor Sie sie ändern.

Führen Sie zuletzt ein Update durch, um sicherzustellen, dass die Updates ordnungsgemäß funktionieren:

  1. Führen Sie den sudo apt-get updateBefehl aus.
  2. Wenn dies nicht wie erwartet funktioniert, stellen Sie die durch Ausführen des sudo cp /etc/apt/sources.list.backup /etc/apt/sources.listBefehls erstellten Sicherungsquelllistendateien wieder her .

Es ist auch erwähnenswert, dass es ein apt-transport-https- Paket gibt, um APT HTTPS-Unterstützung hinzuzufügen. Dieses Paket ist laut der Webseite https://launchpad.net/ubuntu/eoan/+package/apt-transport-https jedoch anscheinend nicht erforderlich und wird seit APT 1.5 nicht mehr benötigt, wie nach Ausführung des Befehls angegeben apt-cache show apt-transport-https.

Patrick Dark
quelle