Die kurze Antwort lautet, dass es eine Standardmethode gibt, die als Anwendungssignatur bezeichnet wird . Die längere Antwort ist etwas komplizierter.
In Bezug auf Ihre MD5-Hashing-Idee gibt es mindestens ein experimentelles Firefox-Plugin, das die Hashes der heruntergeladenen Dateien berechnet. Sie können sie dann manuell vergleichen. Alternativ bieten viele Websites das Herunterladen von Textdateien mit den vorberechneten Hashes für ihre Software an. Sie können dann eine Prüfung mit erzwingen md5sum -c < hash filename >
. Das Problem bei all diesen Methoden ist, dass ein Angreifer, der die heruntergeladene Datei ersetzen konnte, möglicherweise die auf der Website aufgelisteten Hashes ändern kann.
Das Signieren von Anwendungen ist die offizielle Lösung für dieses Problem. Es verwendet Kryptografie mit öffentlichem Schlüssel und Zertifizierungsstellen auf ähnliche Weise wie der SSL-Sicherheitsstandard für Websites. Es funktioniert, indem ein digitales Zertifikat von einer Zertifizierungsstelle abgerufen wird. Dieses Zertifikat kann von jedem überprüft werden und stellt sicher, dass der Inhaber derjenige ist, von dem er sagt, dass er er ist. Es kann auch verwendet werden, um eine Packung zu „signieren“, wodurch sichergestellt wird, dass die Packung vom Inhaber hergestellt und von niemand anderem als dem Inhaber in irgendeiner Weise verändert wurde.
Warum sehen wir keine bessere Anwendung dieser Methoden? Nun, sie sind bereits ziemlich gut adoptiert und größtenteils unsichtbar, wenn sie arbeiten. Wichtige Betriebssysteme und Browser verwenden die Signaturen, wenn sie standardmäßig verfügbar sind. Darüber hinaus signieren große Linux-Distributionen die von ihnen bereitgestellten Softwarepakete und Updates mithilfe dieser Methoden. Es ist jedoch sehr unwahrscheinlich, dass bei den kleineren Unternehmen eine größere Akzeptanz zu erwarten ist.
Das Problem ist hier eine Mischung aus Hackerarmut und Hacker-Stolz. Um eines dieser Zertifikate zu erhalten, müssen Sie eine große Geldsumme an eine der Zertifizierungsstellen zahlen. Wenn dies nicht der Fall ist, kann ein Programmierer immer noch seine eigenen Pakete ohne Segen einer Zertifizierungsstelle signieren. Auf diese Weise kann der Benutzer, der die Datei herunterlädt, sicher sein, dass nur der Inhaber des Zertifikats ein bestimmtes Paket berührt hat, das die Integritätsanforderungen Ihrer Frage erfüllt.
Leider verringert die Verwendung eines solchen selbstsignierten Zertifikats das Vertrauen der Öffentlichkeit in Ihre Software, anstatt es zu erhöhen. Wenn Sie sich selbst signieren, beschwert sich das Betriebssystem / der Browser laut, wenn Sie versuchen, das Paket zu öffnen. lauter als bei einer Datei ohne Vorzeichen. Da der Browser oder das Betriebssystem dem Softwarehersteller nicht vertraut, sollten Sie ihm auch nicht vertrauen.
Die Hacker-Beschwerde lautet daher, warum jemand einer gesichtslosen multinationalen Zertifizierungsstelle mehr vertrauen sollte als jemand anderem? Was haben sie jemals getan, um sich als vertrauenswürdiger als alle anderen zu erweisen?
Für viele Menschen läuft die Zertifikatsausstellung auf Erpressung hinaus: "Zahlen Sie uns $$$, um Sie zu zertifizieren, oder Ihre Downloads sind ein zweitklassiger Bürger". Aus diesem Grund wurde die Anwendungssignatur von niemandem außer den größten Akteuren übernommen.