Beiträge

Bei MD5 (Message-Digest Algorithm 5) handelt es sich um eine komplexe Hashfunktion, die in erster Linie eingesetzt wird, um aus einer bestimmten Nachricht oder Zeichenkette einen stets gleichen Hashwert zu erzeugen. Der Message-Digest Algorithm 5 kommt bei verschiedenen Anwendungen zum Einsatz, wie beispielsweise bei der Validierung von Download-Dateien oder beim Speichern von Passwörtern.

Message-Digest Algorithm 5 im Überblick

Die Abkürzung MD5 ist englischen Ursprungs und steht für „Message-Digest Algorithm 5“. Hierbei handelt es sich um eine Hashfunktion aus der Kryptografie, die aus einer beliebigen Zeichenkette einen einzigartigen Hashwert erzeugt. Im Gegensatz zu gängigen Verschlüsselungsverfahren ist die Funktion nicht umkehrbar, womit verhindert wird, dass sich aus dem Hashwert die ursprüngliche Zeichenkette rekonstruieren lässt.
MD5 wurde von dem amerikanischen Mathematiker und Kryptologen Ronald L. Rivest im Jahr 1991 am Massachusetts Institute of Technology entwickelt. Message-Digest Algorithm 5 wurde als der direkte Nachfolger des als unsicher geltenden MD4-Hashfunktion konzipiert. Typische Einsatzszenarien von MD5 sind die Validierung von Download-Dateien und das Speichern von Passwörtern. Der Message-Digest Algorithm 5 gilt heute jedoch nicht mehr als ausreichend sicher. Es wurden verschiedene Angriffsmethoden, wie beispielsweise Kollisionsangriffe, entwickelt und erfolgreich eingesetzt, mit denen es möglich ist, die passende Ausgangszeichenkette zu einem bestimmten Hashwert mit vertretbarem Aufwand zu erzeugen.

Die grundsätzlichen Kriterien einer MD5-Hashfunktion

Eine MD5-Hashfunktion muss wie alle anderen Hashfunktionen mehrere Kriterien erfüllen. So muss beispielsweise die identische Zeichenkette immer den gleichen Hashwert erzeugen. Darüber hinaus muss verhindert werden, dass sich aus einem Hashwert die ursprüngliche Zeichenkette ermitteln lässt. Mit MD5 lassen sich jedoch nicht alle Anforderungen ganzheitlich erfüllen. So ist es beispielsweise bekannt, dass unterschiedliche Zeichenketten durchaus einen identischen Hashwert liefern können. In solchen Fällen spricht man von einer Kollision. Die Sicherheit und Integrität einer MD5-Anwendung sind direkt von der Einhaltung dieser Kriterien abhängig.


Der Message-Digest Algorithm 5 basiert auf der sogenannten „Merkle-Damgard-Konstruktion“. Dieser hochkomplexe Algorithmus füllt die Ausgangszeichenfolge bis zu einer bestimmten Länge mit Nullen und Einsen auf und setzt danach blockweise Komprimierungsfunktionen an. Es werden mehrere Durchgänge mit mathematischen Funktionen durchlaufen, bis ein 128-Bit-Wert erreicht und als Ergebnis präsentiert wird.

Einsatzbereiche

Message-Digest Algorithm 5 kommt in zahlreichen Anwendungen zum Einsatz. Ein häufiger Anwendungsfall ist die Validierung einer aus dem World Wide Web heruntergeladenen Datei auf ihre Vollständigkeit. Die Validierung soll Übertragungsfehler des Netzwerks, die bis zu einem gewissen Grad ausgeglichen werden können, ausschließen. Um diese Funktionalität sicherstellen zu können, wird auf Basis der Ausgangsdatei zunächst eine MD5-Prüfsumme berechnet und gemeinsam mit der Datei übertragen. Im nächsten Schritt berechnet der Empfänger eine Prüfsumme anhand der empfangenen Datei und gleicht diese mit der mitgesendeten Prüfsumme ab. Falls die Signaturen beider Hashwerte miteinander übereinstimmen, war die Übertragung erfolgreich und die Integrität der Datei ist validiert. Diverse Angriffsmethoden, wie beispielsweise Man-in-the-Middle-Angriffe lassen sich durch die Prüfmethode jedoch nicht völlig ausschließen, da Angreifer die Hashsignatur nach Veränderung der Datei wieder neu erzeugen können.
Ein weiterer beliebter Einsatzbereich ist das sichere Speichern von Passwörtern. Passwörter werden nicht im Klartext, sondern als MD5-Hashwerte lokal gespeichert. Dadurch werden die Passwörter in der gespeicherten Datei für unbefugte Personen unlesbar, auch dann, wenn diese vollen Zugriff auf die Passwort-Datei haben sollten. Da bei dem Message-Digest Algorithm 5 das Zurücksetzen der Hashsignatur unmöglich ist, kann auch das ursprüngliche Passwort nicht einfach rekonstruiert werden.

Weitere Anwendungsbereiche von MD5 sind:

– Generierung von Passwörtern und Zufallszahlen
– Erstellen digitaler Signaturen
– Ableiten von Schlüsseln

Wie sicher ist MD5?

Der Message-Digest Algorithm 5 ist weit verbreitet und galt ursprünglich als kryptografisch sicher. Er wird heutzutage jedoch als nicht mehr ausreichend sicher angesehen. Schwächen, wie beispielsweise das gezielte Errechnen von Kollisionen, sind schon seit 1994 bekannt. Die grundlegende Arbeit, um diese Schwachstelle auszunutzen, leistete der deutsche Mathematiker und Kryptologe Hans Dobbertin, der einige Jahre zuvor einen erfolgreichen Angriff auf MD4 entwickelt hatte und die eingesetzten Methoden und Techniken auf MD5 übertrug. Mit aktuellen Computern lässt sich eine zum Hashwert passende Zeichenkette in der Regel binnen weniger Minuten errechnen.
Aus diesem Grund sollte der Message-Digest Algorithm 5 für kryptografische Anwendungen nicht mehr verwendet werden. Eine weitere beliebte und äußerst effiziente Angriffsmethode für MD5 sind Angriffe mit sogenannten „Regenbogentabellen“. In solchen Tabellen befinden sich Zeichenketten mit den zugehörigen Hashwerten. Hacker die einen Hashwert knacken wollen, müssen diesen einfach mit den in der Regenbogentabelle gespeicherten Hashwerten abgleichen. Mit ein wenig Glück lässt sich so unter Umständen die passende Zeichenkette ermitteln. Im Internet gibt es gigantische Regenbogentabellen mit Millionen von Einträgen, die für Angriffe genutzt werden können.

Unter Vulnerability versteht man in der Informationstechnik eine Verwundbarkeit der Hard- oder Software. Immer wieder tauchen Meldungen über neue Vulnerabilitäten auf. Sogar in als unverwundbar geltenden Architekturen, wie der des iPhone von Apple, hat ein Hacker mit dem Checkm8-Exploit kürzlich eine mächtige Sicherheitslücke aufgetan. Kann man also davon ausgehen, dass in jedem Programm und in jeder Hardware-Architektur unbekannte Fehler schlummern?

Der Exploit, des Hackers Werkzeug

Eine Vulnerability wird dadurch gefährlich, dass jemand herausfindet, wie er sie ausnutzen kann. Das Programm, mit dem die Sicherheitslücke für einen bestimmten Zweck „ausgebeutet“ werden kann, ist der . Im günstigsten Fall ist der Hacker ein Sicherheitsforscher, der mit einem Proof-of-concept (PoC) nur den Beweis der Verwundbarkeit antreten will. Dann wird er vor der Veröffentlichung das betroffene Unternehmen in Kenntnis setzen. Kriminelle Hacker hingegen, nutzen die Vulnerability aus, um größtmöglichen Profit zu erzielen oder hohen Schaden anzurichten.

Bekannte Hardware-Sicherheitslücken

Rowhammer (2015): Verwendet eine Vulnerability in der Architektur von Arbeitsspeicher. Hier wird ausgenutzt, dass der Speicher mittels elektrischer Spannung beschrieben wird. Werden viele Schreib- und Leseoperationen in einem Bereich ausgeführt, kann das auch nicht betroffene Bits verändern. Eine Cache-Funktion, die genau diesen Umstand verhindern soll, kann vom Angreifer gezielt ausgehebelt werden.

Meltdown/Spectre (2017): Sind Exploits, die Schwachstellen in Prozessoren der drei großen Anbieter Intel, AMD und ARM ausnutzen. Sie erlauben Zugriffe auf privilegierte Speicherbereiche. In einem Szenario greifen dafür vorgesehene Sicherheitsmechanismen nicht schnell genug, da aus Performance-Gründen unkontrolliert Befehle vorab in internen Registern ausgeführt werden dürfen.

Bekannte Software-Vulnerabilitäten

Heartbleed (2014): Nutzt die Schwäche in einer älteren Version von SSL aus. In dieser kontrolliert SSL das Bestehen der Verbindung regelmäßig durch das Senden von Kontrollbits. Dieselbe Menge wird als Bestätigung zurückgesandt. Jedoch ist es möglich, die vorgesehene Größe zu überschreiten. Die zurückgesandten Bits werden dann mit zufällig im Speicher befindlichen Inhalten aufgefüllt. Dies können auch sensible Daten sein.

-KRACK (2016): Benennt einen Angriff auf die bis dahin als sicher geltende WPA2-Verschlüsselung in WLANs. Bei diesem werden im Authentifizierungsprozess (Handshake) übersandte Pakete abgefangen und Wiederholungen der Versendungen erzwungen. Ein zum Schutz vorgesehener, temporärer Zufallswert (Nonce) wird angreifbar, da er dadurch erneut verwendet wird.

DirtyCow (2016): Benutzt eine Vulnerability, die den Linux-Kernel betrifft. Daher sind auch Android-Geräte betroffen. Namensgebend ist die Ursache, der sogenannte Copy-on-write-Mechanismus. Durch geschickte Mehrfachöffnung einer virtuellen Datei in parallelen Threads, gelingt es dem Exploit, sich nicht vorgesehene Rechte zu verschaffen.

-BlueBorne (2017): Basiert auf einer Vulnerability bei der Implementierung von Bluetooth in nahezu allen Betriebssystemen. Der Angreifer muss sich im Funkbereich der aktivierten Schnittstelle befinden. Dann kann er sich als Man-in-the-Middle betätigen und den Netzwerkverkehr mitlesen. Unter Linux ist es ihm möglich, Schadcode mit den Rechten des Bluetooth-Prozesses auszuführen.

Der Zero-Day-Exploit und CVE

Verwendet der Hacker einen Exploit, bevor er dem betroffenen Entwickler mitgeteilt wurde, spricht man von einem Zero-Day-Exploit. Teilweise wird dieser über einen längeren Zeitraum genutzt, bevor der Hersteller davon erfährt.

Das Gegenstück dazu sind die Common Vulnerabilities and Exposures (CVE). Hierbei handelt es sich um eine Sammlung veröffentlichter Sicherheitslücken. Den Entwicklern wird vor der Bekanntgabe Zeit zur Beseitigung des Fehlers gegeben. Die Veröffentlichung erfolgt, damit Forscher und Hersteller sich damit beschäftigten können. Die CVE erhalten eindeutige Nummern, die es Herstellern von Schutzsoftware ermöglichen, die Vulnerability konkret zu benennen.

Warum gibt es so viele Vulnerabilitäten?

Es gilt auch hier die Weisheit: Wo Menschen arbeiten, werden Fehler gemacht. Allerdings sind Betriebssysteme und viele Programme heutzutage derart komplex, dass Fehler niemals völlig ausgeschlossen werden können. Zudem steht es nicht immer in der Macht eines Entwicklers, derartige Probleme zu vermeiden. Vielmehr muss er sich oftmals auf Module anderer Anbieter verlassen. So wird TLS/SSL in Mailprogrammen und auch im HTTPS-Protokoll genutzt. In vielen Betriebssystemen ist es als Bibliothek fest implementiert. Daher sind durch eine Vulnerability in SSL, die durch den Heartbleed-Exploit ausgenutzt wurde, eine derart hohe Anzahl an Endgeräten und Software-Produkten betroffen. Bei der KRACK-Attacke wiederum wurde ein Hinweis im WPA2-Standard in einem unter Linux und Android gebräuchlichen Treiber fehlerhaft implementiert, so dass nach Durchführung des Angriffs der verwendete Schlüssel nur noch aus Nullen bestand.

Schutz und Gegenmaßnahmen

Um sich vor Vulnerabilitäten zu schützen, sollten Sie als Anwender oder Verantwortlicher auf mehrere Maßnahmen setzen.

Viele Exploits werden von Virenscannern erkannt. Voraussetzung sind tagesaktuelle Signaturen und leistungsfähige Schutzsoftware. Eine Firewall kann verhindern, dass Daten zugänglich werden oder abfließen.

Essentiell sind Sicherheitsupdates für Hard- und Software. Für den Großteil der aufgeführten Exploits haben die Hersteller Sicherheitsupdates veröffentlicht.

Nicht zu vergessen bleibt eine vernünftige Backup-Strategie, da Exploits auch Daten korrumpieren können. Schließlich sollten Sie als Verantwortlicher die aktuelle Bedrohungslage im Auge behalten. Dies können Sie anhand öffentlich zugänglicher CVE-Datenbanken. Im Zweifel macht es möglicherweise Sinn, auf bestimmte Hard- oder Software zu verzichten, bis die Vulnerability geschlossen ist.

Die Sicherheit mehr oder weniger jeder SSL– oder TLS-geschützten Verbindung hängt weitgehend von der Auswahl der Cipher Suites durch den Client und den Server ab.
Wenn Sie Dateiübertragungsprotokolle wie HTTPS, FTPS und AS2 verwenden, aber nicht wissen, worum es sich bei Cipher Suites handelt, wird Ihnen dieser Beitrag zu einem besseren Verständnis dieser  elementaren Verschlüsselungstechnik verhelfen.

Grundlagen einer Cipher Suite

Die Definition einer Cipher Suite besteht im Wesentlichen aus einem vollständigen Satz von Algorithmen, die zum Sichern einer Netzwerkverbindung über SSL (Secure Sockets Layer) bzw. TLS (Transport Layer Security) erforderlich sind. Der Name jeder Cipher Suite ist dabei repräsentativ für die spezifischen Algorithmen, aus denen er besteht.

Bestandteile einer Cipher Suite

Die Algorithmen, die eine typische Cipher Suite bilden, sind die folgenden:

1. Schlüsselaustausch-Algorithmus – bestimmt die Art und Weise, wie symmetrische Schlüssel ausgetauscht werden; Einige Schlüsselaustauschalgorithmen: RSA, DH, ECDH, ECDHE;

2. Authentifizierungs-Algorithmus – legt fest, wie die Serverauthentifizierung und (falls erforderlich) die Clientauthentifizierung durchgeführt werden. Einige Authentifizierungsalgorithmen: RSA, DSA, ECDSA;

3. Massenverschlüsselungs-Algorithmus – legt fest, welcher Algorithmus mit symmetrischem Schlüssel zum Verschlüsseln der tatsächlichen Daten verwendet wird; Einige Massenverschlüsselungsalgorithmen: AES, 3DES, CAMELLIA;

4. MAC-Algorithmus (Message Authentication Code) – Bestimmt die Methode, mit der die Verbindung Datenintegritätsprüfungen durchführt. Einige MAC-Algorithmen: SHA, MD5;

Jede Suite besteht in der Regel aus einem Schlüsselaustausch-, einem Authentifizierungs-, einem Verschlüsselungs und einem MAC-Algorithmus. Bei der Konfiguration einer Cipher Suite wird kurz gesagt festgelegt, wann welche Verschlüsselungs- und Dechiffrierverfahren wie angewendet werden.

Typischerweise könnte eine Cipher Suite also wie folgt aufgebaut sein:

TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384

Aufgeschlüsselt liest sich diese Sammlung kryptografischer Verfahren folgendermaßen:

TLS zeigt einfach das Protokoll an;
ECDHE bezeichnet den Schlüsselaustauschalgorithmus;
ECDSA bezeichnet den Authentifizierungsalgorithmus.
AES_256_CBC gibt den Massenverschlüsselungsalgorithmus an. SHA384 gibt den MAC-Algorithmus an.

Diese Chiffren arbeiten an verschiedenen Punkten zusammen, um die Authentifizierung, die Schlüsselerzeugung und den Austausch sowie eine Prüfsumme zur Gewährleistung der Integrität durchzuführen. Um zu bestimmen, welche spezifischen Algorithmen verwendet werden sollen, entscheiden sich Client und Server zunächst für eine zu verwendende Suite. Zu Beginn der Verbindung teilen sich dafür beide Parteien eine Liste der unterstützten Cipher Suites und entscheiden sich dann für die sicherste, von beiden Seiten unterstützte Suite.

Verwendung

Cipher Suites werden in Netzwerkverbindungen verwendet, die durch SSL oder TLS gesichert sind. Das heißt, Netzwerkprotokolle wie HTTPS, FTPS, WebDAVS, AS2, POP3, IMAP und SMTP verwenden alle Cipher Suites.

Bevor eine Clientanwendung und ein Server Daten über eine SSL bzw. TLS-Verbindung austauschen können, müssen sich diese beiden Parteien zunächst auf einen gemeinsamen Satz von Algorithmen einigen, um die Verbindung zu sichern. Das sind die Algorithmen, die weiter oben bereits erwähnt wurden. Wenn die beteiligten Parteien keine Einigung erzielen, kann keine Verbindung hergestellt werden.
Dieser „Verhandlungsprozess“ findet während des sogenannten SSL-Handshakes statt. Beim SSL-Handshake teilt der Client dem Server zunächst mit, welche Cipher Suites er unterstützt. Diese sind normalerweise in der Reihenfolge ihrer Sicherheit angeordnet. Die sicherste Methode ist natürlich die erste Wahl.
Der Server vergleicht dann diese Cipher Suites mit den Cipher Suites, die auf seiner Seite aktiviert sind. Sobald es eine Übereinstimmung findet, informiert es den Client und die Algorithmen der gewählten Cipher Suite werden ins Spiel gebracht.

Schwächen

In der Vergangenheit sind mehrere Sicherheitslücken auf Netzwerkebene im Zusammenhang mit Cipher Suites aufgetreten. Darunter befanden sich SSL/TLS-basierte Sicherheitslücken wie Heartbleed und POODLE. Um diese Sicherheitsanfälligkeiten zu verringern, sollten Unternehmen verschiedene Versionen verfügbarer Suites verwenden oder die Akzeptanz anfälliger Suites deaktivieren. Um sich beispielsweise gegen POODLE zu verteidigen, muss SSLv3 deaktiviert werden.

Das Deaktivieren von Cipher Suites kann jedoch manchmal zu Kompatibilitätsproblemen führen. Aber es kann davon ausgegangen werden, dass die allermeisten namenhaften Webbrowser ihre Cipher Suites ohnehin nach Bekanntwerden einer SSL/TLS-basierten Sicherheitsanfälligkeit aktualisieren. Unternehmen sollten Webbenutzern deswegen dazu raten, immer die aktuellsten Software-Patches auf ihren Geräten zu installieren, damit Kompatibilitätsprobleme vermieden werden können.
Der Administrator einer Website kann die Verwendung der bestmöglichen Cipher Suites erzwingen, indem er die Software regelmäßig aktualisiert und die richtige Konfiguration verwendet. Auf diese Weise können Sie die Wahrscheinlichkeit verringern, dass die Besucher Ihrer Webseite mit Kompatibilitätsproblemen konfrontiert werden.

Wissen Sie, wie oft Sie heute AES, den Advanced Encryption Standard, benutzt haben? Falls nicht, ist es wahrscheinlich, dass Sie damit in guter Gesellschaft sind. Gleichermaßen wahrscheinlich ist es, dass Sie ihn heute schon öfter als einmal verwendet haben. Zumindest, wenn Sie mit dem Smartphone im WLAN angemeldet waren, Ihre Mails abgerufen, im Internet gesurft oder beim Einkaufen bargeldlos bezahlt haben.

Herkunft und Entwicklung des AES

Die Notwendigkeit Daten zu verschlüsseln, wurde spätestens mit der Verbreitung des Internets auch außerhalb von Militär und Geheimdiensten erkannt. Um eine Kompatibilität beim Austausch von Daten zu erreichen, kamen dafür nur standardisierte Verfahren in Frage. Lange Zeit verwendete man den DES (Data Encryption Standard), an dessen Entwicklung der amerikanische Geheimdienst NSA beteiligt war. Aufgrund der durch DES verwendeten Schlüssellänge von 56 Bit, galt dieser in den neunziger Jahren zunehmend als unsicher, da die steigende Rechenleistung der Computeranlagen Brute-Force-Attacken  ermöglichte. Daher schrieb das NIST (National Institute of Standards and Technology) einen Wettbewerb zur Entwicklung des Nachfolgers aus. Diesen Wettbewerb gewannen im Jahr 2000 die belgischen Kryptologen Joan Daemen und Vincent Rijmen mit ihrem Rijndael-Algorithmus, der seitdem als AES Standard in der Kryptografie ist.

Ein paar Grundlagen zur Verschlüsselung

Bei der Verschlüsselung von Daten wird ein geheimer Schlüssel auf den klartextlichen Datenbestand angewendet, beispielsweise durch eine bitweise XOR-Verknüpfung. Wenn nachvollziehbar ist, welcher Klartext einem verschlüsselten Datenbestand an bestimmten Stellen zugrunde liegt, reichen derart simple Operationen nicht aus. So haben Dateien häufig spezifische Header und es wäre einfach, den Schlüssel durch erneute Anwendung der XOR-Operation mit dem bekannten Bitmuster zurückzurechnen. Daher werden komplexe Algorithmen angewendet.

Zusätzlicher Schutz kann durch die Anwendung einer Blockchiffre erzielt werden. Dabei erfolgt die Verschlüsselung auf festgelegte Block- und Schlüssellängen. Die Blöcke können auch nach bestimmten Kriterien vermischt werden, wodurch es schwieriger ist, Rückberechnungen anhand von bekanntem Klartext durchzuführen. Dies bedingt, dass der letzte Block zumeist aufgefüllt werden muss, sofern die Dateigröße nicht zufällig ein Vielfaches der Blockgröße ist. Die Menge der aufgefüllten Bits sind das Padding.

Man unterscheidet symmetrische Verschlüsselung, bei der für die Ver- und Entschlüsselung der gleiche Schlüssel Anwendung findet, und asymmetrische Verschlüsselung. Bei dieser wird ein öffentlicher Schlüssel für die Verschlüsselung verwendet und ein geheimer Schlüssel für die Entschlüsselung. Wenn der Absender durch jedermann verifizierbar sein soll, kann dies auch umgekehrt angewendet werden. Beide Verfahren sind kombinierbar. Dies ist sinnvoll, wenn der Schlüssel für die symmetrische Verschlüsselung zwischen den Kommunikationspartnern getauscht werden muss.

Mehr Details zu AES

AES verwendet eine Schlüssellänge von 128, 196 oder 256 Bit. Er verschlüsselt symmetrisch und ist eine Blockchiffre. Die Verschlüsselung erfolgt in mehreren Runden, wobei zwischen den Runden eine Vertauschung der Datenblöcke erfolgt und jeweils ein eigener Rundenschlüssel verwendet wird. In den Runden werden die Daten innerhalb der Blöcke mit festgelegten Operationen durchmischt, z.B. durch Verschieben (ShiftColumns) oder Mischen (MixColumns). Zur Entschlüsselung werden die gleichen Aktionen in umgekehrter Reihenfolge durchgeführt. Der Standard ist frei von Patentrechten und darf durch jedermann verwendet werden.

Welche Anwendungen nutzen AES?

Die bekanntesten Datei- und Dateisystemverschlüsselungsprogramme verwenden AES, darunter TrueCrypt/VeraCrypt, Bitlocker, dm-crypt und BoxCryptor.

Insbesondere wenn es um die verschlüsselte Übertragung von Daten geht, führt kein Weg an AES vorbei. TLS (Transport Layer Security) und sein Vorgänger SSL (Secure Sockets Layer) verschlüsseln mit dem AES. HTTPS (Hypertext Transport Protocol Secure), das Standard-Protokoll des Word Wide Web, nutzt wiederum TLS/SSL. Auch Mailclients, wie Thunderbird und Microsoft Outlook sowie der plattformunabhängige Standard PGP (Pretty Good Privacy) setzen auf TLS.

Die Nutzung von VPN-Verbindungen (Virtual Private Network) beinhaltet in den meisten Fällen ebenfalls den AES. Die Verschlüsselung innerhalb des WLANs wird bei WPA2 oft mittels AES implementiert. WPA2 verwendet das CCMP (Counter Mode with Cipher Block Chaining Message Authentication Code Protokoll), welches auf AES basiert.

Zur Beschleunigung des AES sind von Intel sowie von AMD entsprechende Befehlssatzerweiterungen in ihre Prozessoren implementiert worden. Auch Betriebssysteme wie Windows und Linux unterstützen AES, Smartcards (z.B. EC-Karten und SIM-Karten) verwenden AES zur Verschlüsselung.

Welche Stärken und Schwächen hat AES?

Eine Stärke des AES ist, ressourcenarm zu arbeiten. Dies macht es erst möglich, ihn auf leistungsschwachen Prozessoren von Smartcards einzusetzen. Weiterhin ist der Algorithmus auch zwei Jahrzehnte nach seiner Einführung noch als sicher anzusehen. Es gibt bislang keinen praktisch relevanten Angriff auf den Algorithmus selbst. Brute-Force-Angriffe sind mit heutigen Rechenkapazitäten noch keine ernste Bedrohung für AES, sofern die Schlüssellänge und verwendete Passwörter ausreichend komplex gewählt werden.

Tatsächliche Probleme treten nur bei fehlerhafter Implementierung oder bei Angriffen auf den Übertragungsweg auf. So sind bei symmetrischen Verschlüsselungsverfahren grundsätzlich Man-in-the-Middle-Angriffe möglich.

Andere Verschlüsselungsalgorithmen

Insbesondere die Mitbewerber der Ausschreibung für den AES, Serpent und Twofish, sind als alternativer Algorithmus anwendbar. So zum Beispiel in TrueCrypt/VeraCrypt und dm-crypt. Der Secure Hash Algorithmus (SHA, in den Versionen 1 bis 3) findet Anwendung bei der verschlüsselten Übertragung von Daten.

Da AES aber nach wie vor durch Kryptologen als sicher angesehen wird, besteht keine grundsätzliche Notwendigkeit für Alternativen.

PERL und das Kamel – wo Programmierung und Wüste aufeinandertreffen

PERL ist eine plattformunabhängige Programmiersprache. Die Skriptsprache unterstützt eine Software-Entwickelung in verschiedenen, sehr unterschiedlichen Programmierstilen. Anwendungen für das Web, die Bioinformatik und die Finanzwelt werden mit PERL entwickelt. Die Programmiersprache, in der sich auch Einsteiger leicht zurechtfinden, wurde von einem Sprachwissenschaftler erschaffen. Die Skriptsprache erlaubt viele Freiheiten, die allerdings zu unleserlichem Code führen können.

Als Skriptsprache wird PERL während der Laufzeit von einem Interpreter geparst und interpetiert. Der Programmierer muss nur wenigen Vorgaben folgen, um ein lauffähiges PERL-Skript zu schreiben. Ein Beispiel ist die IF-Anweisung, genauer gesagt das „IF NOT“, das in PERL „UNLESS“ lauten. Die Skriptsprache ist so nah an der natürlichen Sprache angelehnt, dass unter Umständen selbst ein Gedicht ein lauffähiges Programm sein kann.

Das PERL-Prinzip

Das Motto der Skriptsprache „There’s more than one way to do it“ kann mit „Viele Wege führen nach Rom“ übersetzt werden. Ihre Stärken liegen in der Vielseitigkeit, Leistungsfähigkeit, der plattformunabhängig und der Effizienz bei der Verarbeitung von Textdateien. Letztere werden seit jeher in der System- und Netzwerkadministration zum Lesen von Logfiles genutzt. Die große Flexibilität der Sprache eröffnet neue Möglichkeiten bei der Auswertung von Big Data-Beständen.

Umso öfter, umso kürzer

Als PERL-Paradoxon ist das als Huffman-Kodierung bekannte Prinzip, die Längen von Bezeichnern mit ihrer Verwendung in Beziehung setzt. Umso öfter ein Schlüsselwort genutzt wird, umso kürzer ist es. Dem erfahrenen Programmierer erleichtert dies die Schreibarbeit, für den Einsteiger kann das Lesen solcher Programme problematisch sein. Die Skriptsprache wird daher auch als „Write-Only-Language“ bezeichnet. Damit ist gemeint, dass die Programme zwar leicht zu schreiben, dann aber nicht mehr zu lesen sind. Teile des formalen Regelwerks wurden von der Programmiersprache Phyton übernommen.

Dynamische Webseiten

Zunächst wurde PERL fast ausschließlich als Unix-Skriptsprache genutzt. Der Durchbruch kam mit den ersten dynamischen Webseiten. Die aufgerufenen CGI-Skripte liefen auf dem Webserver und nicht wie bei Javascript im Browser des Benutzers.

Gleichzeitig bildeten sich zwei Programmierbereiche heraus. Die CGI-Skripte waren eher im Bereich der Systemadministration angesiedelt, während die PHP-Programmierer den Bau der Webseiten übernahmen. Im Zusammenhang mit dem bei PHP-Programmierern äußerst unbeliebten PERL entstand die Interpretation des Kürzels PHP als „Perl Hater’s Platform“.

PERL in der Praxis

Mit dem Wechsel zu den browserseitig generierten dynamischen Webinhalten schwand die Bedeutung der Skriptsprache – zumindest in der Webentwicklung. In der Systemadministration können mit den Skripten leicht die internen Limits bei den Dateigrößen umgangen werden. Unter System- und Netzwerkadministratoren ist die Skriptsprache auch als „Swiss Army Chainsaw“ bekannt. Dies ist auf die weltberühmten Schweizer Multifunktions-Taschenmesser bezogen, wobei PERL mit einer „Kettensäge“ gleichgestellt wird.

Ein Comeback konnte die Programmiersprache bei der Auswertung von Big Data feiern, denn das Durchforsten großer Datenmengen ist eine der Stärken der Skriptsprache. Damit wird die Skriptsprache auch im Finanzwesen und verwandten Bereichen, aber auch in der Bioinformatik eingesetzt.

PERL – eine Skriptsprache schreibt Geschichte

Larry Wall, ein Linguist, entwarf die Skriptsprache in 1987. Wall kombinierte seine sprachwissenschaftlichen Erkenntnisse mit Elementen aus der Programmiersprache C, der Skriptsprache awk und Unix-Befehlen. 1993 hatte sich PERL bereits zum leistungsfähigen Werkzeug entwickelt. Mit der Version 5 wurde ein völlig überarbeiteter Interpreter veröffentlicht sowie Objekte, Module und Referenzen unterstützt. Seit Version 5 ist eine objektorientierte Programmierung möglich, bei der Parameter an Funktionen übergeben bzw. entgegengenommen werden. Seither kann die Skriptsprache von Anwendern mit Modulen flexibel erweitert werden. Online sind die Module über das CPAN-Archiv abrufbar. Inzwischen sind mehr als 150.000 Module zu den verschiedensten Funktionen erhältlich.

PERL 6 als heutiger Standard

Nach 15 Jahren Entwicklungszeit wurde im Jahr 2015 die Version 6 offiziell freigegeben. Die Version 6 ergänzt die Familie um eine völlig neu entwickelte Variante. Verbessert wurden einige der historisch bedingten und viel diskutierten Kontroversen, die aus Kompatibilitätsgründen in den Vorgängerversionen nicht zu korrigieren waren. Mit der neuen Version konnte die Skriptsprache ihre Popularität nochmals erweitern. Gleichzeitig nehmen die Community-Mitglieder zu, womit umfangreiche Modulbibliotheken zugänglich werden.

Wie PERL das Programmiererleben leichter macht

Charakteristisch für die Skriptsprache ist die sichtbare Unterscheidung zwischen einfachen, skalaren und zusammengesetzten Datentypen. Variablennamen beginnen mit Sigil ($, @ oder %). Darüber erkennt die Programmiersprache, wie die Variable zu interpretieren ist, nicht aber wie sie definiert ist. Damit wird eine besonders einfache Verwendung von häufig benutzten Konstrukten erreicht. Mit den Write-Formaten wird ein einfaches Generieren von Reports unterstützt.

Die Kontrollstrukturen (If, While, Do) unterscheiden sich kaum von Java, JavaScript und C. PERL erlaubt bedingt formatfreien Quellcode, in dem der Interpreter fehlende oder zusätzliche Einrückungen, Leerzeichen und Zeilenbrüche nicht moniert. Damit der Parser Befehlsblöcke erkennt, werden sie mit Semikolon getrennt.

Dromedar – das Maskottchen der Skriptsprache

Falsch interpretiert wird bei der Skriptsprache gelegentlich das Maskottchen. Es wird als Kamel bezeichnet, ist aber tatsächlich ein Dromedar. Eines der bekannten Referenzwerke „Programming Perl“ ist wegen des Maskottchens auf dem Buchdeckel als „Kamelbuch“ bekannt. Der Verleger Tim O’Reilly erklärte dazu, dass auch PERL über lange Strecken ohne Wasser auskäme. Hässlich sei es auch, meinte er. Die PERL Foundation hat sich hingegen für eine aufgeschnittene Zwiebel entschieden. Der gefährliche und tückische Komodowaran ist das Motto-Tier der PERL-Distribution „Active Perl“ des Unternehmens ActiveState.

Daten sichern_Patch Management

Hacker finden täglich neue Wege, um in Computersysteme einzudringen. In dieser Folge ergreifen immer mehr Unternehmen zusätzliche Sicherheitsmaßnahmen, um das Vertrauen von Kunden und Mitarbeitern in die Sicherheit der Daten zu erhalten. Unternehmen sind ferner darauf bedacht, das Risiko von Sicherheitslücken zu minimieren. Obwohl das Patch Management lange Zeit weitgehend vernachlässigt wurde, stellt dieses eine der wichtigsten Maßnahmen dar.

Was ist ein Patch?

Patch ist die englische Bezeichnung für „Flicken„. Im Hinblick auf das Thema Datensicherheit stellt das Patch ein Stück Programmcode dar, das ein bereits in einem System installiertes Programm verbessert und Sicherheitslücken schließt. Sobald ein Fehler oder eine Sicherheitslücke in einem bereits veröffentlichten Programm entdeckt wird, generiert sich ein Patch, um das Problem zu beheben, ohne das Programm insgesamt neu erstellen zu müssen.

Patches werden in Bugfixes, Hotfixes und Updates unterschieden. Ein Bugfix auf der einen Seite behebt einen grundsätzlichen Fehler im Programmcode einer Anwendung. Auf der anderen Seite ist ein Hotfix eine schnelle Behebung von kritischen Fehlern in Anwendungsprogrammen – beispielsweise bei Sicherheitslücken. Ein Update ist eine allgemeine Aktualisierung eines Softwareprogramms, bei dem die Programmfunktionen erweitert oder Fehler behoben werden.

Patches zur Behebung von Programmfehlern oder Sicherheitslücken erstellen und veröffentlichen die Herausgeber in der Regel zeitnah. Updates werden mehr oder weniger regelmäßig veröffentlicht. Ein Beispiel für die regelmäßige Bereitstellung von Updates ist Microsoft. Der Softwarehersteller veröffentlicht jeden zweiten Dienstag in einem Monat Updates für die Windows Betriebssysteme und andere Programme wie den Internet Explorer, EDGE und Office.

Die Aufgaben des Patch Management

Patches können auf nahezu jede Komponente der Infrastruktur in einem Unternehmen angewendet werden. Hierzu zählen Betriebssysteme, Router, Server und Anwendungsprogramme. Dabei müssen verschiedene Aspekte beachtet werden. Alleine durch die bloße Anzahl der erforderlichen Patches, um ein System auf dem neuesten Stand zu halten, kann ohne eine professionelle Verwaltung der Patches der Überblick schnell verloren gehen.

Das Patch Management ist ein Teilbereich des System-Managements bei IT-Systemen. Es beinhaltet die Beschaffung, das Testen, das Software Deployment und die Installation von Patches auf einem verwalteten IT-System. Zu den Aufgaben gehört darüber hinaus die Dokumentation des Wissensstandes über die für die verwalteten Anwendungen verfügbaren Patches. Zudem ist es Aufgabe zu entscheiden, welches Patch für welches System geeignet ist und sicherzustellen, dass alle Patches korrekt installiert werden. Nicht zuletzt muss im Rahmen des Managements nach der Installation ein Systemtest erfolgen. Alle damit im Zusammenhang stehenden Abläufe und Konfigurationen sind zu dokumentieren.

Patch Management – ungeliebt und unverzichtbar

Bei den für die IT verantwortlichen Mitarbeitern ist das Verwalten von Patches nicht sehr beliebt. Die zunehmende Zahl von auf Computern installierten Anwendungen und immer neue Sicherheitslücken machen eine häufige Installation von Patches und deren Dokumentation erforderlich. Insbesondere bei der Behebung von Sicherheitslücken durch Hotfixes ist Zeit ein wichtiger Faktor. Hotfixes sollten nach Möglichkeit zeitnah nach Erhalt installiert werden, um die Gefahr einer Cyberattacke oder eines Systemausfalls zu minimieren. Ein damit verbundener Zeitdruck ist sowohl für die IT-Mitarbeiter wie auch für die Kunden von IT-Dienstleistern mit Stress verbunden.

Unsere Lösung: Im Rahmen des Patch Managements nutzen wir eine spezielle Software, mit der wir die Installation aller erforderlichen Patches und die notwendigen Reboots der Systeme zeitgesteuert durchführen können. Die Installation der Patches erfolgt vollautomatisch außerhalb der normalen Geschäftszeiten gegen 22.30 Uhr. Nach der erfolgreichen Installation wird der Reboot des Systems gegen 01.30 Uhr durchgeführt.
Der Vorteil hierbei ist: Es findet keine Störung des Geschäftsbetriebes statt und bei der Aktualisierung des Systems muss niemand anwesend sein.

Die Vorteile eines professionellen Patch Managements

Zu den wichtigsten Vorteilen eines professionellen Patch Managements gehören:

Optimale Sicherheit

Der wichtigste und offensichtlichste Vorteil des Patch Managements ist die erhöhte Sicherheit. Patches werden häufig erstellt, um die Sicherheit der Daten zu gewährleisten. Die schnellstmögliche Anwendung eines Patches verringert das Risiko, dass die Datensicherheit in einem Unternehmen gefährdet ist. Datendiebstahl, rechtliche Probleme und dauerhafte Reputationsschäden können Unternehmen so weitestgehend vermeiden.

Verbesserte Produktivität

Produktivität steigern_Patch Management

Ein gepatchtes System ist effizient und vermeidet Ausfallzeiten. Ein einzelner Patch kann zu einer erheblichen Steigerung der Produktivität führen. Ein sorgfältiges Management-System kann die Effizienz des gesamten Unternehmens positiv verändern.

Einhaltung aller Compliance-Richtlinien

Mit der Zunahme der Sicherheitsverletzungen werden immer neue Vorschriften für die Datensicherheit erlassen. Unternehmen jeder Branche und jeder Größe sind zu deren Einhaltung verpflichtet. Bei Nichtbeachtung kann es zu rechtlichen Sanktionen für die Unternehmen kommen. Das Patch Management stellt also sicher, dass Unternehmen die aktuellen Standards einhalten.

Remote-Schutz für externe Geräte

Immer mehr Unternehmen ermöglichen ihren Mitarbeitern die Arbeit im Homeoffice. Und die Zahl der Mitarbeiter, die von unterwegs auf Unternehmensdaten zugreifen, wächst stetig. Unternehmen müssen die Daten, die bei Ihren Mitarbeitern zu Hause oder auf mobilen Geräten gespeichert sind, adäquat schützen. Patch-Management-Programme können Sie als Teil einer Remote-Workforce-Support-Lösung implementieren, um alle Geräte Ihres Unternehmens zu schützen, unabhängig davon, wo auf der Welt sich diese befinden.

Innovationen nutzen

Neue Technologien entwickeln sich schnell. Mit Patches und Updates, die in der Regel neue Funktionen enthalten, können Unternehmen mit den neuesten technologischen Entwicklungen Schritt halten. Darüber hinaus haben sie die Möglichkeit, ihre Dienste kontinuierlich verbessern, ohne, dass sie ein komplett neues Produkt kaufen müssen.