Der Secure Hash Algorithm (SHA) ist eine Familie kryptografischer Hash-Funktionen, die Daten beliebiger Länge in einen Digest fester Länge – auch als „Fingerabdruck“ bezeichnet – umwandeln. Er bildet die Grundlage für Integritätsprüfungen, digitale Signaturen und die Vertrauenswürdigkeit von Zertifikaten und dient zur Authentifizierung von Tunneln in IPsec, TLS und DTLS.
Die wichtigsten Erkenntnisse
- SHA wandelt jede Eingabe in einen Digest fester Länge um, der die Integrität überprüft.
- SHA-1 ist veraltet; SHA-2 (SHA-256, SHA-384, SHA-512) ist der aktuelle Standard.
- SHA-3 nutzt ein anderes internes Design als strukturelle Absicherung für SHA-2.
- HMAC-SHA kombiniert SHA mit einem geheimen Schlüssel, um Nachrichten zu authentifizieren.
- VersaDie IKE-, IPsec-, TLS- und DTLS-Transformationen bieten alle SHA-basierte Hash-Funktionen.
Auf dieser Seite: Warum das wichtig istSo funktioniert esArtenSHA & VersaHäufig gestellte Fragen
Warum ist SHA wichtig?
Nahezu jeder Mechanismus, der nachweist, dass Daten nicht verändert wurden, basiert auf einer Hash-Funktion, und SHA ist die Familie, auf die sich das Internet standardisiert hat. Zertifizierungsstellen signieren Zertifikate mit SHA-basierten Digests; TLS- und IPsec-Sitzungen nutzen SHA – entweder direkt oder über HMAC –, um sicherzustellen, dass Pakete während der Übertragung nicht manipuliert wurden; und Softwareanbieter veröffentlichen SHA-256-Prüfsummen, damit Downloads überprüft werden können.
Dieses Vertrauen ist auch der Grund, warum die Geschichte von SHA von Bedeutung ist. SHA-1, das zwei Jahrzehnte lang dominierte, wurde 2017 durch einen praktischen Kollisionsangriff geknackt, was Browser und Zertifizierungsstellen dazu zwang, auf SHA-2 umzusteigen. Zu wissen, welche SHA-Variante ein System verwendet, ist eine grundlegende Voraussetzung, um beurteilen zu können, ob seine Integritätsgarantien noch gelten.
Was ist SHA?
Eine Hash-Funktion nimmt eine Eingabe beliebiger Größe entgegen und erzeugt eine Ausgabe fester Länge – den Digest. SHA-256 liefert beispielsweise immer 256 Bit, unabhängig davon, ob die Eingabe ein Byte oder ein Gigabyte beträgt. Drei Eigenschaften machen dies nützlich: Die Funktion ist einseitig (die Wiederherstellung der Eingabe ist rechnerisch unmöglich), deterministisch (die gleiche Eingabe erzeugt immer denselben Digest) und kollisionsresistent (es sollte praktisch unmöglich sein, zwei verschiedene Eingaben mit demselben Digest zu finden).
Für sich allein genommen erstellt SHA Fingerabdrücke von Daten zur Integritätsprüfung. In Kombination mit einem geheimen Schlüssel als HMAC-SHA (Hash-based Message Authentication Code) dient es zur Authentifizierung von Nachrichten – dabei wird sowohl nachgewiesen, dass die Daten nicht verändert wurden, als auch, dass sie von jemandem stammen, der über den gemeinsamen Schlüssel verfügt. Genau das nutzen IPsec und TLS zur Authentifizierung von Paketen und Handshake-Nachrichten.
Arten von SHA
SHA-1 erzeugt einen 160-Bit-Digest und wurde 1995 veröffentlicht. Ein nachgewiesener Kollisionsangriff (die „SHAttered“-Studie aus dem Jahr 2017) hat seine Kollisionsresistenz durchbrochen, weshalb der Einsatz für neue Installationen mittlerweile nicht mehr empfohlen wird – auch wenn er in älteren Konfigurationsoptionen weiterhin vorkommt.
SHA-2 ist der aktuelle Standard, der 2001 veröffentlicht wurde. Es handelt sich um eine Familie von Hash-Größen – SHA-224, SHA-256, SHA-384, SHA-512 und verkürzte Varianten –, wobei SHA-256 die gängigste Basis für TLS-Zertifikate, Codesignierung und IPsec-Transformationen darstellt. Für SHA-2 ist kein praktischer Kollisionsangriff bekannt.
SHA-3, das 2015 veröffentlicht wurde, unterscheidet sich strukturell: Es nutzt eine Sponge-Konstruktion (Keccak) anstelle des Merkle-Damgård-Designs, das SHA-1 und SHA-2 gemeinsam haben. Es wurde als Ausweichlösung und nicht als Ersatz standardisiert und wird in Netzwerkprotokollen heute seltener eingesetzt als SHA-2.
SHA & Versa
VersaDie Konfiguration des Secure Access Service stellt SHA direkt in der Tunnelkryptografie bereit. Bei der Konfiguration der IKE-Transformation für ein „Secure Access Server“- oder „ SASE “-Clientprofil wird ein Verschlüsselungsalgorithmus (3DES, AES 128-Bit oder AES 256-Bit) mit einem Hash-Algorithmus – MD5, SHA-1, SHA-256, SHA-384 oder SHA-512 – für den Kontrollkanal des Schlüsselaustauschs gekoppelt. Die IPsec (ESP)-Transformation bietet dieselben SHA-Optionen für den Datenebene-Tunnel sowie GCM-Modi, bei denen die Authentifizierung in die Verschlüsselung integriert wird, anstatt sie mit einem separaten SHA-Hash zu kombinieren.
SHA kommt auch in den TLS- und DTLS-Verschlüsselungssuiten vor, die für sichere Zugangsportale und SASE -Client-Sitzungen angeboten werden – zum Beispiel, TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384 – wobei die angehängte SHA-Variante den Integritätsalgorithmus für den Handshake festlegt. Administratoren passen die SHA-Sicherheit pro Tunnel sowohl bei „ Secure SD-WAN “- als auch bei NGFW-gestützten Bereitstellungen an: Bevorzugen Sie SHA-256 oder stärker und betrachten Sie SHA-1 und MD5 lediglich als Kompatibilitätslösung.
Häufig gestellte Fragen
Was ist der Unterschied zwischen SHA-1 und SHA-256?
SHA-1 erzeugt einen 160-Bit-Digest und ist anfällig für Kollisionsangriffe, weshalb es nicht mehr für neue Sicherheitszwecke verwendet werden sollte. SHA-256, das zur SHA-2-Familie gehört, erzeugt einen 256-Bit-Digest, weist keine bekannten praktischen Kollisionsangriffe auf und ist derzeit die empfohlene Standardlösung.
Ist SHA eine Verschlüsselung oder ein Hash-Verfahren?
Hashfunktion, keine Verschlüsselung. Eine Verschlüsselung lässt sich mit dem richtigen Schlüssel wiederherstellen; eine Hashfunktion ist von ihrer Konzeption her einseitig – es gibt keinen Schlüssel, mit dem sich die ursprüngliche Eingabe aus einem SHA-Digest wiederherstellen lässt. SHA überprüft die Datenintegrität und authentifiziert die Daten in Kombination mit einem Schlüssel als HMAC.
Warum wurde SHA-1 als veraltet eingestuft?
Im Jahr 2017 wiesen Forscher eine praktische Kollision nach – zwei unterschiedliche Eingaben, die denselben SHA-1-Hashwert erzeugten –, wodurch die Eigenschaft, die SHA-1 für Signaturen und Zertifikate vertrauenswürdig machte, untergraben wurde. In der Folge verlangten Browser und Zertifizierungsstellen für neue Zertifikate die Verwendung von SHA-2 oder einer neueren Version.
Was ist HMAC-SHA und worin unterscheidet es sich von SHA allein?
HMAC-SHA kombiniert eine SHA-Hashfunktion mit einem geheimen Schlüssel, um einen verschlüsselten Authentifizierungscode zu erzeugen. SHA allein belegt, dass die Daten nicht verändert wurden; HMAC-SHA belegt zusätzlich, dass der Absender über den gemeinsamen Schlüssel verfügte – genau das nutzen IPsec und TLS zur Authentifizierung des Tunnelverkehrs.
Welche SHA-Variante sollte ich heute verwenden?
SHA-256 ist heute der de facto Standard für Zertifikate, TLS-Handshakes und IPsec-Transformationen. SHA-384 oder SHA-512 bieten zusätzliche Sicherheit für Anwendungen mit höheren Sicherheitsanforderungen, die die größere Digest-Größe verkraften können. SHA-1 und MD5 sollten streng auf die Interoperabilität mit älteren Systemen beschränkt werden, die nicht aktualisiert werden können.
Mehr über SHA
Wenn Sie mehr erfahren möchten, finden Sie hier Quellen, denen wir vertrauen.
| RFC 3174: US Secure Hash Algorithm 1 (SHA1) | RFC 6234: US-amerikanische sichere Hash-Algorithmen (SHA und HMAC) |
|---|---|
| Die ursprüngliche IETF-Spezifikation des SHA-1-Algorithmus, einschließlich Pseudocode und einer vollständigen Referenzimplementierung zur Überprüfung. | Die IETF-Spezifikation, die SHA-1 und die SHA-2-Hash-Familie sowie die darauf aufbauenden SHA-basierten HMAC- und HKDF-Konstruktionen abdeckt. |
Verwandte Begriffe
Wenn Sie sich gerade über SHA informieren, sollten Sie sich als Nächstes diese Artikel ansehen.
| Advanced Encryption Standard | Galois-/Counter-Modus | Datagramm-Transportschicht-Sicherheit |
|---|---|---|
| Die symmetrische Verschlüsselungsfunktion SHA wird in IPsec- und TLS-Transformationen meist kombiniert, um neben der Verschlüsselung auch die Integrität zu gewährleisten. | Ein authentifizierter Verschlüsselungsmodus, bei dem die Hash-Funktion in die Verschlüsselungsalgorithmus selbst integriert ist und der als Alternative zu separaten AES-plus-SHA-Transformationen angeboten wird. | Ein UDP-basiertes Tunnelprotokoll, dessen Verschlüsselungssuiten – ähnlich wie bei TLS – eine SHA-Variante zur Gewährleistung der Integrität des Handshakes enthalten. |