MOBILE TIMES Archiv Startseite : Archiv : Heft 21 : Artikel

Artikel aus Mobile Times 21

Wie sicher ist der Schlüssel?

Schlüsselfragen

In letzter Zeit gab es immer wieder die Debatten, wie sicher die Verschlüsselung von GSM ist - vor allem aus den USA kommen aus durchsichtigen Gründen immer wieder entsprechende Meldungen.

Was ist aber mit der Sicherheit eines Schlüssels überhaupt gemeint? Was ist überhaupt ein Schlüssel?


Verschlüsselung! Ein Wort, das bei Kindern zu leuchtenden Augen führt, und bei Erwachsenen die Erinnerung an den letzten James-Bond Film und die Sicherheit von Electronic Banking hochkommen läßt.

Was ist ein Schlüssel?

Abgesehen davon, daß es ein Stück Metall sein kann, werden auch Folgen von Zahlen und Buchstaben als Schlüssel bezeichnet, wenn sie dem Benutzer Zugang zu bestimmten Informationen ermöglichen. Dabei kann man grundsätzlich unterscheiden zwischen Zugangsberechtigungen, wie den PIN-Codes für Handy, Bankomat und Internet Account einerseits, und Chiffrierschlüsseln, wie bei Electronic Banking und Spionagediensten andererseits.

Man kann Schlüssel aber auch nach der Art der Aufbewahrung unterscheiden in "Geheime Schlüssel" und "Öffentliche Schlüssel". Dabei eignen sich öffentliche Schlüssel ganz sicher nicht für Zugangsberechtigungen, denn welchen Sinn hat eine Zugangsberechtigung, die jedem bekannt ist. Für Verschlüsselungen macht das allerdings sehr wohl einen Sinn, denn Verschlüsselungssysteme mit einem öffentlichem Schlüssel haben immer auch einen privaten Schlüssel. Mit dem öffentlichen Schlüssel werden die Texte verschlüsselt, mit dem dazugehörigen privaten dann wieder entschlüsselt.

Beide Systeme haben aber ihre Nachteile: Bei Verschlüsselungssystemen mit einem geheimen Schlüssel muß man sich überlegen, wie man den Schlüssel sicher vom Sender zum Empfänger bekommt. Denn sobald eine dritte Person eine Kopie des Schlüssels hat, kann man die Nachrichten genauso gut unverschlüsselt schicken.

Aus diesem Problem heraus entstand die Idee der asymmetrischen Verschlüsselungssysteme, bei denen mit einem öffentlichen Schlüssel verschlüsselt wird, und mit einem privaten Schlüssel entschlüsselt.

Wenn Herr Huber an Herrn Schmidt eine vertrauliche Nachricht senden möchte, so verwendet er zum Codieren den öffentlichen Schlüssel von Herrn Schmidt und weiß nun, daß nur Herr Schmidt mit seinem privaten Schlüssel die Nachricht entschlüsseln kann.

Doch gibt es auch hier ein Problem: woher weiß Herr Huber, daß es sich um den öffentlichen Schlüssel von Herrn Schmidt handelt? Denn angenommen, Herr Maier möchte die Korrespondenz zwischen Huber und Schmidt abhören. Was wird er nun tun? Wenn Herr Schmidt seinen öffentlichen Schlüssel an Herrn Huber sendet, wird er den abfangen und seinen eigenen öffentlichen Schlüssel weitersenden. Ebenso in der umgekehrten Richtung.

Wenn nun Herr Huber eine Nachricht an Herrn Schmidt schickt, wird er glauben, er verwendet den öffentlichen Schlüssel von Herrn Schmidt, dabei verwendet er den von Herrn Maier. Der kann daher ohne Probleme mit seinem privaten Schlüssel die Nachricht lesen, verschlüsselt sie dann mit dem öffentlichen Schlüssel von Herrn Schmidt - den er ja abgefangen hat - und schickt die Nachricht weiter. So kann er die gesamte Korrespondenz lesen, ohne, daß (1) die beiden etwas merken, (2) der eigentliche Codierungsmechanismus gebrochen wurde!


Blockchiffren und fließende Chiffren, Substitutions- oder Codebuch-Chiffren, Transpositions-Chiffren und Konfusionssequenzen, Monoalphabetische Substitution, Polyalphabetische Substitution und Dynamische Substitution - wahrscheinlich haben Sie den größten Teil dieser Ausdrücke noch gar nicht gehört. Hier finden Sie sie erklärt.


Wie verschlüsselt man?

Grundsätzlich unterscheidet man zwei Arten von Verschlüsselungen: Blockchiffren und fließende Chiffren. Bei Blockchiffren wird immer ein ganzer Block von Daten auf einmal verschlüsselt, und das auf immer die selbe Art und Weise. Ein Block muß dabei aber nicht immer die selbe Länge haben. Hingegen wird bei einer fließenden Chiffre jedes Zeichen einzeln verschlüsselt, dafür aber nicht immer auf die selbe Art und Weise.

Blockchiffren

Bei den Blockchiffren unterscheidet man:

Substitutions- oder Codebuch-Chiffren: Dabei wird jeder Block durch einen bestimmten anderen Block ersetzt. Ein Beispiel ist das Codebuch des Agenten, in dem für jedes Wort eine bestimmte Codephrase steht (davon kommt auch der Name). Das kann dabei von so blumigen Umschreibungen wie "Es stehen zwölf Rosen in Nachbars Garten" für "Es sind zwölf Schlachtschiffe im Mittelmeer" bis zu Ziffernkolonnen für jeden einzelnen Begriff gehen.

Ein anderes Beispiel wären Regeln wie "ersetzt jeden Buchstaben des Alphabets durch seinen Nachfolger". Die Regeln für solche Substitutionen sind bei computergestützter Codierung natürlich etwas komplizierter. Auch hat man als Basis für die Ersetzungen nicht die sechsundzwanzig Buchstaben des Alphabets, sondern die 256 möglichen Werte eines Datenbytes, was die Anzahl der Variationen natürlich drastisch erhöht.

Bei den heute üblichen Blockgrößen von 64 Bit und mehr ist eine einfache Substitutionstabelle nicht mehr möglich, sondern man setzt die Zahl die durch diese 64 Bit repräsentiert wird in eine Formel ein, die ein 64 Bit langes Ergebnis liefert.

Transpositions-Chiffren: Hier werden die einzelnen Zeichen innerhalb eines Blockes auf bestimmte Weise miteinander vertauscht. Zum Beispiel kann man jeweils zwei Zeichen miteinander vertauschen (aus "Mobile Times" würde damit "omibelt mise") oder zuerst die geraden Zeichen nehmen, dann die ungeraden ("mbl ieoietms).

Fließende Chiffren

Bei den fließenden Chiffren wird jedes Zeichen einzeln verschlüsselt, jedoch auf unterschiedliche Arten, wodurch sich im Prinzip eine höhere Sicherheit ergibt als bei Blockchiffren. Man unterscheidet folgende Methoden:

Konfusionssequenzen: Zu jedem Zeichen des Textes wird ein anderes Zeichen dazu addiert. Diese Codierung ist natürlich um so sicherer, je länger diese Sequenz ist. Außerdem sollte man die Sequenz nicht zu oft benutzen, denn ein möglicher Angriff auf ein Verschlüsselungssystem ist es, einen bekannten Klartext durch das System zu senden. Bei dieser Verschlüsselung subtrahiert man dann den Klartext vom Code und sieht dann sofort die Konfusionssequenz.

Das ist auch der Grund, warum man bei Electronic Banking für jede Überweisung einen eigenen Schlüssel verwendet: Die Chiffrierung mittels Konfusionssequenz und einmal-verwendbarer Schlüssel ist theoretisch die sicherste Form Nachrichten zu codieren.

Monoalphabetische Substitution: Das ist der Punkt, bei dem sich Blockchiffren und fließende Chiffren treffen. Denn dieses Verfahren verhält sich genauso wie eine Blockchiffre mit einer Blocklänge von 1.

Polyalphabetische Substitution: Hier hat man mehrere Substitutionstabellen, aus denen mit einem Zufallsgenerator ausgewählt wird. Die Startbedingung für den Zufallsgenerator wird dabei durch den Schlüssel festgelegt.

Dynamische Substitution: Hier hat man eine Substitutionstabelle, die sich ändert. Die n-te Stelle des Schlüssels bestimmt, welches Feld der Substitutionstabelle für die Codierung des n-ten Zeichens des Klartextes gewählt wird. Dieses wird dann mit dem ursprünglichen Klartextzeichen vertauscht. Da der Text meistens mehr Stellen hat, als der Schlüssel, kommt man irgendwann wieder zur n-ten Stelle des Schlüssels.

Die Substitutionstabelle enthält nun aber ein anderes Zeichen, nämlich das n-te Zeichen des ursprünglichen Textes. Eine Variante davon ist, daß nicht das Zeichen aus dem Klartext in die Tabelle gestellt wird, sondern das Klartextzeichen bestimmt, welche zwei Elemente der Substitutionstabelle vertauscht werden.

Za wos brauch' I des?

Ein schon angesprochenes Beispiel ist Electronic Banking, für das man aus verständlichen Gründen - schließlich geht es dabei um Geld - die sicherste Form von Verschlüsselung gewählt hat. Denn da jeder Schlüssel nur einmal verwendet wird, nutzt es dem Angreifer nichts, wenn er einen Schlüssel herausfindet, da dieser ja nur ein einziges Mal verwendet wird. Um die Gefahr vor der Verwendung abgefangener Schlüssel zu minimieren, bekommt man in einer Sendung ja auch nur eine geringe Zahl von Schlüsseln, und erst wenn diese verwendet wurden, die nächste Ladung, damit, wenn eine Ladung abgefangen wurde, der Schaden sich in Grenzen hält.

Ein weiteres Beispiel ist GSM, bei dem pro Zeitschlitz ein Block von 260 Datenbits übertragen wird, die mit einem 128-bit Schlüssel verschlüsselt werden. Diese Zahlen zeigen, daß die Sicherheit weitaus höher ist, als bei den gängigen Algorithmen im Internet. Denn der dort am häufigsten verwendete Algorithmus DES verwendet 64-bit Blöcke mit einem 56-bit Schlüssel. Aber auch "bessere" Systeme mit Schlüsseln bis zu 120 Bit verwenden immer noch 64-bit Blöcke, und das ist ein Unsicherheitsfaktor. Denn die Stärke eines Schlüssels bemißt sich aus seiner Länge, denn von der hängt es ab, wie lange man mit einer frontalen Attacke braucht, um das System zu knacken. Und wenn die Blöcke kürzer sind als der Schlüssel, ist es einfacher alle möglichen Blöcke durchzuspielen, als alle möglichen Schlüssel.

Jetzt werden vielleicht manche einwenden, sie hätten gelesen, daß es ja schon einen GSM-Scanner von der Firma Rhode gibt. Doch kann dieser GSM nicht entschlüsseln, sondern fungiert lediglich als BTS. Wenn man die Codes nicht kennt, kann man damit gar nichts abhören. Die Zielgruppe dieses Gerätes sind Polizeidienste, die die entsprechenden Codes nach einer richterlichen Verfügung ja vom GSM-Betreiber ausgehändigt bekommen werden.

Sind SIE sicher?

Aber egal welchen Algorithmus man nun tatsächlich verwendet, und egal ob der Schlüssel symmetrisch und geheim oder asymmetrisch und öffentlich ist: die Sicherheit der Daten ist nur so gut, wie die Leute, die mit den Daten umgehen. Denn in der Praxis werden mehr Geheimnisse durch Diebstahl einer Kopie, Bestechung, Erpressung oder einfach Schlamperei (Kennwort ist auf den Monitor geklebt) verloren, als durch das tatsächliche Knacken eines Codes.

Keine Chiffre kann etwas geheimhalten, das schon auf andere Art offengelegt wurde.

Michael Köttl


Verwendete Abkürzungen

BTSBase Transceiver Station
DESData Encryption Standard
GSMGlobal System for Mobile communication

Zukunftsfragen

Ein wesentliches Problem bei der Festlegung neuer Schlüssel - vor allem ihrer Länge - ist die Tatsache, daß man auch die Entwicklung der Rechenleistung von Computern einbeziehen muß, denn Schlüssel bleiben durch viele Jahre unverändert und werden damit für einen Computer, dessen Rechenleistung um ein Vielfaches die zur Zeit der Einführung des Schlüssels übliche übersteigt, immer leichter zu knacken - ein reines Zeitproblem, daß von den Entwicklern geradezu hellseherische Fähigkeiten verlangt. Denn machen sie den Schlüssel zu komplex, dann sind sie für Computer zur Zeit der Einführung praktisch nicht zu knacken, aber leider dauert es auch endlos, sie legal zu berechnen und damit werden sie für die Praxis unbrauchbar. Daher müssen die Codes mit den Computergenerationen mitwachsen: sie müssen skalierbar sein, der Algorithmus also unabhängig von der eigentlichen Schlüssellänge sein.




MOBILE TIMES Home Letzte Überarbeitung: Montag, 10. Februar 2003
Text © 1998 by Mobile Times; HTML © 2001-2003 by Mobile Times
Valid HTML 4.01!