| Verschlüsselung |
Überblick SchlüsselalgorithmenWas für Verschlüsselungsverfahren gibt es nun?Im Prinzip gibt es zwei unterschiedliche Verschlüsselungsalgorithmen, die Du Dir merken solltest:
Dabei musst Du Dir folgendes Merken: Symmetrische Verschlüsselungsverfahren sind mathematisch nicht so aufwendig wie asymmetrische Verschlüsselungsverfahren und deshalb recht schnell "ONLINE" durchzuführen. Die symmetrischen Verschlüsselungsverfahren haben zwei wesentliche Nachteile gegenüber dem asymmetrischen Verschlüsselungsverfahren:
Welche Schlüsselalgorithmen sind heute im Einsatz?Die gebräuchlichsten Verschlüsselungsverfahren haben wir oben schon erwähnt. Die meisten Entwicklungen auf dem Gebiet der Schlüsselalgorithmen kommen i. d. R. aus den USA und dort von der Firma Data Security Inc An dieser Stelle wollen wir nur die bekanntesten Algorithmen vorstellen und unterscheiden diese in Folge zwischen den asymmetrischen Verfahren (Public Key Verfahren) und den symmetrischen Verfahren (Secret Key Verfahren). Fangen wir mit den symmetrischen Verfahren (Secret Key Verfahren) an!DES (Data Encryption Standard)Ist bis heute die Nummer 1 unter den Verschlüsselungsalgorithmen. Inzwischen wird DES nicht mehr als unbedingt sicher betrachtet. Um den erhöhten Sicherheitsanspruch weiter gerecht zu werden, wurde das 3DES (TripelDES)-Verfahren eingeführt. Der Unterschied ist, dass die Schlüsselstärke von 56bit (DES) auf 112bit (2DES) bzw. 168bit (3DES) angehoben wurden. DES ist aufgrund der Geschwindigkeit sehr gut für Onlineverschlüsselung (z. B. im Internetbanking) geeignet. Das Zahlungssystem SET und die EMailverschlüsselung S/MIME und stellenweise auch SSL arbeitet auf der Basis von DES! RC2, RC4 und RC5RC2, RC4 und RC5 werden heute immer häufiger als Ersatz zum DES verwendet zum Beispiel der RC2 bei S/MIME der RC4 bei SSL-Verbindungen und der RC5 bei SSH. Der Vorteil von RC5 gegenüber DES ist zum einen seine erhöhte Sicherheit und die variable Schlüsselwortlänge. IDEAIDEA ist wie der RC4 und RC5 eine Alternative zum DES und arbeitet auf der Basis von 128bit Schlüsseln. BlowfishBlowfish ist ein frei einsetzbares Verschlüsselungsverfahren mit einer variablen Schlüssellänge von 32 bis 448 Bit. Durch die hohe Schlüssellänge zählt Blowfish als relativ sicher. AES (Advanced Encryption Standard)AES (Advanced Encryption Standard) ist das offizielle Nachfolgeverfahren von DES. Bei einem Wettbewerb im Jahre 2000 hat sich schließlich der belgische Algorithmus RIJNDAEL durchgesetzt. Die Juroren begründeten ihre Entscheidung mit den Argumenten, Rijndael sei sicher, verhältnismäßig leicht in Soft- und Hardware zu implementieren und es biete somit ausreichenden Schutz für die nächsten 100 Jahre. (Das ist natürlich eine grobe Schätzung). Damit sind im wesentlichen die bekanntesten symmetrischen Verfahren genannt. Unter den asymmetrischen Verfahren (Public Key Verfahren) finden sich folgende Algorithmen: RSA (Rivest Shamir Adelman)Das RSA-Verfahren ist eigentlich das bekannteste Verfahren und auch das Flagschiff unter den asymmetrischen Verfahren. Ab einer Schlüssellänge von 2048bit kann es als sicher eingestuft werden. Das RSA-Verfahren wird i. d. R. zur Verschlüsselung und Übertragung von symmetrischen Sessionkeys verwendet, weil der mathematische Aufwand für eine Onlineverschlüsselung einfach zu groß ist. Die folgenden asymmetrischen Verfahren sind nicht so weit verbreitet, sollen aber der Vollständigkeit halber erwähnt werden. Diffie-Hellmann, ElGamal, Elliptische Kurven, DSS (Digital Signature Standard) Viele der hier erwähnten Schlüsselalgorithmen sind schon in der WindowsAPI enthalten und können sofort verwendet werden. Leider ist die Schlüsselstärke wegen der Exportbeschränkung der USA stark reduziert (40 Bit). Inzwischen gibt es aber viele Anleitungen und auch Quellcode für die Implementation der gängigen Verfahren.. Fehlt was? Ist etwas nicht gut erklärt? Beitrag einreichen... Weitere Infos (extern)ISIS-MTT : Neuer Standard für kompatible elektronische Signaturen! Im Auftrag des Bundesministeriums für Wirtschaft und Technologie (BMWi) haben der TeleTrusT e.V. und die Trustcenter-Vereinigung T7 einen einheitlichen Standard für elektronische Signaturen erarbeitet. Bisher existierten in Deutschland zwei nicht miteinander kompatible Spezifikationen: Die Industrial Signature Interoperability Specification (ISIS) der AG Trustcenter e.V. und MailTrusT (MTT) des TeleTrusT e.V. Die Spezifikation des neuen gemeinsamen Standards ISIS-MTT Version 1.0 steht seit heute im Web zur freien Verfügung. Mehr Infos... Rijndael löst DES - Standard ab!Der neue, angeblich unknackbare Verschlüsselungs-Code Rijndael soll dem E-Commerce neuen Schwung verleihen. Die deutschen Krypto-Firmen Utimaco und Demcon bieten erste Rijndael-Programme zum Download an. Mehr Infos... Schöne Beispiele zum Verschlüsseln und Signieren! Solltet Ihr euch unbedingt mal ansehen!http://www.aspencrypt.com/livedemo.html Überblick HashalgorithmenWas heißt überhaupt Hashen?Sicherlich nicht ein Computer mit einer Tüte!!! - Hashen heißt, eine Art "Quersumme" über Deine Daten zu bilden. Das Ergebnis ist je nach Hashverfahren ein Ergebnis fester Länge (z. B. 160 Bit). Egal, ob Deine Daten nun 1KByte oder 1MByte groß sind. Dieses Hashergebnis ist vergleichbar mit einem Fingerabdruck Deiner Daten. Wenn Du nun auch nur ein Zeichen in Deinen Daten (z. B. Worddokument) änderst und wieder einen Hashwert bildest, ist dieser anders als der Erste. Du kannst also mit Hilfe des Hashwertes feststellen, ob irgendwas an Deinen Daten (z. B. während einer Übertragung) verändert worden ist. Welche Hashalgorithmen sind heute im Einsatz?Eines der bekanntesten und sicherlich auch noch weit verbreitetesten Verfahren ist das MD (Message Digest) von RSA (Data Security Inc. MD2MD2 ist nicht mehr sicher! MD4MD4 ist nicht mehr sicher! MD5MD5 ist im Einsatz, allerdings auch mit bekannten Sicherheitsproblemen Der MD5-Algorithmus erzeugt über die Daten einen 128 Bit Hashwert. SHA Aufgrund der bekannten Sicherheitsprobleme im MD-Verfahren wurde von der US-Regierung ein neues Verfahren veröffentlicht. Das SHS/SHA (Secure Hash Standard/Algorithm) erzeugt über die Daten einen 160 Bit Hashwert und zeigt bis heute noch keine Sicherheitsprobleme. Diese beiden Verfahren (MD5 und SHA) werden heute in den Internetanwendungen (Zertifikate) verwendet. RipeMD160 Ein eher deutscher Alleingang ist das RipeMD160-Verfahren. Dieser Algorithmus ist wohl auch recht sicher, weil es für potentielle Hacker keinen Anlass gibt, diesen zu knacken. Der RipeMD160 kann von den Internetanwendungen nicht interpretiert werden. UnterschiedeNoch mal alles ganz langsam zum Mitdenken!Oben wurden nun PublicKeyVerfahren (asymmetrische), SecretKeyVerfahren (symmetrische) und HashVerfahren vorgestellt. Von den genannten Verschlüsselungsverfahren (asymmetrische und symmetrische) ist das asymmetrische PublicKeyVerfahren auf jedem Fall die sicherste Verschlüsselungsmethode. Der Nachteil ist der Hohe mathematische Aufwand und damit die Schwierigkeit, große Datenmengen ONLINE zu verschlüsseln. Aus diesem Grund greift man auf die symmetrischen SecretKeyVerfahren zurück, die mathematisch nicht so aufwendig sind. Wie der Name SecretKey schon sagt, darf der Schlüssel bei den symmetrischen Verfahren keinem anderen als Dir bekannt werden. Hier bietet sich nun die Kombination aus dem SecretKey und dem PublicKey Verfahren an. Zum Aushandeln eines SecretKey's (SessionKey) wird das PublicKeyVerfahren verwendet und zur anschließenden Datenverschlüsselung das SecretKeyVerfahren mit dem SessionKey als SecretKey. In diesem Fall wird der SecretKey zum Beispiel für 3DES von einem Zufallszahlengenerator mit einer Länge von 24Byte erzeugt und wird nur für diese eine Session verwendet. Damit auch Dein Gegenüber in den Besitzt des SecretKey's kommt, wird dieser mit dem asymmetrischen Verfahren verschlüsselt und auf der Empfangsseite mit dem PrivateKey entschlüsselt. Der PrivateKey gehört immer mit dem PublicKey zusammen. Wir sprechen hier auch von einem Schlüsselpaar, welche beide für eine Ver- und Entschlüsselung nach dem asymmetrischen Verfahren notwendig sind. Daten, die mit dem PublicKey von A verschlüsselt worden sind, können nur mit dem PrivateKey von A wieder entschlüsselt werden. Wie der SecretKey, darf der PrivateKey niemand anderem als dem Inhaber bekannt sein. Der Vorteil bei dem Schlüsselpaar ist, dass der Schlüssel nicht übertragen werden muss, wie es bei dem symmetrischen Verfahren notwendig ist. Selbst wenn ich den SecretKey persönlich meinem Partner aushändige, so ist doch schon mind. 1 fremde Person im Besitzt meines geheimen Schlüssels. Welche Rolle spielt nun das Hashverfahren in diesem Fall? - Das Hashverfahren ist kein Ver- oder Entschlüsselungsverfahren. Es wird nach einem mathematisch festgelegten Mechanismus (HashVerfahren) eine Art "Quersumme" über die Daten gebildet. Unabhängig von der Länge der Daten (100 Byte, 1000 Byte oder 1 MByte), wird ein fester Fingerabdruck dieser Daten mit einer festen Länge von z. B. 160 Bit (RipeMD160) gebildet. Wenn Du nun z. B. einen Hashwert über Deine EMail gebildet hast und nur ein Zeichen in Deiner EMail veränderst, dann verändert sich auch der Hashwert. Der Hashwert beinhaltet keine großen Datenmengen und kann so vor der Übertragung mit einem asymmetrischen Schlüsselverfahren ONLINE verschlüsselt werden. Nur der Empfänger dieser EMail kann nun mit seinem PrivateKey den ursprünglichen Hashwert wieder herstellen und prüfen. Der Empfänger kann nun seinerseits wieder einen Hashwert über Deine Daten (EMail) bilden und vergleicht diesen mit dem verschlüsselt übertragenden Hashwert. Stimmen beide Werte überein, so wurde Deine EMail oder Daten unterwegs nicht verfälscht. BeispielBesser als alle Erklärungen - Ein Beispiel!Aus Erfahrung wissen wir, dass so eine trockene Materie sehr langweilig und kaum zu verstehen ist. Am besten lässt sich der Zusammenhang an einem Beispiel erklären. Gegeben sei eine Verbindung zwischen Dir und Deinem Freund Bernd, die nicht abgehört werden soll: Du bist mit dem Computer von Deinem Freund übers Internet verbunden und Ihr wollt eine verschlüsselte Übertragung durchführen. Dafür müsst Ihr beide im Besitzt von einem Zertifikat bzw. von einen Schlüsselpaar (Secret- und Public-Key) sein. Schritt 1: (Authentisierung)Zuerst willst Du ja ganz sicher sein, dass Dein gegenüber auch wirklich Dein Freund Bernd ist und dieser will vermutlich auch ganz sicher sein, dass Du der bist, der Du vorgibst zu sein. Diese Aktion nennt man Authentisierung!!! Wie läuft das jetzt ab? Du verschlüsselst z. B. eine 24Byte lange Zufallszahl mit dem PublicKey Deines Freundes und schickst Ihm diese. Dieser kann nun diese Zufallszahl nur mit seinem PrivateKey wieder richtig entschlüsseln und schickt sie Dir zurück. Du vergleichst die Zufallszahl, die Du verschlüsselt und gesendet hast mit der Zahl, die Du wieder zurückbekommen hast. Stimmen die beiden Zahlen überein, so ist das am anderen Ende der Leitung wirklich Dein Freund. Denn nur er konnte mit seinem PrivateKey die Zahl richtig entschlüsseln. Das gleiche macht nun Dein Freund mit Dir und wenn alles gut gelaufen ist, ist die Authentikation positiv. Bei diesem Manöver hat weder Dein PrivateKey noch der PrivateKey Deines Freundes den Computer verlassen und konnte so auch nicht abgehört werden. Schritt 2: (SessionKey aushandeln)Dieser Schritt wird i. d. R. in Schritt 1 eingebaut. Aber zum besseren Verständnis noch mal Separat behandelt. Einer von euch muss nun einen SessionKey vorschlagen. Das läuft ähnlich wie im Schritt 1 ab. Einer von euch generiert wieder eine 24Byte Lange Zufallszahl und verschlüsselt diese mit dem PublicKey des anderen. Der andere entschlüsselt ihn mit seinem PrivateKey und ihr habt beide einen 24Byte Langen SessionKey für eine TripelDES-Verschlüsselung ausgehandelt. Der SessionKey ist dabei nur RSA-Verschlüsselt übers Netz gegangen und ist somit relativ (für einen endlichen Zeitraum) sicher. Schritt 3: (Daten verschlüsseln)Ihr könnt nun die zu übertragenden Daten mit einem TripelDES-Verfahren verschlüsseln und übers Netz schicken. Euer Freund kann dann mit dem SessionKey die Daten nach dem gleichen TripelDES-Verfahren wieder entschlüsseln. Warum diesen Umweg mit dem SessionKey und nicht direkt mit dem RSA-Private- bzw. -Public-Key?Bei dem RSA-Verfahren handelt es sich um ein asymmetrisches und sehr mathematisch aufwendiges Verschlüsselungsverfahren. Auch mit einem sehr schnellen Computer dauert es Ewigkeiten große Datenmengen RSA zu verschlüsseln und zu entschlüsseln. Dein Freund müsste gegebenenfalls Stunden oder Tage auf das Ergebnis warten. Ein 24Byte Langer Datenstream lässt sich jedoch recht schnell mit dem RSA-Verfahren ver- und wieder entschlüsseln. Nun kommt das DES bzw. TripelDES-Verfahren zum Einsatz. Bei diesem Verfahren handelt es sich um ein symmetrisches Schlüsselverfahren und ist auch mathematisch nicht so aufwendig. Damit kannst Du im Prinzip ONLINE die Daten ver- und wieder entschlüsseln. |