Zum Inhalt

47-Tage-Zertifikate sind in Planung. Bist du bereit?

Jetzt handeln →

Was ist SHA? Wofür wird SHA verwendet?

Was ist SHA? Wofür wird SHA verwendet?

Einführung in SHA

SHA steht für Secure Hashing Algorithm. SHA ist eine modifizierte Version von MD5 und wird zum Hashen von Daten und ZertifikateEin Hashing-Algorithmus verkürzt die Eingabedaten mithilfe von bitweisen Operationen, modularen Additionen und Komprimierungsfunktionen in eine kleinere, unverständliche Form. Sie fragen sich vielleicht, ob Hashing geknackt oder entschlüsselt werden kann?

Hashing ist ähnlich wie Verschlüsselung, das einzige Unterschied zwischen Hashing und Verschlüsselung Der Nachteil des Hashings ist, dass es sich um ein Einweg-Hashing handelt. Sobald die Daten gehasht sind, kann der resultierende Hash-Digest nicht mehr geknackt werden, es sei denn, es wird ein Brute-Force-Angriff durchgeführt. Die Funktionsweise des SHA-Algorithmus wird in der Abbildung unten veranschaulicht. SHA funktioniert so, dass selbst wenn sich ein einziges Zeichen der Nachricht ändert, ein anderer Hash generiert wird. Beispielsweise sind beim Hashing zweier ähnlicher, aber unterschiedlicher Nachrichten wie „Heaven“ und „Heaven“ unterschiedliche Nachrichten vorhanden, der Unterschied besteht jedoch nur in einem Groß- und einem Kleinbuchstaben.

SHA-Algorithmus

 Die erste Nachricht wird mit SHA-2 gehasht, was den Hash-Digest „06b73bd57b3b938786daed820cb9fa4561bf0e8e“ ergibt. Wird die zweite, ähnliche Nachricht mit SHA-2 gehasht, sieht der Hash-Digest wie folgt aus: „66da9f3b8d9d83f34770a14c38276a69433a535b“. Dies wird als Lawineneffekt bezeichnet. Dieser Effekt ist in der Kryptografie wichtig, da er bedeutet, dass selbst die kleinste Änderung der Eingangsnachricht die Ausgabe komplett verändert. Dadurch können Angreifer den ursprünglichen Inhalt des Hash-Digests nicht verstehen und dem Empfänger der Nachricht nicht mitteilen, ob die Nachricht während der Übertragung geändert wurde oder nicht.

SHAs helfen auch dabei, zu erkennen, ob eine Originalnachricht in irgendeiner Weise verändert wurde. Durch den Verweis auf den ursprünglichen Hash-Digest kann ein Benutzer feststellen, ob auch nur ein einziger Buchstabe geändert wurde, da die Hash-Digests völlig unterschiedlich sind. Ein wichtiger Aspekt von SHAs ist ihre Deterministik. Das bedeutet, dass jeder Computer oder Benutzer den Hash-Digest reproduzieren kann, solange die verwendete Hash-Funktion bekannt ist. Der Determinismus von SHAs ist einer der Gründe, warum jeder SSL-Zertifikat im Internet muss mit einer SHA-2-Funktion gehasht worden sein.

Verschiedene SHA-Formen

Beim Erlernen von SHA-Formen werden verschiedene SHA-Typen erwähnt. Beispiele für verwendete SHA-Namen sind SHA-1, SHA-2, SHA-256, SHA-512, SHA-224 und SHA-384. Tatsächlich gibt es jedoch nur zwei Typen: SHA-1 und SHA-2. Die anderen größeren Nummern, wie SHA-256, sind lediglich Versionen von SHA-2, die die Bitlänge von SHA-2 angeben. SHA-1, 1993 eingeführt, war der ursprüngliche sichere Hashing-Algorithmus, der nach dem Hashing einen 160-Bit-Hash-Digest zurückgab.

Aufgrund der geringen Bitlänge traten jedoch Schwachstellen wie Kollisionsangriffe auf. In der Kryptografie tritt eine Kollision auf, wenn zwei verschiedene Eingaben denselben Hash erzeugen. Mit der Zeit wurde es einfacher, diese Kollisionen zu finden, was die Sicherheit von SHA-1 erheblich untergrub. Ein Meilenstein war der „SHAttered“-Angriff von Google und CWI im Jahr 2017, der erfolgreich eine Kollision in SHA-1 demonstrierte und damit dessen Obsoleszenz in sicheren Anwendungen markierte. SHA-1 ist mittlerweile ein veralteter Algorithmus und wird nicht mehr für Online-Hashing verwendet.

Man könnte sich fragen, ob SHA-2 wie SHA-1 geknackt werden kann. Die Antwort lautet: Ja. Aufgrund der kurzen Hash-Länge ist SHA-1 leichter zu knacken als SHA-2, aber auch SHA-2 ist knackbar. SHA-1 kann zwei verschiedene Werte mit demselben Hash-Digest verknüpfen, da die Anzahl der mit 160 Bit erstellbaren Kombinationen sehr gering ist. SHA-2 hingegen weist jedem Hash-Digest einen eindeutigen Wert zu, weshalb alle Zertifikate SHA-2 verwenden müssen. SHA-2 kann verschiedene Bitlängen von 256 bis 512 Bit erzeugen und so jedem erstellten Hash-Digest eindeutige Werte zuweisen.  

Die Branche begann Anfang der 2000er Jahre mit der Umstellung auf SHA-2, die vollständige Migration dauerte jedoch einige Zeit. SHA-2 mit seinen größeren Bitlängen (z. B. 256 Bit und 512 Bit) bot eine höhere Sicherheit gegen Kollisionen und Brute-Force-Angriffe. Bis 2016 hatten die meisten großen Systeme SHA-1 zugunsten von SHA-2 abgelöst, doch während der Umstellung blieben Widerstand und Herausforderungen bestehen.

Viele Unternehmen zögerten mit der Einführung von SHA-2, da umfangreiche Infrastrukturaktualisierungen erforderlich waren. Dazu gehörten die Aktualisierung von Altsystemen, die Sicherstellung der Kompatibilität mit älterer Hard- und Software, der Austausch veralteter Zertifikate und die Neukonfiguration von Sicherheitsprotokollen zur Unterstützung des stärkeren Verschlüsselungsstandard. Trotz der Verzögerung setzte sich SHA-256 als neuer Standard durch, insbesondere für SSL/TLS-Zertifikate und digitale Signaturen, und bietet einen besseren Schutz vor kryptografischen Angriffen. 

Im Vergleich zu SHA-1 ist SHA-2 wesentlich sicherer und seit 2016 in allen digitalen Signaturen und Zertifikaten erforderlich. Gängige Angriffe wie Brute-Force-Angriffe können Jahre oder sogar Jahrzehnte brauchen, um den Hash-Digest zu knacken, daher gilt SHA-2 als der sicherste Hash-Algorithmus. 

Wofür wird SHA verwendet?

Wie bereits erwähnt, sind sichere Hashing-Algorithmen in allen digitalen Signaturen und Zertifikaten im Zusammenhang mit SSL/TLS-Verbindungen erforderlich, aber SHAs haben noch weitere Verwendungsmöglichkeiten. Anwendungen wie SSH, S-MIME (Secure / Multipurpose Internet Mail Extensions) und IPSec verwenden ebenfalls SHAs.  SHAs werden auch zum Hashen von Passwörtern verwendet, sodass sich der Server nur Hashes und keine Passwörter merken muss.

Stiehlt ein Angreifer die Datenbank mit allen Hashes, hat er keinen direkten Zugriff auf alle Klartext-Passwörter. Er müsste zudem einen Weg finden, die Hashes zu knacken, um die Passwörter nutzen zu können. SHAs können auch als Indikatoren für die Integrität einer Datei dienen. Wurde eine Datei während der Übertragung verändert, stimmt der von der Hash-Funktion erstellte Hash-Digest nicht mit dem ursprünglich vom Dateibesitzer erstellten und gesendeten Hash-Digest überein.

In der Blockchain-Technologie, insbesondere bei Kryptowährungen wie Bitcoin, spielt SHA-256 eine entscheidende Rolle. Es ist ein integraler Bestandteil des Mining-Prozesses und hilft dabei, komplexe mathematische Rätsel zu lösen, um neue Transaktionen zu validieren und der Blockchain hinzuzufügen. 

Hauptgründe für die Verwendung von SHA

Wir haben nun gelernt, wofür SHAs verwendet werden, aber warum überhaupt einen sicheren Hashing-Algorithmus verwenden? Ein häufiger Grund ist ihre Fähigkeit, Angreifer zu stoppen. Obwohl einige Methoden, wie Brute-Force-Angriffe, den Klartext der Hash-Digests enthüllen können, werden diese Taktiken durch SHAs extrem erschwert. Das Knacken eines mit einem SHA-2 gehashten Passworts kann Jahre, sogar Jahrzehnte dauern. Dadurch werden Ressourcen und Zeit für ein einfaches Passwort verschwendet, was viele Angreifer abschrecken kann.

Ein weiterer Grund für die Verwendung von SHAs ist die Einzigartigkeit aller Hash-Digests. Bei Verwendung von SHA-2 kommt es wahrscheinlich zu wenigen bis keinen Kollisionen, d. h. die einfache Änderung eines einzigen Wortes in einer Nachricht würde den Hash-Digest komplett verändern. Da es wenige oder keine Kollisionen gibt, lässt sich kein Muster finden, das dem Angreifer das Knacken des Secure Hashing Algorithms erleichtert. Dies sind nur einige Gründe, warum SHA so häufig verwendet wird.

Maßgeschneiderte Verschlüsselungsdienste

Wir bewerten, entwickeln Strategien und implementieren Verschlüsselungsstrategien und -lösungen.

SHA 2-Einschränkungen

  • Browser-Unterstützung
BrowserMindestbrowserversion
Chrome26+
Firefox1.5+
Internet Explorer6+ (mit XP SP3+)
Netscape7.1+
Safari3+ (wird mit OS X 10.5 ausgeliefert)
Mozilla1.4+
Opera9.0+
  • Server-Support
ServerMindestserverversion
AWS (Amazon Web Services)JA
Apache2.0.63+ mit OpenSSL 0.9.8o+
Cisco ASA 55008.2.3.9+ für AnyConnect VPN-Sitzungen; 8.4(2)+ für andere Funktionen
Java-basierte ProdukteJava 1.4.2 +
IBM Domino Server9.0+ (im Paket mit HTTP 8.5+)
IBM HTTP-Server8.5+ (im Paket mit Domino 9+)
IBM z/OSv1r10+
OpenSSL-basierte ProdukteOpenSSL 0.9.8o+
Oracle Wallet Manager11.2.0.1+
Oracle Weblogic10.3.1+
Web Sphere MQ7.0.1.4+
  • OS Support
BetriebssystemMindestversion des SSL-ZertifikatsMindest-Betriebssystemversion des Client-Zertifikats
Android2.3+2.3+
iOS3.0+3.0+
ChromeOSJAJA
Mac OS X10.5+10.5+
Windows XPSP3+ XPSP3+ (teilweise)
Windows Server2003 SP2 + Hotfixes (teilweise)2003 SP2 + Hotfixes (teilweise)
Windows Phone7+7+
Blackberry5.0+5.0+

Die Zukunft des Hashings

Derzeit ist SHA-2 der Industriestandard für Hashing-Algorithmen, obwohl SHA-3 diesen in Zukunft möglicherweise in den Schatten stellen wird. SHA-3 wurde vom NIST veröffentlicht., SHA-1 und SHA-2 wurden 2015 ebenfalls entwickelt, aus verschiedenen Gründen jedoch nicht zum Industriestandard. Zum Zeitpunkt der Veröffentlichung von SHA-3 befanden sich die meisten Unternehmen mitten in der Migration von SHA-1 auf SHA-2. Daher war ein direkter Wechsel zu SHA-3, solange SHA-2 noch sehr sicher war, nicht sinnvoll.

Darüber hinaus galt SHA-3 als langsamer als SHA-2, obwohl dies nicht unbedingt der Fall ist. SHA-3 ist softwareseitig langsamer, hardwareseitig jedoch deutlich schneller als SHA-1 und SHA-2 und wird von Jahr zu Jahr schneller. Aus diesen Gründen werden wir wahrscheinlich später, wenn SHA-2 unsicher oder veraltet wird, einen Wechsel zu SHA-3 erleben.

Fazit

Der Secure Hashing Algorithm ist ein zentrales Werkzeug der modernen Kryptografie, das Eingabedaten in eindeutige und irreversible Hash-Digests umwandelt. Im Gegensatz zur Verschlüsselung ist Hashing einseitig und daher nur mit Brute-Force-Methoden entschlüsselbar. SHA-Varianten, insbesondere SHA-1 und SHA-2, spielen eine entscheidende Rolle in der digitalen Sicherheit. SHA-2 ist aufgrund seiner erhöhten Resistenz gegen Brute-Force-Angriffe und Kollisionsschwachstellen die bevorzugte Wahl.

Wie kann Encryption Consulting helfen? 

Mit einem starken Fokus auf Verschlüsselungsberatungsdienste und jahrzehntelanger Beratungskompetenz bietet Encryption Consulting eine Reihe von kryptografischen Lösungen. Darunter PKI als Service (PKIaaS) zeichnet sich durch den Rund-um-die-Uhr-Support für Kunden bei allen Problemen mit ihrer PKI-Umgebung aus. Dieser umfassende Ansatz erhöht die Sicherheit und stellt sicher, dass Unternehmen gegen mögliche Fehlkonfigurationen ihrer Verschlüsselungs-Setups gewappnet bleiben.