Obwohl Linux als freie Software kostenlos verfügbar ist, setzen viele beim Unternehmenseinsatz auf Enterprise-Distributionen mit Support. Wo die Stärken der ... (mehr)

Krypto-Wettbewerb

Der Wettbewerb trug nicht nur dazu bei, dass zahlreiche neue Hash-Funktionen entwickelt wurden, er verbesserte auch deutlich das Verständnis der Kryptografen. Eine nicht unbedeutende Erkenntnis des Wettbewerbs: Die SHA-2-Funktionen sind offenbar besser als viele dachten. Der bekannte Kryptograf Bruce Schneier schlug wenige Wochen vor der finalen Entscheidung daher vor, den Wettbewerb ohne Sieger zu beenden [4] . Keiner der Finalisten sei deutlich besser als SHA-512, einige seien geringfügig schneller, aber nicht so viel schneller dass es einen neuen Standard rechtfertigen würde. Schneier selbst hatte zusammen mit anderen mit der Hashfunktion Skein einen der aussichtsreichen Kandidaten für SHA-3 ins Rennen geschickt. Egal, wie der Wettbewerb ausgeht: Schneier empfahl allen Anwendungsentwicklern, unabhängig vom Ausgang zumindest vorerst weiterhin auf SHA-512 zu setzen, da der Algorithmus bewährt und gut untersucht sei.

Doch Schneiers Worte bleiben ungehört. Am 2. Oktober verkündete das NIST den Sieger: Keccak, eine Entwicklung eines belgischen Wissenschaftsteams, soll zum neue SHA-3-Standard werden. Für den Mitentwickler Joan Daemen war dies ein besonderer Erfolg: Er hatte bereits den Verschlüsselungsalgorithmus Rijandel mitentworfen, der später zum Standard AES wurde.

Das NIST begründete seine Entscheidung damit, dass Keccak von der internen Struktur deutlich anders aufgebaut sei als die bestehenden SHA-2-Funktionen. Sollten sich in Zukunft doch Probleme zeigen, hätte man eine Alternative, die davon höchstwahrscheinlich nicht betroffen ist. Auch Bruce Schneier konnte mit der Entscheidung gut leben. Trotz seiner vorigen Kritik betonte er, dass er keinerlei Sorgen um die Sicherheit von Keccak habe und es eine gute Entscheidung sei.

Den endgültigen SHA-3-Standard hat das NIST bisher noch nicht veröffentlicht, somit ist auch bisher eine Nutzung von SHA-3 kaum anzuraten. Der Hintergrund: Der Keccak-Algorithmus bietet zahlreiche Varianten, in denen er genutzt werden kann, erst nach Veröffentlichung des Standards wird klar sein, mit welchen genauen Parametern die Funktion dann genutzt werden soll.

Nutzung von SHA-2

Auf Unix-Systemen stehen in der Regel eine Reihe von Kommandozeilentools bereit, um Hash-Funktionen zu berechnen. Für die alten, inzwischen unsicheren Funktionen gibt es »md5sum« oder »sha1sum« , analog dazu existieren die Tools »sha256sum« , »sha224sum« , »sha384sum« und »sha512sum« .

In den meisten modernen Programmiersprachen stehen Funktionen bereit, um die Hash-Funktionen zu berechnen. In Python stehen die Funktionen der »hashlib« -Bibliothek zur Verfügung, ein Aufruf von »hashlib.sha512.("Hallo").hexdigest()« gibt den hexadezimalen Hash aus. Die folgenden Zeilen machen das Gleiche mit PHP:

$input = "Hallo";
echo hash('sha512',$input);

Die die entsprechende Funktion heißt also »hash« und übernimmt den Typ als Parameter.

SHA-2 wenig verbreitet

Nach wie vor gilt also: Sichere Anwendungen sollten vorerst auf die SHA-2-Funktionen setzen. Doch obwohl die Probleme in SHA-1 nun schon seit sieben Jahren bekannt sind, tun sich hier zahlreiche Probleme auf. SHA-1 ist noch weit verbreitet und auch MD5 längst nicht ausgerottet.

Im Jahr 2008 konnte ein Forscherteam auf dem 25C3, dem Jahreskongress des Chaos Computer Clubs, einen Angriff auf MD5-Signaturen präsentieren [5] , der es ihnen ermöglichte, ein gefälschtes Root-Zertifikat einer von allen Browsern unterstützten SSL-Zertifizierungsstelle zu erzeugen. Erst infolge dieses Praxisangriffs ließen sich die Zertifizierungsstellen überzeugen, die Nutzung von MD5 zu beenden. Doch statt direkt auf SHA-2 zu wechseln, nutzen die meisten inzwischen den ebenfalls potenziell anfälligen Algorithmus SHA-1.

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023