PHP-Einfach.de PHP lernen leicht gemacht

Navigation
» Startseite
» Newsübersicht
» Kontakt
» Impressum

Community
» Forum
» Gästebuch

Tutorial
» PHP Tutorial
» MySQL Tutorial
» PHP
» MySQL
» Codeschnipsel

Downloads
» Einführung
» Scripts
» Command Board

Sonstiges
» md5-Generator
» Generator
» Wissenswertes
   » Was ist PHP?
   » Was ist md5?
   » Passwortsicher.
   » Quanten PCs


PHP lernen


Dieses Projekt wird unterstützt von
Lichteffekte Shop

 
Partner:

Artikel: Passwortsicherheit

Vor allem auf dem Gebiet der Passwortsicherheit/Schlüsselsicherheit gibt es sehr viele Unsicherheiten, deswegen versuche mit einen paar leicht verständlichen Beispielen die Sicherheit von Passwörter bzw. Schlüsseln (Keys) zu demonstrieren.

Wichtig, ich gehe hier immer von so genanten "Brute Force" Angriffen aus, dieser testet einfach alle theoretisch möglichen Kombinationen. Zwar hat man eine Erfolgrate von 100%, aber warum das dennoch oft nicht praktikabel ist, werdet ihr nachher sehen. Es gibt noch viele verschiedene Angriffe, zu viele und zu kompliziert sie alle hier aufzuführen, die evt. schneller als Brute Force gehen. Dazu aber nachher mehr.

Anzahl der Passwortmöglichkeiten
Zuerst sollte man natürlich wissen, wie viel mögliche Passwörter es z.B. mit 8 stellen gibt. Dazu braucht man zwei Zahlen, und zwar die Länge des Passwortes und die möglichen Zeichen im Passwort.
Die Formel dazu ist: Mög. ZeichenLänge des PW's, man schreibt es auch so: Mög. Zeichen ^ Länge des PW's.
Das heißt bei 36 möglichen Zeichen (kleine Buchstaben und Zahlen) und einer Passwortlänge von 7 ergibt sich daraus 78 Mrd. Möglichkeiten. Wenn das Passwort jetzt nur 1 Stelle mehr hat, so gibt es auch 36 (die möglichen Zeichen) mal so viele mögliche Passwörter.
Also braucht der Angreifer auch 36 mal so lange.

Bei der Berechnung sind auch immer noch ein Durchschnitts Wert angegeben, der ist immer nur halb so groß wie der maximal Wert. Denn wenn man 50% der möglichen Passwörter getestet hat, beträgt die Chance auch 50%, dass das richtige Passwort dabei war.

Wielange braucht man für....
Für ein 7 stellen Passwort mit 36 möglichen Zeichen braucht man mit einem neuen PC (3 GHz CPU) max. 1 Stunden (im Durchschnitt 0,5 Stunden), nicht gerade viel. Bei einem 8 stellen Passwort bräuchte man max. 1,9 Tage (im Durchschnitt 0,8 Tag). Das ist auch noch locker zu Knacken. Aber wenn man ein 10 Zeichen Passwort nimmt, bräuchte ein Angreifer max. 5,8 Jahre (im Durchschnitt 2,9 Jahre). Würde man jetzt noch Großbuchstaben benutzen (62 mögliche Zeichen) bräuchte man für ein 10 stellen Passwort schon 1330 Jahre. Ohne die Großbuchstaben nur 5,8 Jahre.

Also sollte man ein 10 stellen Passwort mit Kleinen- und Großenbuchstaben sowie Zahlen und am besten Sonderzeichen benutzen.
Wichtig Das Passwort darf nicht in einem Wörterbuch zu finden sein, dann dann knackt man selbst: Atombombentestgelände (21 Buchstaben) in ca. 5 Sekunde!.

Ein andere Trick sind sogenannte Passpharsen. Dies sind kleine Sätze die man als Passwort nimmt. Diese Passpharsen sollte keinen Sinn ergeben.
Z.B. so einen Satz: Das kleine Auto sägt den schönen Stuhl.
Hier ist es auch wieder wichtig, dass man mehrere Wörter benutzt. Denn sonst nimmt er für den Brute Force Angriff nicht Buchstaben, sondern ein Wörterbuch und kombiniert die Wörter dann damit. Aber für unser Passwort bräuchte man dann ca. 10 Billiarden Jahre.


Verschlüsselungsalgorithmen
Das soll es erst mal zu Passwörter gewesen seien, jetzt wollen wir uns mal den Verschlüsselungsalgorithmen, wie z.B. AES oder DES zuwenden.

Das alte DES (Data Encryption Standard), welches fast 30 Jahre lang der Standard war, hatte nur eine Schlüssellänge von 56 Bit, sprich 2^56 Möglichkeiten. Es gibt also ca. 72 Billarden. Hört sich viel an, ist aber nicht wirklich viel.

Mit dem Supercomputer Deep Crack konnte man so einen Schlüssel in ca. 4,5 Tagen knacken. Dieser Supercomputer ist sogar noch einiger maßen Preiswert, 1998 (vor 6 Jahren!) lag der Preis noch bei ca. 130 000 US-Dollar (für Hardware), heute würden man ihn für schätzungsweise 20 000 US-Dollar erhalten.
Wenn man sich vorstellt, was für Wertvolle Informationen verschlüsselt werden, wäre für Datenräuber so eine Anschaffung schon Interessant.

Also musste eine neuer Standard her, der sich jetzt AES (Advanced Encyrption Standard). Dieser Algorithmus, sowie alle anderen modernen Verfahren bietet viel größere Schlüssel an. Bei AES kann man zwischen 128 Bit, 192 Bit oder 256 Bit wählen.

128 Bit ist doch etwas mehr als doppelt soviel wie 56 Bit, was ist daran jetzt sicherer?
Das stimmt zwar, der Schlüssel ist zwar gut doppelt solang, aber mit jedem Bit mehr verdoppelt sich der Schlüsselraum.
Sprich mit 128 Bit hat man 18 Trillionen mal mehr Möglichkeiten als mit 56 Bit Schlüsseln. Es gibt also 3,4 * 10^38 verschiedene Schlüssel .
Das ist eine Zahl die wir uns gar nicht Vorstellen können.

Würde man sich 1 Mio. Euro Auszahlen, dann wäre der Stapel ca. 1 Meter hoch (ist nur ein Beispiel). Der Bargeldstapel von 3,4 * 10^38 Euro wären dann ca. 36 Billiarden Lichtjahre hoch (10^32 Meter).
Das wäre rund 367 Milliarden mal höher als die Milchstraße breit ist.

Man könnte den Schlüssel doch per Zufall erraten?
Das ist äußerst unwahrscheinlich, eher werden im Lotto 5 mal nacheinander die gleichen Zahlen gezogen.
Noch mal zum Geldbeispiel zurück. Wenn man unter den vielen vielen Geldscheinen jetzt einen markiert, wie hoch ist dann die Wahrscheinlichkeit, dass jemand anders den gleichen Geldschein wieder herauszieht?

Per Brute Force knacken?
Wenn man jetzt 1 Mrd. Computer hat, wovon jeder pro Sekunde 1 Mrd. Key's testet, so bräuchte man immer noch im Durchschnitt 5 Billionen Jahre um an den Schlüssel zu gelangen.

Mit der klassischen Computer ist es unmöglich, per Brute Force an den Key zu gelangen.

Erst recht stellt man sich 256 Bit Keys (2,3*1077 Möglichkeiten) vor.
Reinhard Wobst gibt in seinem Buch Abenteuer Kryptographie dazu folgendes Gedankenexperiment: Angenommen wir könnten quantenmechanische Effekte ausnutzen, die ein Elektron zur Dechiffriereinheit (Schlüssel knacken) umfunktioniert, und jedes Elektron mit einer Taktfrequenz von 1 Billiarden (1015) Hz arbeitet (das entspricht bereits der Frequenz von harten Röntgenstrahlen!). Dann müsste der so konstruierte Wundercomputer, der diese Aufgabe innerhalb 1 Jahres löst, eine Masse von 1028g haben, (ein Elektron wiegt etwa 10-27g), also wäre der Computer ca. so schwer wie die Erde.
Ersetzen wir die Elektronen durch Molekühle (für Nicht-Physiker: Elektronen sind die kleinen Teile, die um einen Atomkern "fliegen". Elektronen haben eine deutlich kleinere Masse als Atomkerne), landen wir beim Gewicht bei ca. 1033g und das entspricht einer Sternenmasse. Bei unseren heutigen Vorstellungen würde der Computer dagegen so schwer sein, dass er ein schwarzes Loch bilden müsste, innerhalb unsere Aufgabe vielleicht gelöst würde, doch das Resultat könnten nie mehr nach außen dringen, wie es bei schwarzen Löchern so üblich ist.

Eine weitere erstaunliche Zahl ist, dass Schätzungsweise 2223 Atome in unserer Galaxie vorhanden sind. Ein 256 Bit (2256) Schlüssel bietet ca. 8 Mio. mal so viele Möglichkeiten wie Atome in der Galaxie vorhanden sind.

Asymetrische Verschlüsselungsverfahren
Asymmetrische Verschlüsselungsverfahren sind Algorithmen, wo man zum Ver- und Entschlüsseln verschiedene Schlüssel benötigt.
Der bekannteste Algorithmus ist RSA, welcher auch in der Software PGP benutzt wird. Dieser Algorithmus arbeitet mit extrem großen Primzahlen. Man kann 2 Primzahlen extrem einfach multiplizieren, aber eine Zahl in deren Primfaktoren zu zerlegen ist extrem aufwendig.
Diese Eigenschaft nutzt RSA (etc.) aus, es multipliziert 2 extrem große Primzahlen (mit mehr als 600 Stellen), die dabei entstehende Zahl nennt man öffentlicher (open/public) Key. Diesen Key darf jeder wissen und wird zum Verschlüsseln von Nachrichten benutzt.
Dann gibt es noch den geheimen Key, diesen Key hat nur der Ersteller des öffentlichen Keys, und nur mit diesem Key kann man die Nachricht wieder entschlüsseln.

Das sollte erst mal reichen, denn die verschiedenen Formeln dahinter sind recht kompliziert.

Bei RSA sollte man mindestens einen Key von der Länge 2048 Bit benutzen.
Heutzutage gelten 1024 Bit's Key's für Asymmetrische Verfahren (DES und AES sind Symmetrische, also wird nur 1 Key benutzt) als "nicht mehr so sicher".
Bei Symmetrische Verfahren sollten es mindestens 128 Bit sein.

Fazit
Wie wir sehen ist es oft unmöglich per Brute Force (Rohe Gewalt) an den Schlüssel zu gelangen, denn die Zahlendimensionen sind so gigantisch, dass das Knacken viel zu lange dauert.
Deswegen ist es umso wichtiger, dass die Algorithmen gegen die ganzen anderen Angriffe (außer Brute Force) sicher sind. Denn wenn auch der Key (Symmetrisches Verfahren) 800 Bit lang ist, heißt dies lange noch nicht das man den verschlüsselten Text praktisch nicht knacken kann. Manche Algorithmen sind mit "moderneren Angriffen" so unsicher, dass man sie innerhalb weniger Sekunden knacken kann, obwohl der Schlüssel lang genug ist.
Bei manchen Verfahren kann man sogar per Hand einen 800 Bit Schlüssel innerhalb kürzester Zeit herausfinden.
Deswegen sollte man sich niemals von gigantischen Schlüsseln, z.B. 200 000 Bit, täuschen lassen, denn dies ist meistens ein Zeichen dafür, dass der Algorithmenentwickler keine Ahnung hat.
Denn wirklich gute Kryptografen sind sich bewusst, dass es 128 Bit/256 Bit Schlüssel auch tun und das es vor allem auf den Algorithmus ankommt.

Empfohlene Schlüssellängen:
Symmetrische Verfahren: Mindestens 128 Bit, bei Verfahren die mindestens 500 Bit Keys fordern sollte man aufpassen.
Asymmetrische Verfahren: Mindestens 2048 Bit, bei Verfahren die mindestens 8000 Bit Keys fordern sollte man aufpassen.

Wo dran erkenne ich "gute Verschlüsselungsprogramme"
Dies ist äußerst schwer, vor allem wenn man nur sehr wenig über Verschlüsselung weiß, aber es gibt ein paar Punkte die man immer beachten sollte:

  • Der Hersteller sollte den Verschlüsselungsalgorithmus nennen. Wenn es ein "Geheimer" ist, niemals dem Hersteller vertauen, denn jeder gute Algorithmus ist bekannt. Das hat den Grund, dass dann alle Kryptografen (die so etwas entwickeln) diesen Algorithmus untersuchen können und Schwachstellen melden können. Wenn er "Geheim" ist, ist dies ein Zeichen darauf das ein Anfänger ihn entwickelt hat, und somit sehr unsicher ist.
    Anfänger versuchen oft durch Geheime Entwicklungen die Schwächen des Algorithmus zu verstecken.


  • Das Wort "absolute Sicherheit" gibt es in keinem praktischem Verfahren. Sichere Verfahren nennt man Mathematisch sicher oder Beweisbar sicher. Das bedeutet, dass diese Verfahren in keiner vorstellbaren Zeit geknackt werden kann. Wenn "absolute Sicherheit" auftaucht, sollte dies extremes Misstrauen erwecken.

    Es gibt nur ein absolut sicheres Verfahren, den absolut zufälligen einmaligen One-Time-Pad. Dabei ist der Schlüssel genau solang wie der zu verschlüsselnde Text.
    Dieser ist aber so unpraktisch, dass man das Verfahren nicht benutzt. Denn wenn man eine Festplatte verschlüsselt, braucht man eine zweite Festplatte, nur um den Schlüssel zu speichern.
    Die Schlüsselgenerierung würde weitere, viel größere Probleme aufwerfen, denn Computer können keine absolut zufälligen Zahlen "erstellen".


  • Der Hersteller sollte wissen, ob sein Algorithmus ein Symmetrisches, Asymmetrisches Verfahren ist. Außerdem noch ob es sich um eine Blockchiffrierung oder eine Stormchiffierung handelt. Eine weiter Frage wäre z.B. über die Betriebsart, es gibt ECB, CBC, CFB und OFB.
    Sie müssen diese Verfahren nicht unbedingt verstehen, aber ein guter Entwickler weißt damit etwas anzufangen und kann ihnen eine Antwort geben. Unerfahrene können damit auch nichts Anfangen.


  • Der Hersteller sollte nicht mit extrem großen Schlüssellängen angeben, die oben genannten Werte reichen für unsere heutige Vorstellungen der Physik aus.


  • Der Schlüssel sollte nur im Kopf "gespeichert" sein, niemals auf dem PC.


Algorithmen
Folgenden Algorithmen sind öffentlich bekannt und somit auch gut Untersucht. Bis zum jetzigen Zeitpunkt gab es keinen öffentlich bekannten realistischen Angriff gegen einen der Algorithmen, soweit mir das bekannt ist:

Symmetrische Verfahren:
  • AES/Rijndael
  • Blowfisch
  • MARS
  • IDEA
  • RC4
  • RC6
  • Serpent
  • Twofisch
  • Bei WLAN: WPA anstatt WEP benutzen (sind keine Algorithmen, sondern Protokolle)


Asymmetrische Verfahren:
  • RSA

Hier wurden nur die bekanntesten Algorithmen genannt, es gibt noch viele weiter Algorithmen die sehr sicher sind.




Autor Andavos

News
13.08 - » Spam im Gästebuch
Endlich Schluss mit dem Spam

08.12 - » Clanletter 2.0
Clanletter wurde komplett neu programmiert

01.09 - » Command Board 1.0 - 2.0
Das Command Board 1.0 Beta 2.0 ist erschienen


Mehr

Forum
» Daten mit Auswahlfeld in Datenban ...

» Dynamisch PHP Datei erstellen

» Problem PHP-Kontaktformular







© PHP-Einfach.de 2003 - 2014