Passwörter

Hallo!

Man sollte ein Passwort ja nie an mehreren Stellen verwenden. Idealerweise also für jedes System, jede Webseite, usw. ein Eigenes.
Erfahrungsgemäß tut man sich aber bei einer Vielzahl von System schwer, alle Passwörter zu merken. Nun habe ich mir dazu folgendes ausgedacht:

Man generiert sich zuerst ein „Masterpasswort“. Und für jedes System sucht man sich einen String aus, der es identifiziert. Also für Webseiten zum Beispiel die URL (oder zumindest ein Teil). Für SSH Zugänge den Hostnamen oder die IP-Adresse. Zusätzlich gibt es ja auch noch für jeden Login einen Benutzernamen.

Nun nimmt man einen Algorithmus, der aus diesen drei Informationen ein neues Passwort generiert. Und genau dieses verwendet man dann auf diesem System.
Den Vorteil würde ich nun darin sehen, dass man die häufig einzugebenden Passwörter (z.B. Webmail) sich einfach merken kann. Die, die man aber selten braucht (z.B. WPA-Key) sich durch den Algorithmus immer nach Bedarf generieren lassen kann. Also das wichtigste Passwort, dass man sich merken muss, ist das Masterpasswort.

Meine Fragen dazu, gibt es so einen Algorithmus schon und welcher empfiehlt sich da?
Gibt es vielleicht sogar schon ein fertiges Programm, dass das kann? Hier aber bitte nur OpenSource, damit es nachvollziehbar ist.

mfg
christoph

Hallo,

Meine Fragen dazu, gibt es so einen Algorithmus schon und
welcher empfiehlt sich da?
Gibt es vielleicht sogar schon ein fertiges Programm, dass das
kann? Hier aber bitte nur OpenSource, damit es nachvollziehbar
ist.

Was es gibt sind Tools, die Passwörter verschlüsselt abspeichern und durch Eingabe des Masterpasswortes preisgeben. Ist nicht genau das was du beschreibst, ich kann aber keinen Nachteil gegenüber der von dir beschriebenen Vorgehensweise entdecken. Ein solches Programm das als Open Source verfügbar ist und ich persönliche verwende ist KeePass: http://keepass.info/ . Falls es für Linux sein soll (selbes Dateiformat): http://keepassx.sourceforge.net/

Gruß
Heavy

Hi,

Man generiert sich zuerst ein „Masterpasswort“. Und für jedes
System sucht man sich einen String aus, der es identifiziert.
Also für Webseiten zum Beispiel die URL (oder zumindest ein
Teil). Für SSH Zugänge den Hostnamen oder die IP-Adresse.
Zusätzlich gibt es ja auch noch für jeden Login einen
Benutzernamen.

Nun nimmt man einen Algorithmus, der aus diesen drei
Informationen ein neues Passwort generiert. Und genau dieses
verwendet man dann auf diesem System.

Du kannst an allen Stellen das Masterpasswort verwenden. Dessen Verunstaltung bringt keinen wesentlichen Sicherheitsgewinn.

Meine Fragen dazu, gibt es so einen Algorithmus schon und
welcher empfiehlt sich da?

Du koenntest ganz banal MD5 verwenden und ich nehm’s es hier mal zur Veranschaulichung meiner oben aufgestellten These. Also z.B.:

 $ echo -n "$masterpw$remoteip$remoteuser" |md5sum

Problematisch ist, dass man die Methode, wie der hash berechnet wurde, streng geheim halten muss, und das ist immer ein Zeichen, dass irgendwas mit der security gerade gewaltig in die Hose geht. Die „Methode“ besteht im Beispiel nur daraus, in welcher Reihenfolge Du welche Informationen aneinanderreihst. Das es hinten MD5 ist, sieht jeder sofort. Die verwendeten Informationen $remoteip und $remoteuser sind jedem, mehr oder weniger, frei zugaenglich. Und damit reduziert sich der geheime Anteil im wesentlichen auf $masterpw. Und dann kann man auch gleich das nehmen.

Derartige obscurity sieht zwar erstmal extrem sicher aus, aber es ist und bleibt obscurity.

Gibt es vielleicht sogar schon ein fertiges Programm, dass das
kann? Hier aber bitte nur OpenSource, damit es nachvollziehbar
ist.

MD5 kannst Du sogar ziemlich einfach selbst implementieren.

Gruss vom Frank.

Hallo,

Derartige obscurity sieht zwar erstmal extrem sicher aus, aber
es ist und bleibt obscurity.

Manchmal gibt es ja sogar auch mal Gründe, ein Passwort zu ändern. Peng - und der Fuß sagt „Aua“.

Sebastian

Hallo!

Du kannst an allen Stellen das Masterpasswort verwenden.
Dessen Verunstaltung bringt keinen wesentlichen
Sicherheitsgewinn.

Was wäre aber in folgendem Fall: Ich melde mich bei einem Webforum an und gebe auch meine E-Mailadresse an. Als Passwort wähle ich also ein „Masterpasswort“. Nun hat der Forenbetreiber aber die Passwörter unverschlüsselt in der Datenbank. Da braucht er ja nur das Passwort auslesen und beim Webmail meiner E-Mail ausprobieren.

Problematisch ist, dass man die Methode, wie
der hash berechnet wurde, streng geheim halten muss, und das
ist immer ein Zeichen, dass irgendwas mit der security gerade
gewaltig in die Hose geht.

Gerade MD5 oder auch die „Nachfolger“ wie SHA256 o.Ä. sind ja nicht geheim. Da ist ja bekannt wie sie funktionieren. Und optimalerweise sollte sich aus einem Hash der originale Wert nicht berechnen lassen.

mfg
christoph

Hallo!

Manchmal gibt es ja sogar auch mal Gründe, ein Passwort zu
ändern. Peng - und der Fuß sagt „Aua“.

Gute Überlegung. Das habe ich nicht bedacht.

mfg
christoph

Was wäre aber in folgendem Fall: Ich melde mich bei einem
Webforum an und gebe auch meine E-Mailadresse an. Als Passwort
wähle ich also ein „Masterpasswort“. Nun hat der
Forenbetreiber aber die Passwörter unverschlüsselt in der
Datenbank.

Warum? Wenn er ein guter Forenbetreiber ist, ist das nicht notwendig. Wenn er kein guter Forenbetreiber ist, gibt man ihm gefaelligst kein wichtiges Passwort.

Problematisch ist, dass man die Methode, wie
der hash berechnet wurde, streng geheim halten muss, und das
ist immer ein Zeichen, dass irgendwas mit der security gerade
gewaltig in die Hose geht.

Gerade MD5 oder auch die „Nachfolger“ wie SHA256 o.Ä. sind ja
nicht geheim.

Ja, aber all Deine Sicherheit baut darauf auf, dass die Methode geheim zu halten ist, nicht auf irgendeinem langen, gut entropierten Passwort.

Da ist ja bekannt wie sie funktionieren.

Deine Methode, Passwoerter zu generieren ist dann gut, wenn Du ohne Bedenken veroeffentlichen kannst, wie sie funktioniert. Ich habe da verschiedene, wer will sie wissen? Die koennte z.B. ganz gut sein:

 $ dd if=/dev/urandom bs=1 2\>/dev/null |tr -cd 'a-zA-Z0-9,.;!"$%&/()=' |dd bs=1 count=`expr $RANDOM % 8 + 8` 2\>/dev/null

Manchmal denk ich mir aber auch einfach nur eins aus. Deine Methode ist nur so gut, wie die, die Du zum Erzeugen des Masterpassworts verwendest.

Und optimalerweise sollte sich aus einem Hash der originale Wert
nicht berechnen lassen.

Ja. Und?

Mal angenommen, Du verwendest nur Dein Masterpasswort und den Nutzernamen zur Generierung des echten Passworts. Weiterhin nehmen wir stark vereinfacht an, dass Dein Masterpasswort eine einstellige Zahl ist und Dein Nutzername immer ein kleiner Buchstabe. Egal, welche Methode Du jetzt zum Verwursten nimmst, wenn es eine eindeutige Abbildung (masterpw, user) -> password gibt, gibt es maximal 260 unterschiedliche passwords, voellig egal, ob Du md5, sha oder Deine eigene, streng geheime Abbildung nimmst. Die Sicherheit Deiner Passwoerter steht und faellt damit mit der Abbildung. Die 260 kannst Du nur steigern, indem Du masterpw verlaengerst oder den username (worauf Du eh keinen Einfluss hast und den Du auch nicht geheim halten kannst).

Gruss vom Frank.

Hallo!

Warum? Wenn er ein guter Forenbetreiber ist, ist das nicht
notwendig. Wenn er kein guter Forenbetreiber ist, gibt man
ihm gefaelligst kein wichtiges Passwort.

Das ist richtig. Nur weiß ich meistens vor dem Anmelden ja nicht, wie vertrauenswürdig der Betreiber ist. Daher will ich ja ein anderes Passwort verwenden.

Ja, aber all Deine Sicherheit baut darauf auf, dass die
Methode geheim zu halten ist, nicht auf irgendeinem langen,
gut entropierten Passwort.

Das verstehe ich jetzt nicht. Ich kann ja jedem bekannt geben, wie ich nun meine Passwörter generiere (also z.B. >md5 -s „master-user-ip“), dann hängt doch die Sicherheit vom gewählten Masterpasswort ab. Und nicht unbedingt vom Algorithmus oder?

Und für das Masterpasswort kann ich ja was echt langes verwenden.

mfg
christoph

Ja, aber all Deine Sicherheit baut darauf auf, dass die
Methode geheim zu halten ist, nicht auf irgendeinem langen,
gut entropierten Passwort.

Das verstehe ich jetzt nicht. Ich kann ja jedem bekannt geben,
wie ich nun meine Passwörter generiere (also z.B. >md5 -s
„master-user-ip“), dann hängt doch die Sicherheit vom
gewählten Masterpasswort ab. Und nicht unbedingt vom
Algorithmus oder?

Ja, das sag ich doch die ganze Zeit. Du erhaelst durch das Hinzufuegen von bekannten Informationen und das verwursten keinen „sicheres“ Passwort.

Und für das Masterpasswort kann ich ja was echt langes
verwenden.

Dann koenntest Du auch gleich das Masterpasswort verwenden. Du solltest uebrigens aufpassen: wenn Dein Masterpasswort sehr lang ist, kann es durch das Verwurten (z.B. mit MD5) sogar wieder unsicher werden, wenn Du dadurch naemlich den Schluesselraum verkleinerst. Angenommen, Du wuerdest ein 22-stelliges Passwort bestehend aus Gross-/Kleinbuchstaben und Zahlen zufaellig waehlen. Dann sind damit schon mehr Passwoerter darstellbar, als mit allen moeglichen MD5-Summen (16^32

Was für’n Aufwand . . .
Überleg dir einfach ein richtig langes, zusammengesetztes Passwort.
Etwas aus deinem Hobbybereich.

Mal so als Beispiel:

  • prozessorlüfterspannungsregeleinheit

  • nockenwellengehäusedeckeldichtung

  • epromprogramiererspannungsversorgung

  • briefmarkenabstempelautomatenmechanikerlehring

  • gitarrenseitenspannerpolierpaste (g5tarr!ns!5t!nspann!rpol5!rpast!

für deinen ebay-Account oder als Administrator-Passwort zwei Wörter daraus:
g5tarr!ns!5t!n
oder
pol5!rpast!

für Board-Anmeldungen oder email-Accounts reicht auch ein Wort:
spann!r

Ich denke mal, das ist sicher genug, relativ einfach zu merken, und hat den großen Vorteil, dass man beispielsweise für Boards fünf oder sechs Wörter zur Auswahl hat. Selbst wenn man mal eines vergisst, kann man einfach durchprobieren.

Hallo!

Ja, das sag ich doch die ganze Zeit. Du erhaelst durch das
Hinzufuegen von bekannten Informationen und das verwursten
keinen „sicheres“ Passwort.

OK, dann sind wir ja eh gleicher Meinung. Das wir mir eigentlich ja schon vorher klar. Offenbar ist das nicht so ganz heraus gekommen.

Wenn Du allerdings, wie ich langsam vermute, diesen ganzen
Aufwand betreiben willst, um zu verhindern, dass Dein
Masterpasswort irgend im Klartext abgelegt wird, halte ich
Dein Vorgehen fuer durchaus legitim und auch (in Grenzen)
sinnvoll. Das was Du da naemlich machen willst sollte jede
Passwortdatenbank intern tun: Passwoerter nur als one-way-hash
speichern.

Gruss vom Frank.

Gut. Jetzt muss ich mir noch eine Hashfunktion suche/überlegen, die Passwörter in der richtigen Länge ausgeben. So einen langen MD5-Hash kann man ja nur selten wo als Passwort angeben.

Vielen Dank auf jeden Fall für deine Antworten.

mfg
christoph

Hallo,

g5tarr!ns!5t!n
pol5!rpast!
spann!r

diese drei Beispiele sind schonmal nix, weil Brute Force Werkzeuge sowas auf
einem Bein hinkend abfrühstücken. Die sind einfach zu kurz, für die Methode. Es
empfiehlt sich, wirklich hochwertige (mit großer Entropie) Passworte generieren
zu lassen und dann über ein Tool wie das KDE Wallet, KeePass oder dergleichen,
diese Passworte automatisch einfügen zu lassen. Für die Brieftasche/KeePass
braucht man sich dann in der Tat nur ein einziges, gutes Passwort zu merken.
Das sollte machbar sein.

Gruß

Fritze

diese drei Beispiele sind schonmal nix, weil Brute Force
Werkzeuge sowas auf
einem Bein hinkend abfrühstücken. Die sind einfach zu kurz,
für die Methode.

Das möchte ich doch stark bezweifeln.
Versuch mal mit Brute-Force ein WinRAR-Archiv mit 10 stelligem Passwort zu knacken. Wenn du nur Buchstaben zulässt, kein Problem. Pack Ziffern und Sonderzeichen dazu und du brauchst Ewigkeiten. Und übers Internet dauert das wegen der Antwortzeiten gleich noch ein paar Zehnerpotenzen länger.

Und nicht zuletzt rate ich ja auch dazu, die Passwort-Länge an die Wichtigkeit der zuschützenden Daten auszurichten. Unabhängig davon, das ich nicht glaube, das irgendjemand mittels Burute-Force ein Board-Passwort herauszubekommen versucht - selbst wenn er es schafft, wo liegt der Schaden? Ein email an den Admin und der Account wird esrt mal gesperrt. Darum sollten sechs bis acht Zeichen völlig ausreichen.

Für meinen eBay-Account benutze ich was deutlich längeres. Und für die verschlüsselte Festplatte was noch längeres. Wie gesagt, was ist wichtig?

Hallo,

Das möchte ich doch stark bezweifeln.
Versuch mal mit Brute-Force ein WinRAR-Archiv mit 10 stelligem
Passwort zu knacken. Wenn du nur Buchstaben zulässt, kein
Problem. Pack Ziffern und Sonderzeichen dazu und du brauchst
Ewigkeiten.

Du brauchst auch bei „nur Buchstaben“ Ewigkeiten, wenn diese Buchstaben zufällig gewählt werden. Du hast aber keine zufälligen Zeichen ersetzt. Wenn man e durch 3, l dur 7, i durch ! etc. ersetzt, dann checken dass die Brute Force Programme heute genauso über Wörterbuchattacken, wie die korrekt geschriebenen Worte auch. Daher dauert es eben *nicht* länger.

Und übers Internet dauert das wegen der
Antwortzeiten gleich noch ein paar Zehnerpotenzen länger.

Das trifft nur zu, wenn es arg begrenzt viele parallele Verbindungen gibt und Antwortzeiten absichtlich verzögert werden.

Und nicht zuletzt rate ich ja auch dazu, die Passwort-Länge an
die Wichtigkeit der zuschützenden Daten auszurichten.

Die Passwortlänge ist viel weniger entscheidend, als eine gute Zufälligkeit der Passworte. Ein sehr gutes 12 Zeichen Passwort ist beispielsweise erheblich besser, als ein schlechtes mit 30 Zeichen.

Den Zusammenhang hatte ich hier schonmal verlinkt, aber im Archiv geht es wohl unter: http://csrc.nist.gov/publications/nistpubs/800-63/SP…, Anhang A ab Seite 46.

Für meinen eBay-Account benutze ich was deutlich längeres. Und
für die verschlüsselte Festplatte was noch längeres. Wie
gesagt, was ist wichtig?

Wichtig ist nicht die Länge von Passworten, sondern die erreichte Entropie.

Gruß

Fritze

Du brauchst auch bei „nur Buchstaben“ Ewigkeiten, wenn diese
Buchstaben zufällig gewählt werden. Du hast aber keine
zufälligen Zeichen ersetzt. Wenn man e durch 3, l dur 7, i
durch ! etc. ersetzt, dann checken dass die Brute Force
Programme heute genauso über Wörterbuchattacken, wie die
korrekt geschriebenen Worte auch. Daher dauert es eben *nicht*
länger.

Also **das** möchte ich doch stark bezweifeln.
Gut, bei den von dir genannten Ersetzungen wie e durch 3 und i durch ! (die ja nun wirklich etwas abgegeriffen sind), da könntest du recht haben.
Aber wenn ich a durch $ und e durch 7 ersetze, dann läuft das ganze zeitmäßig auf eine Brute-Force-Attacke hinaus, weil das Programm alle nur denkbaren Ersetzungen, sprich alle Ziffern und Sonderzeichen, mit durchprobieren muss. Und damit steigt die Zeit mit der nackten Länge.
Natürlich dürfte es mit dem Wörterbuch schneller gehen als bei einer reinen Brute-Force-Attacke, aber ich würde aus dem Bauch raus den Aufwand um zwei bis drei Zehnerpotenzen höher ansetzen als bei einem reinen Wort.
Für Borad-Anmeldungen etc. dürfte diese Sicherheit ausreichen.
Für eBay, Homebanking etc. muss man schärfer rangehen - oder das Passwort verlängern.

Und übers Internet dauert das wegen der
Antwortzeiten gleich noch ein paar Zehnerpotenzen länger.

Das trifft nur zu, wenn es arg begrenzt viele parallele
Verbindungen gibt und Antwortzeiten absichtlich verzögert
werden.

Also bitte. Antwortzeit lokal (beispielsweise beim Versuch ein RAR-Archiv zu knacken) dürfte immer unter einer Millisekunde liegen, übers Web hast du so gutr wie immer einen Lag von 100 ms oder länger. Mal ganz davon abgesehen, das jeder auch nur halbswegs gut konfigurierter Server nach ein paar hundert Abfragen in weniger Sekunden dicht machen sollte.
Okay, das ist’n schwaches Argument, weil wir die Konfiguration des Servers nur in den wenigsten Fällen beurteilen können.

Die Passwortlänge ist viel weniger entscheidend, als eine gute
Zufälligkeit der Passworte. Ein sehr gutes 12 Zeichen Passwort
ist beispielsweise erheblich besser, als ein schlechtes mit 30
Zeichen.

Da haben wir aneinander vorbeigeredet.
hj3uh mag vieleicht etwas sicherer sein als K7rb§lw§ll§, aber man muss es sich ja auch merken können.

Darum ja mein Vorschlag, sich so ein Passwort zu basteln, und kurze Teile davon beispielsweise für ein Board zu benutzen. Denn selbst, wenn das mal geknackt wird, ist der Schaden relativ gering. Dafür hat man halt ein relativ gutes Passwort, das man sich auch relativ einfach merken kann. Deine 12 zufälligen Stellen mögen vieleicht sicherer sein, aber ich möchte Zweifel daran anmelden, ob du die in einem Internet-cafe auswendig kennst.