it-swarm-eu.dev

Warum werden Anwendungsdownloads nicht routinemäßig über HTTPS durchgeführt?

Wir alle wissen, dass wir SSL verwenden sollten, wenn wir Passwörter oder andere vertrauliche Informationen sammeln. SSL bietet zwei Hauptvorteile:

  • Verschlüsselung : Die Daten können von einem Zwischenhändler während der Übertragung nicht gelesen werden.
  • Schutz vor MITM-Angriffen : Ein Mann in der Mitte kann nicht vorgeben, ein Server zu sein, da er kein CA-signiertes Zertifikat für den Server erstellen kann.

Wenn ich eine Anwendung herunterlade, werde ich sie wahrscheinlich irgendwann ausführen, vielleicht sogar als Root. Einige Programme werden signiert, viele jedoch nicht. Sollten Downloads nicht über SSL erfolgen, damit ich weiß , dass es während des Transports nicht manipuliert wurde?

Wenn jemand mein Passwort stiehlt, ist das schlecht. Aber wenn jemand einen Keylogger auf meinem Computer installiert, ist das viel, viel schlimmer.

58
Tom Marthenal

Weil HTTPS nicht sehr gut zum Sichern von Downloads großer öffentlicher Dateien geeignet ist. Für diesen Anwendungsfall ist es langsam und nicht so nützlich. Es gibt Gründe, HTTPS nicht weit über Inkompetenz oder Unwissenheit hinaus zu verwenden.

HTTPS löst das Problem nicht vollständig . Dies Wenn Sie Ihre Anwendung direkt von der Website des Anbieters erhalten, stellt HTTPS die Authentizität der Anwendung sicher. Wenn Sie Ihre Anwendung jedoch von einem Drittanbieter erhalten (z. B. Spiegel freier Software), schützt HTTPS nur die Verbindung mit dem Drittanbieter. Ein Paketsignaturschema funktioniert besser: Es kann die gesamte Kette vor dem Anbieter schützen. Die Anwendungsverteilung erfordert einen End-to-End-Schutz, und HTTPS bietet dies nicht .

HTTPS verwendet mehr Bandbreite . Der Overhead pro Download ist minimal, wenn Sie das Caching nicht berücksichtigen. Dies ist die sphärische Kuh von „HTTPS kostet nicht mehr“: Wenn Sie SSL verwenden, können Sie Daten nur an den SSL-Endpunkten zwischenspeichern. Anwendungsdownloads können extrem zwischengespeichert werden: Es handelt sich um große Dateien, die von vielen Menschen heruntergeladen werden.

HTTPS ist übertrieben . Die Vertraulichkeit eines Anwendungsdownloads ist selten ein Problem. Wir benötigen lediglich Authentizität. Leider bietet HTTPS keine Authentizität ohne Vertraulichkeit. Authentizität ist mit Caching kompatibel, Vertraulichkeit jedoch nicht.

HTTPS erfordert mehr Ressourcen auf dem Server. Google Mail hat einen Overhead von 1% und einen Overhead von 2% der Bandbreite erreicht, aber dies ist für einen ganz anderen Anwendungsfall. Die Google Mail-Frontend-Server bieten mehr als nur sinnlose Dateien. Ein Dateiserver benötigt in erster Linie keine leistungsstarke CPU (sie ist sehr stark an E/A gebunden), sodass der Overhead wahrscheinlich erheblich größer ist. Gleiches gilt für den Speicheraufwand: Ein Dateiserver benötigt in erster Linie sehr wenig Speicher pro Sitzung, fast der gesamte Speicher ist ein Festplatten-Cache. Um die Ressourcennutzung zu verringern, ist ein erheblicher Arbeitsaufwand erforderlich.

HTTPS würde vielen Menschen nicht helfen . Der Sicherheitsbewusste überprüft den vom Anbieter bereitgestellten Hash ( das sollte über HTTPS sein). Nicht-Sicherheitsbewusste klicken munter durch die Meldung "Diese Verbindung ist unsicher" (es gibt so viele schlecht konfigurierte Server, dass viele Benutzer darauf trainiert sind, HTTPS-Fehler zu ignorieren). Ganz zu schweigen von zwielichtigen Zertifizierungsstellen, die Zertifikate erteilen, die sie nicht sollten.


Wenn Sie sicherstellen möchten, dass Sie die Originalanwendung erhalten, überprüfen Sie die Signatur oder den Hash anhand eines Referenzwerts, den Sie mit einer Signatur erhalten (z. B. über HTTPS).

Gute Anbieter machen dies automatisch. Beispielsweise stellt Ubuntu GPG-Signaturen seiner Installationsmedien bereit. Es bietet auch das Hashes über HTTPS (leider nicht von irgendwo in der Nähe der Download-Seite verlinkt, soweit ich sehen kann). Danach überprüft das Softwareinstallationstool automatisch, ob Pakete mit einer gültigen Signatur geliefert werden. Siehe Wie verwende ich https mit apt-get?

Hinweis: Wenn Sie die Anwendung direkt vom Anbieter erhalten (im Gegensatz zu einem Paket-Repository oder einem Anwendungsmarkt), bietet HTTPS Schutz. Wenn Sie also ein Anbieter sind, der Ihre Anwendung direkt zum Download auf Ihrer Website bereitstellt, schützen Sie sie mit HTTPS!

Dies ist der gleiche Grund, warum noch nicht alle Anmeldeaufforderungen https verwenden: Die Leute sind zu faul, halten ein Zertifikat für zu teuer oder haben ein Hosting, das mehr für die Verwendung von https berechnet.

Die eigentliche Frage ist, warum Downloads häufiger über eine einfache Verbindung als Anmeldeformulare bereitgestellt werden. Und Ich denke, das liegt hauptsächlich an Unwissenheit. Prüfsummen werden häufig bereitgestellt, sind jedoch nicht sicher, wenn sie über http gesendet werden. Eine gute Implementierung von Prüfsummen, die ich gesehen habe, ist, wo sie auf Twitter gepostet wurden (das https verwendet und vernünftigerweise als kompromisslos angesehen werden kann). Ich kenne jedoch niemanden, der jemals die Prüfsumme überprüft, vielleicht nur, wenn die Software nicht ausgeführt wird. Normalerweise wird angenommen, dass TCP eine angemessene Fehlerprüfung durchführt.

Natürlich ist https auf dem Server schwerer als http. Für stark frequentierte Websites kann dies ein Grund sein. Andererseits können stark frequentierte Websites auch "hohes Geld" generieren, um dies zu finanzieren.

19
Luc

Wenn Benutzer eine Anwendung über das Web herunterladen, sollte der Anwendungsdownload über HTTPS erfolgen, da dies die sauberste Benutzererfahrung für Benutzer ist, die Sicherheit bietet sie können verstehen. Es ist wohl realistisch zu erwarten, dass viele Benutzer vor dem Herunterladen in der Adressleiste nach einem grünen Leuchten suchen, aber es ist nicht sinnvoll, (zum Beispiel) zu erwarten, dass sie Hashes berechnen und sicher überprüfen.

Diese Anwendungsdownloads werden jedoch aus verschiedenen möglichen Gründen häufig nicht über HTTPS angeboten:

  • Gute Gründe: HTTPS verhindert das Caching im Netzwerk. Dies kann den Netzwerkverkehr erhöhen, den Server belasten und das clientseitige Netzwerk belasten.

  • Schlechte Gründe: Die Leute glauben fälschlicherweise, dass "HTTPS langsam ist" (was ein Mythos ist), weil das Einrichten eines Servers mit SSL zusätzliche Arbeit erfordert, weil sie sich auf Spiegel und die Spiegelstandorte verlassen Verwenden Sie kein HTTPS oder weil die Leute nicht daran gedacht haben oder nicht glauben, dass sie gefährdet sind. Bei weit verbreiteter Software sind diese Überzeugungen wahrscheinlich kurzsichtig. Anscheinend verwenden auch einige Websites Load-Balancer oder Beschleuniger, die hirntot sind und HTTPS nicht richtig verstehen, und sie wollen oder können es sich nicht leisten, eine ordnungsgemäße Bereitstellung zu entwickeln, die HTTPS richtig spricht.

Einige Anwendungsverteilungsseiten verwenden HTTPS. Aber viele nicht.

Firefox ist ein bekanntes Beispiel für eine Anwendung, die beim Herunterladen der Anwendung standardmäßig nicht HTTPS verwendet (siehe Wie sicher sind Kopien?) von Firefox, die sich auf verschiedenen Mozilla Mirror-Sites befinden? ).

Windows Update erfolgt über einen sicheren Kanal (ähnlich wie HTTPS). Linux-Paketmanager verwenden Kryptografie, um die heruntergeladene Software zu schützen, jedoch nicht HTTPS selbst.

9
D.W.

Meistens gibt es MD5- und SHA1-Summen für die Anwendung. Nachdem Sie es heruntergeladen haben, müssen Sie dies auf der Website überprüfen. Wenn der von Ihnen berechnete derselbe ist, gibt es kein Problem.

4
Lucas Kauffman