Wie, warum und wann solltest du prüfen?

Hier bei ProPrivacy haben wir gerade Liebe Quelloffene Software. Dies liegt hauptsächlich daran, dass Open Source, obwohl es nicht perfekt ist, die einzige Möglichkeit bietet, sicher zu sein, dass ein Programm auf dem Level ist.

Ein Problem ist jedoch, woher wissen Sie, dass ein Open-Source-Programm, das Sie von einer Website herunterladen, das Programm ist, das von den Entwicklern heruntergeladen werden soll? Kryptografische Hashes sind eine Teillösung für dieses Problem.

Was ist ein kryptografischer Hash?

Ein kryptografischer Hash ist eine Prüfsumme oder ein digitaler Fingerabdruck, der durch Ausführen einer Einweg-Hash-Funktion (einer mathematischen Operation) an den Daten, die ein Computerprogramm (oder andere digitale Dateien) umfassen, abgeleitet wird..

Jede Änderung in nur einem Byte der Daten, aus denen das Computerprogramm besteht, ändert den Hash-Wert. Der Hash-Wert ist daher ein eindeutiger Fingerabdruck für ein Programm oder andere digitale Dateien.

Was ist ein Hash-Check??

Das Sicherstellen, dass ein Programm nicht manipuliert oder nur beschädigt wurde, ist eine ziemlich einfache Sache, seinen Hash-Wert zu berechnen und ihn dann mit der von seinen Entwicklern bereitgestellten Hash-Prüfsumme zu vergleichen.

Wenn es dasselbe ist, haben Sie ein angemessenes Maß an Vertrauen, dass das von Ihnen heruntergeladene Programm genau das gleiche ist wie das vom Entwickler veröffentlichte. Ist dies nicht der Fall, wurde das Programm auf irgendeine Weise geändert.

Die Gründe dafür sind nicht immer böswillig (siehe unten), aber eine fehlgeschlagene Hash-Prüfung sollte Alarmglocken läuten lassen.

Probleme mit Hash-Checks

Möglicherweise haben Sie einen Hinweis zur Vorsicht gefunden, als Sie die Hash-Checks gelobt haben...

Integrität, aber keine Authentifizierung

Hash-Prüfungen sind nützlich, um die Integrität von Dateien sicherzustellen, bieten jedoch keine Authentifizierung. Das heißt, sie stellen sicher, dass die Datei oder das Programm mit der Quelle übereinstimmt. Sie bieten jedoch keine Möglichkeit, zu überprüfen, ob die Quelle legitim ist.

Hash-Checks geben keine Gewähr für die Herkunft der Hash-Checksumme.

Beispielsweise gibt es gefälschte Websites, die bösartige Versionen beliebter Open-Source-Software wie KeePass verbreiten. Viele dieser Websites bieten sogar Hash-Prüfsummen für die Programme, die sie bereitstellen, und würden Sie diese mit dem gefälschten Programm vergleichen, stimmen sie überein. Hoppla.

Mathematische Schwächen

Ein weiteres Problem ist, dass mathematische Schwächen dazu führen können, dass Hashes nicht so sicher sind, wie sie sein sollten.

Der MD5-Algorithmus beispielsweise bleibt trotz seiner bekannten Anfälligkeit für Kollisionsangriffe eine sehr beliebte Hash-Funktion. Selbst SHA1 gilt in dieser Hinsicht nicht mehr als sicher.

Trotzdem bleiben MD5 und SHA1 die beliebtesten Algorithmen zur Generierung von Hash-Werten. SHA256 bleibt jedoch sicher.

Faulheit der Entwickler

Entwickler aktualisieren manchmal ihre Programme mit Fehlerkorrekturen und neuen Funktionen, vergessen jedoch, eine aktualisierte Hash-Prüfsumme zu veröffentlichen. Dies führt zu einer fehlgeschlagenen Hash-Prüfung, wenn Sie das Programm herunterladen und überprüfen.

Dies ist natürlich nicht annähernd so gravierend wie eine Hash-Prüfung, bei der böswillige Software einen Pass erhält. Dies kann jedoch das Vertrauen in das Ökosystem beeinträchtigen, sodass sich die Benutzer nicht die Mühe machen, die Integrität der heruntergeladenen Dateien zu überprüfen...

Kryptografische Hashes im Vergleich zu digitalen Signaturen

Die meisten Probleme mit kryptografischen Hashes werden durch die Verwendung digitaler Signaturen behoben, die sowohl Integrität als auch Authentifizierung gewährleisten.

Entwickler, die gerne proprietären Code verwenden, können Signaturen bei der Erstinstallation ihrer Software mithilfe von Mechanismen wie Microsoft, Apple oder Google PKI-Technologien (Public Key Infrastructure) automatisch und transparent überprüfen.

Open Source Entwickler haben diesen Luxus nicht. Sie müssen PGP verwenden, das von keinem proprietären Betriebssystem unterstützt wird, und warum es in Linux kein Äquivalent zu Microsoft, Apple oder Google PKIs gibt.

Daher müssen digitale PGP-Signaturen manuell überprüft werden. PGP ist jedoch ein komplettes Schwein und kein einfacher Vorgang, wie ein kurzer Blick auf unsere Anleitung zum Überprüfen von PGP-Signaturen in Windows zeigt.

Genauso wenig wie der eigentliche Signaturprozess für Entwickler, denen bekannt ist, dass sich in der Realität nur wenige Menschen die Mühe machen, digitale Signaturen manuell zu überprüfen.

Kryptografische Hashes sind bei weitem nicht so sicher wie digitale PGP-Signaturen, aber sie sind viel einfacher zu verwenden, sodass sich viele Entwickler einfach darauf verlassen, anstatt ihre Arbeit digital zu signieren.

Sie sollten unbedingt prüfen, ob eine digitale Signatur vorhanden ist.

Dies ist keine ideale Situation, und Sie sollten immer die digitale Signatur eines Open Source-Programms überprüfen, wenn eine verfügbar ist. Wenn dies nicht der Fall ist, ist es viel besser, den kryptografischen Hash zu überprüfen, als nichts zu tun.

Solange Sie der Quelle vertrauen (zum Beispiel sind Sie sicher, dass sie von der realen Website des Entwicklers stammt, die nicht gehackt wurde, um einen gefälschten kryptografischen Hash anzuzeigen), führt die Überprüfung des Hash-Werts zu einem gewissen Grad an Übereinstimmung mit der von Ihnen verwendeten Software heruntergeladen haben, ist die Software, deren Entwickler für Sie zum Herunterladen bestimmt ist.

Wenn für Open Source-Software weder eine digitale Signatur noch eine Prüfsumme verfügbar ist, dürfen Sie diese nicht installieren oder ausführen.

Wie überprüfe ich den Hash?

Der grundlegende Prozess ist wie folgt:

Optionale Unterposition

  1. Notieren Sie sich die vom Entwickler veröffentlichte Hash-Nummer
  2. Generieren Sie den Hash-Wert der Datei, die Sie haben
  3. Vergleichen Sie die beiden Hashwerte

Wenn sie identisch sind, haben Sie die Datei, die der Entwickler für Sie vorgesehen hat. Wenn nicht, ist es entweder beschädigt oder manipuliert worden.

Wenn ein SHA256 + -Hash verfügbar ist, prüfen Sie dies. Wenn nicht, verwenden Sie SHA1. Nur als letzten Ausweg sollten Sie gegen einen MD5-Hash prüfen.

Der einfache Weg (alle Systeme)

Der einfachste Weg, den Hash-Wert von Dateien zu generieren, ist die Verwendung einer Website wie Online Tools. Wählen Sie einfach die Art des zu generierenden Hash-Werts aus und ziehen Sie die gewünschte Datei per Drag & Drop in den dafür vorgesehenen Bereich. Der entsprechende Hash-Wert wird generiert.

Beispiel

Wir möchten die Integrität der KeePass-Installationsdatei überprüfen, die wir von der KeePass.org-Website heruntergeladen haben (von der wir wissen, dass sie die richtige Domain ist). Die Website veröffentlicht MD5-, SHA1- und SHA256-Hashes für alle Versionen des KeePass. Daher überprüfen wir den SHA256 auf die heruntergeladene Version.

  1. Wir notieren den korrekten Hash-Wert, der auf der KeePass-Website veröffentlicht ist.

  2. Dann besuchen wir die Online Tools-Website, wählen File Hash: SHA256 und ziehen unsere heruntergeladene KeePass-Installationsdatei in den dafür vorgesehenen Bereich.

  3. Wir vergleichen die Ausgabe mit der auf der KeePass-Website veröffentlichten Prüfsumme und sie sind identisch. Unter der Annahme, dass die KeePass-Website nicht gehackt wurde, um falsche Hash-Werte anzuzeigen, können wir sicher sein, dass wir eine Datei heruntergeladen haben, die nicht manipuliert wurde. Yay!

    Windows, MacOS und Linux verfügen außerdem über integrierte Hashwertfunktionen, auf die über die Befehlszeile zugegriffen werden kann...

Windows

Diese Methode funktioniert in Windows 10 sofort, während Windows 7-Benutzer Windows PowerShell zuerst mit Windows Management Framework 4.0 aktualisieren müssen.

Um einen SHA256-Hash zu erhalten, klicken Sie mit der rechten Maustaste auf Start -> Windows PowerShell und Typ:

Get-FileHash [Pfad / zu / Datei]

Beispielsweise:

Get-FileHash C: \ Users \ Douglas \ Downloads \ KeePass-2.43-Setup.exe

MD5- und SHA1-Hashes können mithilfe der folgenden Syntax berechnet werden:

Get-FileHash [Pfad zu [Pfad / zu / Datei] -Algorithmus MD5

und

Get-FileHash [Pfad zu [Pfad / zu / Datei] -Algorithmus SHA1

Beispielsweise:

Get-FileHash C: \ Users \ Douglas \ Downloads \ KeePass-2.43-Setup.exe -Algorithmus MD5

Mac OS

Öffnen Sie das Terminal und geben Sie Folgendes ein:

openssl [Hash-Typ] [/ Pfad / zu / Datei]

Der Hash-Typ sollte md5, SHA1 oder SHA256 sein.

Um beispielsweise den SHA256-Hash für das Windows KeePass-Installationsprogramm zu überprüfen (um die Dinge in diesem Lernprogramm einfach zu halten), geben Sie Folgendes ein:

openssl sha256 /Users/douglascrawford/Downloads/KeePass-2.43-Setup.exe

Linux

Öffnen Sie das Terminal und geben Sie Folgendes ein:

Md5sum [Pfad / zu / Datei] Sha1sum [Pfad / zu / Datei]

oder

Sha256sum [Pfad / zu / Datei]

Beispielsweise:

sha256sum /home/dougie/Downloads/KeePass-2.43-Setup.exe

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me