Encryption
Encryption (deutsch: Verschlüsselung, Chiffrierung) umfasst verschiedene Verfahren, Methoden und Ansätze, um sensible Daten vor dem Zugriff durch Dritte zu schützen und eine sichere digitale Kommunikation zwischen zwei oder mehr Nutzern zu ermöglichen. Die Grundidee der Verschlüsselung besteht darin, dass Daten mithilfe eines Schlüssels in eine nicht lesbare Form umgewandelt werden, bevor zum Beispiel ein Austausch zwischen Sender und Empfänger stattfindet oder Daten gespeichert werden. Die umgewandelte Form wird als Chiphertext (Geheimtext) bezeichnet, die lesbare Form dagegen als Plaintext (Klartext). Nur wer den richtigen Schlüssel (Code) für den Verschlüsselungsalgorithmus kennt, hat Zugang zum Klartext und kann diesen in seine ursprüngliche Form enkodieren. Der Code muss deshalb geheim gehalten oder auf spezielle Weise verteilt werden, wenn Daten sicher übertragen oder gespeichert werden sollen.[1] Encryption ist ein Teilbereich der Kryptografie, wo es auch um die technische Umsetzung und die Sicherheit verschiedener Verschlüsselungsverfahren geht.
Allgemeine Informationen zum Thema
Encryption wird im Internet, dem Emailversand, der Programmierung und in Infrastrukturen auf verschiedenen Ebenen eingesetzt. Im Kontext der Industrie 4.0 und der digitalen Wirtschaft sind der Schutz von informationstechnischen Infrastrukturen, der Datenübertragung und der Privatsphäre der Nutzer wichtige Grundvoraussetzungen für den digitalen Wandel. Ob beim Abrufen einer Email, der Eingabe eines Passwortes oder beim Laden einer Website – fast überall in der digitalen Kommunikation sind Verschlüsselungsmethoden anzutreffen. Diese setzen an unterschiedlichen Stellen an:
- Bei der Datenübertragung, was als Data in Transit bezeichnet wird. Beispiele: End-to-End-Verschlüsselung in Instant-Messaging-Diensten oder Client-Server-Architekturen.
- Bei der Datenspeicherung, was mit Data in Rest beschrieben wird. Beispiele: Internet Service Provider oder Cloud Computing.
Encryption verbirgt den Nachrichteninhalt, indem das eingesetzte Verschlüsselungsverfahren den sogenannten Plaintext in Ciphertext überführt und für nicht autorisierte Personen, Clients oder Infrastrukturen unkenntlich macht. Dies erfolgt mithilfe von Verschlüsselungsalgorithmen, deren Ergebnis der Ciphertext ist. Im Grunde ist der Verschlüsselungsalgorithmus eine mathematische Funktion, die gemeinsam mit einem Schlüssel die Eingabedaten erhält. Wird die Funktion mit dem richtigen Schlüssel berechnet, entstehen chiffrierte Daten als Ausgabeformat.[2]
Wenn die Nachricht enkodiert werden soll, muss sie mit einem Schlüssel wieder in ihre ursprüngliche Form gebracht werden. Lediglich autorisierte Sender und/ oder Empfänger verfügen über das Wissen, wie die Nachricht und somit deren Inhalt entschlüsselt werden kann, was auch als Decryption (deutsch: Entschlüsselung) bezeichnet wird. Zwar könnte jeder Schlüssel prinzipiell aufgelöst werden, aber dafür sind ein Höchstmaß an Rechenleistung und ausführliches Wissen über Kryptografie notwendig.
Funktionsweise der Verschlüsselung
Je nach Verschlüsselungsverfahren existieren zahlreiche Algorithmen, Schlüssel und Modelle für die Überprüfung von Sendern und Empfängern. Denn Verschlüsselungsverfahren umfassen nicht nur einen oder mehrere Algorithmen, sondern auch Prinzipien der Schlüsselverteilung sowie die Prüfung der Authentizität und Integrität der Daten und der Kommunikationsteilnehmer.
Die Verfahren lassen sich zunächst nach der Art der Schlüsselverteilung voneinander unterscheiden:
- Symmetrische Verschlüsselung/ Private Key Encryption: Zur Ver- und Entschlüsselung wird ein und derselbe Schlüssel verwendet, der zudem sicher zwischen Sender und Empfänger ausgetauscht werden muss. Oft werden Dateien, Verzeichnisse und Laufwerke mit diesem Verfahren geschützt. Beispielsweise mit dem internationalen Standard AES, dessen Schlüssellänge bis zu 256 Bits betragen kann. AES kommt in WLAN-Netzen, der IP-Telefonie oder in PCs zum Einsatz, um sensible Daten vor dem Zugriff Dritter zu schützen. Die Daten werden entweder in Blöcke zerlegt und als Blockchiffre verschlüsselt, oder die Zeichenfolgen werden sequentiell als Stromchiffre kodiert.[3]
- Asymmetrische Verschlüsselung/ Public Key Encryption: Es werden zwei Schlüssel eingesetzt, die aber mathematisch miteinander verknüpft sind und ein Schlüsselpaar bilden. Der öffentliche Schlüssel kann mit jedem geteilt werden, der private Schlüssel muss geheim bleiben. Nur einer der beiden Schlüssel wird zur Entschlüsselung gebraucht, der andere ist für die Verschlüsselung zuständig. Der private Code entziffert den Geheimtext und überträgt ihn in einen lesbaren Klartext. Der öffentliche Code dient der Verschlüsselung und dem Verbergen des Inhalts. Wie die Codes oder Schlüssel konkret verteilt werden, ist abhängig von unterschiedlichen Faktoren wie dem Anwendungsfall und der IT-Infrastruktur. Das bekannteste Beispiel für diese Verschlüsselungsmethode ist das RSA-Kryptosystem, das einerseits Daten verschlüsseln und andererseits auch digitale Signaturen überprüfen kann. RSA findet Anwendung im Banking, der Telefonie sowie in unterschiedlichen Übertragungs- und Netzwerkprotokollen wie Ipsec, SSL/TLS oder SSH. RSA gilt zwar im Vergleich zu symmetrischen Verfahren als sicherer, ist dafür aber auch komplexer und deutlich langsamer in der computergestützten Verarbeitung.[4]
- Hybride Verschlüsselung: Die meisten modernen Verschlüsselungsverfahren nutzen eine Kombination dieser beiden Verfahren. Die Daten werden symmetrisch mit einem sogenannten Session-Key verschlüsselt, bevor dieser Schlüssel asymmetrisch mit einem öffentlichen Schlüssel verbunden wird, der für den Empfänger gedacht ist. Da der Empfänger den ursprünglichen Schlüssel nicht direkt kennt, aber den Ciphertext dank des zweiten Schlüssels entziffern kann, nutzt dieses Modell die Vorteile beider Verfahren. Die Daten können schnell verschlüsselt werden und das Verteilungsproblem wird durch ein asymmetrisches Schlüsselpaar gelöst.[5]
Weitere Sicherheitsziele
Encryption kann bestimmte Arten von Daten und Inhalten vor dem Zugriff durch Dritte schützen, aber ob eine Nachricht oder der Absender echt sind, lässt sich durch Verschlüsselung nicht feststellen. Einige Verschlüsselungsverfahren erfüllen deshalb weitere Ziele, die sich aus dem Schlüsselverteilungsproblem ergeben.[6]
- Integrität (Integrity): Der Ursprung einer Nachricht kann verifiziert werden.
- Authentizität (Authentication): Es kann festgestellt werden, dass eine Nachricht nach ihrem Versand nicht mehr verändert worden ist.
- Verbindlichkeit (Non-repudation): Der Sender der Nachricht kann den Versand nicht nachträglich abstreiten.
Diese Ziele werden durch den Einsatz verschiedener Methoden, Ansätze und Infrastrukturen erreicht. Zu erwähnen sind Zertifikate, digitale Signaturen sowie Public-Key-Infrastrukturen. Sie sollen sicherstellen, dass der Urheber einer Nachricht sowie die Nachricht selbst nicht gefälscht sind.
Teilweise basieren diese Methoden auf komplexen Hashfunktionen und -werten, die gegeneinander geprüft werden. So kann zum Beispiel ein Passwort oder eine PIN als Hashwert gespeichert werden, um bei Eingabe des Passwortes den Hashwert der aktuellen Zeichenfolge mit dem gespeicherten Hashwert zu vergleichen. Auf diese Weise wird die Korrektheit des Passwortes geprüft, ohne dass einer der Kommunikationsteilnehmer den Klartext zu sehen bekommt.
Bedeutung für die Programmierung
Das Thema Verschlüsselung betrifft nicht nur Programmierer und IT-Profis, sondern alle Akteure, die IT-Systeme auf irgendeine Weise verwenden. Unternehmen müssen sicherstellen, dass die Daten ihrer Kunden verschlüsselt abgespeichert werden. Nutzer müssen dafür Sorge tragen, dass sie ihre Passwörter geheim halten. Bewährte Verschlüsselungsverfahren bieten allerdings immer nur einen relativen Schutz, da kein IT-System vor Angriffen und Exploits gefeit ist. Generell kann jedes System geknackt werden – es kommt auf die Computerleistung und das Wissen um die Verschlüsselungsalgorithmen an. In der Praxis hat sich herausgestellt, dass Open-Source-Systeme offenbar einen besseren Schutz als proprietäre Systeme darstellen. Der Grund liegt darin, dass mehr Entwickler an solchen Systemen arbeiten und diese ständigen Belastungstests ausgesetzt sind.
Lediglich Quantencomputer sind hier eine Ausnahme: Quantencomputer stellen zwar für asymmetrische Verfahren eine Bedrohung dar, weil sie wesentlich schneller rechnen können. Für symmetrische Verfahren gilt dies jedoch nur bedingt. Der Grund ist der Nachweis, dass längere Schlüssel auch bei der Rechnung mit Quantencomputern ein relativer Schutz sein können. Je länger der Schlüssel, desto größer ist die erforderliche Rechenleistung, um diesen zu entziffern. Zu guter Letzt ist auch die Implementierung eines Verschlüsselungsalgorithmus ein kritischer Faktor: Niemand kann beim Aufsetzen eines Systems alle Schwachstellen antizipieren.
Einzelnachweise
- ↑ Symmetrische Kryptografie (Verschlüsselung) elektronik-kompendium.de. Abgerufen am 16.08.2016
- ↑ Verschlüsselung / Chiffrierung elektronik-kompendium.de. Abgerufen am 16.08.2016
- ↑ Understanding encryption and cryptography basics searchsecurity.techtarget.com. Abgerufen am 16.08.2016
- ↑ asymmetric cryptography searchsecurity.techtarget.com. Abgerufen am 16.08.2016
- ↑ Hybrides Verschlüsselungsverfahren kleines-lexikon.de. Abgerufen am 16.08.2016
- ↑ encryption searchsecurity.techtarget.com. Abgerufen am 16.08.2016
Weblinks
- Definition Verschlüsselung
- Definition Verschlüsselung
- Zum Verständnis: Wer sind Alice, Bob und Mallory?
- Kryptografische Verfahren und ihre Sicherheit (Übersicht)
- Leitfaden zum Thema Verschlüsselung für Unternehmen