Rodelhob: Passwörter Sicherheit

Hi, ich habe eine vermutlich ziemlich dumme Frage.

Die Wahrscheinlichkeit, dass ein _vollkommen_ unintelligenter Algorithmus ein Passwort knacken (=Passwort erraten) kann, ist abhängig von zwei Faktoren:

a) der Länge des Passworts
b) der Anzahl der Zeichen des genutzen Alphabets (=Liste der erlaubten Zeichen)

die Verteilung der Zeichen innerhalb des Passworts ist bei solch einem Algorithmus egal.

ob ein Passwort nun "aaa" heisst, oder "abc" bei einem gegebenen bzw. erlaubten Alphabet (a,b,c) ist rein von der Wahrscheinlichkeit her egal. Wie gesagt, ich rede von unintelligenten Algorithmen, die bar jedweder Logik oder Spielereien wie Regenbogentabellen sind etc.

Daraus ergibt sich zum Beispiel, dass ein Passwort, welches als erlaubte Zeichen nur Zeichen des Ascii-Zeichensatzes zulässt, per se unsicherer ist, als ein Passwort, welches den Unicode-Zeichensatz zulässt. Ganz einfach aus dem Grund, dass ein potentieller Angreifer, (der im Idealfall Kenntnis von dem zugrundeliegenden Alphabet hat), sehr viel mehr Möglichkeiten durchgehen muss.

Frage:
wenn ich als Hacker ein Passwort "knacken" wollte, von welchem Alphabet würde ich ausgehen? Das ist doch eine der wichtigsten Fragen, oder nicht?

Oder sehe ich das falsch?

  1. Hallo,

    ich habe eine vermutlich ziemlich dumme Frage.

    ein wenig seltsam vielleicht, aber dumm finde ich die Frage keineswegs.

    Die Wahrscheinlichkeit, dass ein _vollkommen_ unintelligenter Algorithmus ein Passwort knacken (=Passwort erraten) kann, ist abhängig von zwei Faktoren:

    a) der Länge des Passworts
    b) der Anzahl der Zeichen des genutzen Alphabets (=Liste der erlaubten Zeichen)

    Die Liste der erlaubten Zeichen spielt nur dann eine Rolle, wenn sie bekannt ist und man den "unintelligenten" Algorithmus entsprechend einschränken kann.

    die Verteilung der Zeichen innerhalb des Passworts ist bei solch einem Algorithmus egal.
    ob ein Passwort nun "aaa" heisst, oder "abc" bei einem gegebenen bzw. erlaubten Alphabet (a,b,c) ist rein von der Wahrscheinlichkeit her egal. Wie gesagt, ich rede von unintelligenten Algorithmen, die bar jedweder Logik oder Spielereien wie Regenbogentabellen sind etc.

    Ja. Die Zahl der Möglichkeiten ergibt sich aus der Zahl der erlaubten Zeichen, potenziert mit der Länge des Passworts. Da man auch die tatsächliche Länge nicht kennt, muss man diese Potenzen noch bis zu einer angenommenen Maximallänge aufsummieren.
    Nimmt man als sehr einfaches Beispiel ein "Passwort", das nur aus maximal vier Ziffern (0..9) bestehen darf, dann ergeben sich daraus

    10⁴ + 10³ + 10² + 10¹ + 10⁰ = 11111

    Möglichkeiten. Die letzte, die sich aus dem Term 10⁰=1 ergibt, entspricht dem leeren Passwort, das man aber vermutlich ausschließen kann. Ansonsten ist jede der verbleibenden 11110 Möglichkeiten statistisch gesehen gleich wahrscheinlich, aber wenn man Nutzer-Intelligenz mit einbezieht, wird die Wahrscheinlichkeit wohl mit der Stellenzahl stark abnehmen.

    Daraus ergibt sich zum Beispiel, dass ein Passwort, welches als erlaubte Zeichen nur Zeichen des Ascii-Zeichensatzes zulässt, per se unsicherer ist, als ein Passwort, welches den Unicode-Zeichensatz zulässt. Ganz einfach aus dem Grund, dass ein potentieller Angreifer, (der im Idealfall Kenntnis von dem zugrundeliegenden Alphabet hat), sehr viel mehr Möglichkeiten durchgehen muss.

    Nur wenn die Menge der erlaubten Zeichen bekannt ist. Falls nicht, muss man als Hacker dennoch davon ausgehen, dass alle denkbaren Zeichen erlaubt sind - wobei man das sicher auf die 256 möglichen Werte eines Bytes begrenzen kann, denn auch Unicode-Strings bestehen aus einzelnen Bytes, auch wenn diese Bytes für rund eine Million verschiedener Zeichen stehen können.
    Beim Brute-Force-Angriff kann ich nicht zwischen einem falschen und einem nicht erlaubten Passwort unterscheiden, das System wird mir vermutlich in beiden Fällen signalisieren: Login failed.

    wenn ich als Hacker ein Passwort "knacken" wollte, von welchem Alphabet würde ich ausgehen?

    Von einem String aus Bytes mit den Werten 0x00..0xFF.

    Ciao,
     Martin

    --
    Kleine Geschenke erhalten die Freundschaft.
    Große verderben sie aber meist auch nicht.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Hi Martin,

      wenn ich als Hacker ein Passwort "knacken" wollte, von welchem Alphabet würde ich ausgehen?

      Von einem String aus Bytes mit den Werten 0x00..0xFF.

      jep, das war mein Denkfehler. Du hast natürlich recht. Das macht es mir als Hacker schon leichter. Ich brauche also nicht alle Unicodezeichen durchzuiterieren, sondern nutze einfach die reinen Bytewerte. Klar.

      Danke!

    2. Hallo Martin,

      ich habe nochmals eine Frage.

      wenn ich als Hacker ein Passwort "knacken" wollte, von welchem Alphabet würde ich ausgehen?

      Von einem String aus Bytes mit den Werten 0x00..0xFF.

      Nehmen wir an, ich habe eine typische Login-Umgebung und die Kodierung sei utf-8, also ein übliches Szenario. Ferner nehmen wir an, dass das gewünschte Passwort "üa" sei.

      Bei ü handelt es sich um zwei Bytes (C3 BC) , bei ä ebenfalls zwei Bytes (C3 A4). Wie könnte jetzt ein Angreifer diese Bytewerte via des Loginfeldes übertragen? Einfach nur 0xCD0xBC eingeben wird ja nichts bringen...

      1. Hi!

        Nehmen wir an, ich habe eine typische Login-Umgebung und die Kodierung sei utf-8, also ein übliches Szenario. Ferner nehmen wir an, dass das gewünschte Passwort "üa" sei.

        Bei ü handelt es sich um zwei Bytes (C3 BC) , bei ä ebenfalls zwei Bytes (C3 A4). Wie könnte jetzt ein Angreifer diese Bytewerte via des Loginfeldes übertragen? Einfach nur 0xCD0xBC eingeben wird ja nichts bringen...

        Der Angreifer kann einfach [ue]a in das Loginfeld eintragen oder er spart sich den Mist gleich und sendet einfach den String an das Loginskript.

        --
        Signaturen sind blöd!
        Entlastet die Tierheime! Hundeklappen fuer Chinarestaurants!
        1. Hi,

          Der Angreifer kann einfach [ue]a in das Loginfeld eintragen oder er spart sich den Mist gleich und sendet einfach den String an das Loginskript.

          [ue]a? Verstehe ich nicht, helf mir bitte mal auf die Sprünge.

          1. Hi!

            [ue]a? Verstehe ich nicht, helf mir bitte mal auf die Sprünge.

            Ich habe kein Umlaute auf meiner Tastatur.

            --
            Signaturen sind blöd!
            Entlastet die Tierheime! Hundeklappen fuer Chinarestaurants!
            1. Hi!

              [ue]a? Verstehe ich nicht, helf mir bitte mal auf die Sprünge.

              Ich habe kein Umlaute auf meiner Tastatur.

              ach so. Ich will und darf aber keine Zeichen eingeben, die mehr als 1 Byte haben.
              ein ü hat 2 Byte (utf-8). Du verstehst?

      2. Hallo,

        Nehmen wir an, ich habe eine typische Login-Umgebung und die Kodierung sei utf-8, also ein übliches Szenario. Ferner nehmen wir an, dass das gewünschte Passwort "üa" sei.

        okay, damit's einfach zu verstehen ist.

        Bei ü handelt es sich um zwei Bytes (C3 BC) , bei ä ebenfalls zwei Bytes (C3 A4). Wie könnte jetzt ein Angreifer diese Bytewerte via des Loginfeldes übertragen?

        Wozu sollte er das Login-Formular benutzen? Er könnte es kopieren, auf ISO-8859-1 umstellen und dann wieder Zeichen für Zeichen, respektive Byte für Byte einzeln eingeben.

        Aber es geht doch viel einfacher. Er schaut nach, ob das verarbeitende Login-Script die Daten per GET oder POST erwartet, und wie die URL-Parameter heißen sollen. GET ist besonders einfach, dann ruft er einfach die URL http://example.org/login?user=mustermann&pass=%C3%BC%61 auf. Die URL-codierte Bytesequenz entspricht genau dem String üa in UTF-8 (das a hätte man auch im Klartext schreiben können, aber so sieht's geheimnisvoller aus).
        POST ist ebenso einfach, nur kann man es nicht direkt mit dem Browser ausprobieren. Mit einem eigenen Script oder mit wget ist es aber kein Problem, die Ressource http://example.org/login per POST-Methode aufzurufen und die POST-Daten user=mustermann&pass=%C3%BC%61 mitzusenden.

        Ciao,
         Martin

        --
        Lehrer:  Wieviel ist die Hälfte von 8?
        Schüler: Kommt drauf an. Waagrecht 0 und senkrecht 3.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. Hi martin,

          Wozu sollte er das Login-Formular benutzen? Er könnte es kopieren, auf ISO-8859-1 umstellen und dann wieder Zeichen für Zeichen, respektive Byte für Byte einzeln eingeben.

          Aber es geht doch viel einfacher. Er schaut nach, ob das verarbeitende Login-Script die Daten per GET oder POST erwartet, und wie die URL-Parameter heißen sollen. GET ist besonders einfach, dann ruft er einfach die URL http://example.org/login?user=mustermann&pass=%C3%BC%61 auf. Die URL-codierte Bytesequenz entspricht genau dem String üa in UTF-8 (das a hätte man auch im Klartext schreiben können, aber so sieht's geheimnisvoller aus).
          POST ist ebenso einfach, nur kann man es nicht direkt mit dem Browser ausprobieren. Mit einem eigenen Script oder mit wget ist es aber kein Problem, die Ressource http://example.org/login per POST-Methode aufzurufen und die POST-Daten user=mustermann&pass=%C3%BC%61 mitzusenden.

          genau, das mit dem Loginform war nur ein Beispiel, mir ging es darum, wie man einzelne Bytes überträgt. Urlkodiert ergibt natürlich Sinn. Ok, geschnallt. danke

  2. wenn ich als Hacker ein Passwort "knacken" wollte, von welchem Alphabet würde ich ausgehen? Das ist doch eine der wichtigsten Fragen, oder nicht?

    Ich als Häcker würde von alles sichtbaren Zeichen auf der Tastatur ausgehen. Damit schließe ich auch die Groß und Kleinschreibung mit ein.

    Jedoch würde ich als erstes Wörterbücher der jeweiligen Sprache durchgehen. Meine Frau hat z.B. "Zuckerwatte" als Passwort. Das würde ich schon mal knacken mit dieser Methode. Und schnell geht es auch. Naja gut schneller als wenn man alle Zeichen rauf zählen würde aaa, aab, aac.

    Gruß
    1337 H4ck0r
    T-Rex

    1. Hi!

      Ich als Häcker würde von alles sichtbaren Zeichen auf der Tastatur ausgehen. Damit schließe ich auch die Groß und Kleinschreibung mit ein.

      Also ohne diese laestigen Umlaute?

      Jedoch würde ich als erstes Wörterbücher der jeweiligen Sprache durchgehen.

      Du weisst, welcher Sprache mein Passwort entstammt?!

      scnr :)

      --
      Signaturen sind blöd!
      Frauen: Wenn sie gefunden haben, was sie suchen, schmeissen sie's weg...
      1. Du weisst, welcher Sprache mein Passwort entstammt?!

        Genau genommen nein. Handelt es sich jedoch um ein Deutsches Forum, wäre das Deutsche Wörterbuch zu bevorzugen.
        Ein Wörterbuch beim hacken zu benutzen ist natürlich nur ein versuch. Ob ich damit dein Passwort raus bekomme ist natürlich nicht sicher. Da selbst mein Chef einen Keygenerator benutzt, weiß ich auch gar nicht ob mein Vorschlag so intelligent ist... ein erster Ansatz wäre es auf jeden Fall.

        Gruß
        über Whouzuo schmunzelnder und Ehefrau Passwort ändernder
        T-Rex

    2. Jedoch würde ich als erstes Wörterbücher der jeweiligen Sprache durchgehen. Meine Frau hat z.B. "Zuckerwatte" als Passwort. Das würde ich schon mal knacken mit dieser Methode. Und schnell geht es auch. Naja gut schneller als wenn man alle Zeichen rauf zählen würde aaa, aab, aac.

      Ich würde stattdessen zuerst ein Forum aufsuchen, wo der Ehepartner meines Opfers regelmäßig verkehrt, um dann dort so einen Thread zu erzeugen, woraufhin der Ehepartner das Passwort meines Opfers mit ziemlich hoher Wahrscheinlichkeit verraten wird. ;)

  3. Daraus ergibt sich zum Beispiel, dass ein Passwort, welches als erlaubte Zeichen nur Zeichen des Ascii-Zeichensatzes zulässt, per se unsicherer ist, als ein Passwort, welches den Unicode-Zeichensatz zulässt.

    Wahrscheinlich liegt die Bedeutung der Aussage in der Formulierung :-)
    Ein Passwort kann nämlich keine Zeichen zulassen, das kann nur das System. Von daher ist ein solches Passwort nicht direkt unsicherer, es kommt ja immer noch auf die Länge an.
    skvmvnfhrtz ist sicherer als mümü
    Könnte als Erbsenzählerei bezeichnet werden, aber ich denke ihr wisst was ich meine.

    Ich verstehe übrigens nicht warum es Logins gibt, die nur Ziffern und Buchstaben zulassen. Das ist von Anfang an Murks.

    1. Hallo,

      Ich verstehe übrigens nicht warum es Logins gibt, die nur Ziffern und Buchstaben zulassen. Das ist von Anfang an Murks.

      ja, ebenso wie Systeme, die Passwörter mit maximal 6 Zeichen zulassen.

      Ciao,
       Martin

      --
      Nicht jeder, der aus dem Rahmen fällt, war vorher im Bilde.
      Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(