Passwort-Verschlüsselung auf Mac OS X

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Passwort-Verschlüsselung auf Mac OS X

      Hallo,

      wie sicher ist mein Macbook, falls es geklaut werden sollte? Ich nehme an, dass Mac OS X die Account-Passwörter verschlüsselt. Eigentlich müsste ein Dieb nur den Speicherort des Schlüssels und der verschlüsselten Passwörter sowie den Algorithmus kennen, um meine Passwörter herauszufinden. Natürlich nur, falls es sich um einen symmetrischen Algorthmus handelt. Dann könnte er aus dem verschlüsselten Passwort das richtige Passwort rekonstruieren.
      Falls Mac OS X aber ein assymetrisches Verfahren verwendet, dann gehe ich davon aus, dass bei jeder Passworteingabe das eingegebene Passwort also zunächst immer verschlüsselt werden muss, um es dann mit dem vom System verwalteten, ebenfalls verschlüsselten Passwort zu vergleichen. Ein Dieb könnte aber mit dem Schlüssel nichts anfangen, wenn der Algorithmus assymetrisch ist, selbst wenn er wüsste, wo er sich befindet. Ich könnte mich dann also sicher fühlen, weil das Passwort mit dem Algorithmus und dem Schlüssel nur verschlüsselt, aber nicht entschlüsselt werden könnte. Sehe ich das richtig?

      Welche Art von Passwortverschlüsselung verwendet Mac OS X?

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Merowinger ()

    • Im allgemeinem werden keine verschlüsselten Passwörter gespeichert, sondern ein so genannter "Hash" des Passworts. Dies ist eine Zahl einer bestimmten Länge, die sich einfach aus dem Passwort berechnen lässt. Umgekehrt lässt sich aber aus einem Hash kein Passwort berechnen. Es handelt sich um eine unumkehrbare Operation. Beim Anmelden wird dann der selbe Hash aus dem eingegebenem Passwort berechnet und mit dem gespeichertem verglichen. Stimmen sie überein hat der Benutzer das korrekte Passwort angegeben und wird angemeldet.

      Die einzige Möglichkeit an die Passwörter zu kommen ist letztendlich eine lange Wortliste durchzuprobieren. Das funktioniert natürlich nur, wenn das Passwort auf einer solchen Wörter-Liste auftaucht. Um sicher zu gehen, dass das Passwort nicht geknackt werden kann sollte man ein langes Passwort verwenden das aus einer Zufälligen Zahlen-, Buchstaben- und Sonderzeichenkombination besteht.

      Wenn der Rechner allerdings gestohlen wurde wird der Angreifer so oder so an die gespeicherten Daten kommen ohne sich die Mühe machen zu müssen das Passwort zu knacken, es sei denn natürlich die Daten sind verschlüsselt.
    • OK, dann wird gehasht. aber ist das denn nicht total unsicher? bleibt ja im grunde nur noch eine beschränkte menge von zahlen übrig, die zu knacken ist. und dann gibt's noch mehrere wörter, die zu dieser zahl gehasht werden können, das hashen ist also nicht mal bijektiv.


      realityking, du bringst mich auf meine nächste frage. ja genau, wie funktioniert das dann in safari, oder besser gesagt firefox, thunderbird und co?

      und wie funktioniert das in samba. mich verwirrt total, dass man die passwörter auch in einer klartextdatei zum auslesen speichern kann : .nsmbrc.

      auf der anderen seite gibt's im finder noch die möglichkeit, das passwort in einer keychain zu speichern, ich nehme an, da wird dann wieder gehasht?



      also mir geht's nicht nur um meine daten, die beim notebookklau gesehen werden, sondern auch darum, dass ich gerne auf allen meinen rechnern die selben passwörter und konten haben will. aber wenn mein notebook geklaut wird und das passwort so leicht geknackt werden kann, dann kann die person von überall auf der welt auf meinen ssh, remotedesktop und weiß der geier welche anderen services zugreifen, die auf meinem desktop-pc zu hause laufen. sogar mit root-rechten! das wär ja besonders scheiße, wenn mir der book aufm weg geklaut wird, dann müsst ich so schnell wie möglich nach hause und meinen server ausschalten.
    • soweit ich weis lassen sich doch sowieso nutzerrechte via der boot cd auf 'null' setzen. Von daher gibt es eben vollen zugriff auf alles. Die keychain ist wie ein übergreifendes tool, welches sowohl für safari als auch für ftp, server verbindungen, wlan keys usw speichern kann damit mann es nicht immer eingeben muss. Wie die passwörter darin abgespeichert werden kA.

      Eine andere frage ist warum du nicht sowas mit nem usb stick erledigst? Ich meine z.B. einen USB stick nehmen, paar langweilige daten drauf und ein versteckten ordner via Truecrypt. Darin dann zB nen mail prog, nen browser, und ne datei mit weitern pw's. Die beiden progs könnten zB voll eingerichtet sein. Gilt soweit ich weis als richtig sicher, da opensource und es kein backdoor gibt.

      mfg D.Vibes
      Go Hard or Go Home ;)

      MacBook Pro, 2.33 GHz Core 2 Duo, 2GB ram, Mac OS X 10.5.3

      iPod Video 80GB
    • Original von Merowinger
      OK, dann wird gehasht. aber ist das denn nicht total unsicher? bleibt ja im grunde nur noch eine beschränkte menge von zahlen übrig, die zu knacken ist. und dann gibt's noch mehrere wörter, die zu dieser zahl gehasht werden können, das hashen ist also nicht mal bijektiv.


      Nein, das macht das ganze nicht viel unsicherer. Schließlich reicht die Kenntnis des Hash-Wertes nicht aus um sich anzumelden. Sicher gibt es bei jeder Hash-Funktion Kollisionen, also verschiedene Klartexte die den selben Hash ergeben. Allerdings ist das auch sehr schwer die zu finden, da bleibt eigentlich nur das durchprobieren von allen denkbaren Zeichenkombinationen. Ist also nicht praktikabel.

      Original von Merowingerrealityking, du bringst mich auf meine nächste frage. ja genau, wie funktioniert das dann in safari, oder besser gesagt firefox, thunderbird und co?


      Safari speichert Passwörter in dem Keychain des Benutzers. Thunderbird und die anderen Programme aus der Mozilla-Reihe haben da ihre eigene Datenbank.

      Original von Merowinger
      und wie funktioniert das in samba. mich verwirrt total, dass man die passwörter auch in einer klartextdatei zum auslesen speichern kann : .nsmbrc.


      Samba braucht das Passwort im Klartext um das Passwort überprüfen zu können. Das liegt daran, dass dabei das Passwort oder ein einfacher Passwort-Hash nicht über das Netzwerk übertragen werden darf. Dieser könnte mit einem Sniffer abgefangen und noch einmal verwendet werden. Um einen so genannten "Challenge Response Authentication Mechanism" verwenden zu können müssen beide Seiten das Passwort im Klartext kennen. Dabei kann aber der gesamte Netzwerkverkehr mitgeschnitten werden ohne dass der Angreifer genügend Informationen erhält um sich selber einloggen zu können.

      Original von Merowinger
      auf der anderen seite gibt's im finder noch die möglichkeit, das passwort in einer keychain zu speichern, ich nehme an, da wird dann wieder gehasht?


      Nein, da kann nicht gehasht werden, schließlich muss dort das Passwort im Klartext wieder ausgelesen werden können. Die Passwörter werden im Keychain im Klartext gespeichert und die ganze Datenbank wird mit dem Keychain-Passwort verschlüsselt.

      Original von Merowinger
      also mir geht's nicht nur um meine daten, die beim notebookklau gesehen werden, sondern auch darum, dass ich gerne auf allen meinen rechnern die selben passwörter und konten haben will.


      Wenn du so paranoid bist, dass du dir über die Sicherheit der Passwort-Datenbanken von OS X und anderen unixoiden Systemen machst solltest du auch wissen, dass man auf keinen Fall das selbe Passwort für verschiedene Konten oder Dienste verwenden sollte.
    • Nein, das macht das ganze nicht viel unsicherer. Schließlich reicht die Kenntnis des Hash-Wertes nicht aus um sich anzumelden. Sicher gibt es bei jeder Hash-Funktion Kollisionen, also verschiedene Klartexte die den selben Hash ergeben. Allerdings ist das auch sehr schwer die zu finden, da bleibt eigentlich nur das durchprobieren von allen denkbaren Zeichenkombinationen. Ist also nicht praktikabel.

      wenn der hashwert eine feste länge hat, dann heißt das doch aber auch, dass ab einer bestimmten länge die passwörter nicht mehr sicherer werden, oder?


      Safari speichert Passwörter in dem Keychain des Benutzers. Thunderbird und die anderen Programme aus der Mozilla-Reihe haben da ihre eigene Datenbank.

      und mozilla, speichern die das in einer klartext-datenbank oder wird die irgendwie verschlüsselt? die müsste dann doch aber auch benutzerabhängig verwaltet werden, schließlich speichert mozilla ja informationen in abhängigkeit vom benutzer am system.


      Samba braucht das Passwort im Klartext um das Passwort überprüfen zu können. Das liegt daran, dass dabei das Passwort oder ein einfacher Passwort-Hash nicht über das Netzwerk übertragen werden darf. Dieser könnte mit einem Sniffer abgefangen und noch einmal verwendet werden. Um einen so genannten "Challenge Response Authentication Mechanism" verwenden zu können müssen beide Seiten das Passwort im Klartext kennen. Dabei kann aber der gesamte Netzwerkverkehr mitgeschnitten werden ohne dass der Angreifer genügend Informationen erhält um sich selber einloggen zu können.
      hmm. ich verstehe die logik nicht. du sagst es dürfen weder passwörter noch passwort-hashs über das netzwerk übertragen werden (stellt sich also die frage wie dann ÜBERHAUPT authentifiziert werden soll), und daraus soll folgen, dass der samba-client dann trotzdem ein passwort im klartext speichern soll?

      Nein, da kann nicht gehasht werden, schließlich muss dort das Passwort im Klartext wieder ausgelesen werden können. Die Passwörter werden im Keychain im Klartext gespeichert und die ganze Datenbank wird mit dem Keychain-Passwort verschlüsselt.

      und das keychain-passwort selbst, liegt das irgendwo offen rum oder wird das wenigstens gehasht? und warum musste ich das keychain-passwort noch niemals irgendwo eingeben?


      Wenn du so paranoid bist, dass du dir über die Sicherheit der Passwort-Datenbanken von OS X und anderen unixoiden Systemen machst solltest du auch wissen, dass man auf keinen Fall das selbe Passwort für verschiedene Konten oder Dienste verwenden sollte.

      hab auch nix von selben passwörtern für verschiedene KONTEN gesagt. es geht um die gleichen konton auf verschiedenen rechnern. auf jedem rechner möchte ich die gleiche umgebung haben, analog zu einem uni-netz, wo ein benutzer sich mit seinem passwort auf jeden der über 100 rechner einloggen kann, da gibt's auch nicht ein anderes passwort für jeden rechner. natürlich werden die passwörter und konten da auch ZENTRAL verwaltet und von zentraler stelle authentifiziert, aber in meinem fall ist eins der beiden geräte (das notebook) eben mobil, ein zugriff auf einen authentifizierungs-server zum login ist daher nicht immer möglich. also muss ich die passwörter eben LOKAL auf dem notebook verwalten, sprich doppelt. um die homogenität zu bewahren wäre es dann eben sehr schön, wenn für den gleichen nutzer auf einem anderen rechner (und einem anderen OS) das passwort auch gleich bleibt.
      auch wäre es eigentlich sehr schön, wenn ein client auf einem rechner, der einen benutzerspezifischen dienst vom server auf dem anderen rechner anfordert, schlau genug ist, die lokale benutzerdatenbank nach dem jeweiligen benutzerpasswort und dem benutzernamen des benutzers zu erfragen, der den dienst anfordern will, also den client aufgerufen hat, und diese informationen automatisch, eventuell auch verschlüsselt - je nach protokoll - an den server schickt, statt jedesmal noch ein extra passwort verwalten zu wollen und dieses abzufragen. ich habe ja als benutzer x den clienten gestartet, also wäre es auch angebracht, erstmal davon auszugehen, dass benutzer x auch mit seinen credentials auf den server zugreifen will. das funktioniert ja auch von windows-rechner nach windows rechner automatisch. leider ist dieser mechanismus nicht für heterogene OS implementiert.
    • Original von Merowinger
      wenn der hashwert eine feste länge hat, dann heißt das doch aber auch, dass ab einer bestimmten länge die passwörter nicht mehr sicherer werden, oder?


      Doch. Ein Hash hat immer die selbe länge, egal wie lang das ursprüngliche Passwort ist. Egal, ob es sich um drei Zeichen oder gleich mehrere Millionen Zeichen handelt. Solche Hash-Funktionen sind nicht umkehrbar, dass heißt aus dem Hash alleine bekommt man keine Information über das Passwort raus.

      Original von Merowinger
      und mozilla, speichern die das in einer klartext-datenbank oder wird die irgendwie verschlüsselt? die müsste dann doch aber auch benutzerabhängig verwaltet werden, schließlich speichert mozilla ja informationen in abhängigkeit vom benutzer am system.


      Sicher, jeder Benutzer hat seine eigene Passwort-Datenbank für Mozilla in seinem Heimatverzeichnis gespeichert. Diese kann verschlüsselt oder unverschlüsselt vorliegen, je nachdem was für Einstellungen der Benutzer vorgenommen hat.

      Original von Merowinger
      Samba braucht das Passwort im Klartext um das Passwort überprüfen zu können. Das liegt daran, dass dabei das Passwort oder ein einfacher Passwort-Hash nicht über das Netzwerk übertragen werden darf. Dieser könnte mit einem Sniffer abgefangen und noch einmal verwendet werden. Um einen so genannten "Challenge Response Authentication Mechanism" verwenden zu können müssen beide Seiten das Passwort im Klartext kennen. Dabei kann aber der gesamte Netzwerkverkehr mitgeschnitten werden ohne dass der Angreifer genügend Informationen erhält um sich selber einloggen zu können.
      hmm. ich verstehe die logik nicht. du sagst es dürfen weder passwörter noch passwort-hashs über das netzwerk übertragen werden (stellt sich also die frage wie dann ÜBERHAUPT authentifiziert werden soll), und daraus soll folgen, dass der samba-client dann trotzdem ein passwort im klartext speichern soll?


      Der Name "Challenge Response" sagt eigentlich schon alles. Der Server schickt dem Client eine so genannte "Challenge", also eine Herausforderung. Aus dieser Challenge berechnet der Client zusammen mit dem vom Benutzer eingegebenem Passwort eine Antwort, die "Response" und schickt sie an den Server. Der Server berechnet ebenfalls die Response nach dem selbem Algorithmus und vergleicht sie mit der vom Client gelieferten Response. Wenn sie übereinstimmen hat der Client das richtige Passwort. Dafür braucht eben der Client und der Server das Passwort im Klartext.

      Für die Berechnung der Response werden im allgemeinen Hash-Funktionen verwendet, da somit sicher gestellt werden kann, dass aus der Response nicht rückwärts das Passwort berechnet werden kann.

      Wenn nun ein Angreifer Challenge und Response aufgezeichnet hat kann er sich trotzdem nicht anmelden, da sich die Challenge für jede Anmeldung ändert.

      Original von Merowinger
      und das keychain-passwort selbst, liegt das irgendwo offen rum oder wird das wenigstens gehasht? und warum musste ich das keychain-passwort noch niemals irgendwo eingeben?


      Das wird weder im Klartext noch als Hash gespeichert. Mit diesem Passwort wird die Schlüsselbund-Datei verschlüsselt. Wenn man das falsche Passwort eingibt kann nicht entschlüsselt werden und man hat keinen Zugriff auf die gespeicherten Passwörter.

      Standardmäßig wird beim Anlegen eines Benutzers das Benutzer-Passwort auch für den Schlüsselbund verwendet. Beim Anmelden wird dann mit dem selbem Passwort auch der Schlüsselbund geöffnet. Mit dem Schlüsselbund-Dienstprogramm kann aber auch das Passwort des Schlüsselbundes separat gesetzt werden.

      Original von Merowinger
      hab auch nix von selben passwörtern für verschiedene KONTEN gesagt. es geht um die gleichen konton auf verschiedenen rechnern. auf jedem rechner möchte ich die gleiche umgebung haben, analog zu einem uni-netz, wo ein benutzer sich mit seinem passwort auf jeden der über 100 rechner einloggen kann, da gibt's auch nicht ein anderes passwort für jeden rechner. natürlich werden die passwörter und konten da auch ZENTRAL verwaltet und von zentraler stelle authentifiziert, aber in meinem fall ist eins der beiden geräte (das notebook) eben mobil, ein zugriff auf einen authentifizierungs-server zum login ist daher nicht immer möglich. also muss ich die passwörter eben LOKAL auf dem notebook verwalten, sprich doppelt. um die homogenität zu bewahren wäre es dann eben sehr schön, wenn für den gleichen nutzer auf einem anderen rechner (und einem anderen OS) das passwort auch gleich bleibt.


      Das sind eben zwei paar Schuhe. In deinem Beispiel Uni-Netzwerk hast du ein einziges Benutzerkonto, mit dem du dich auf vielen Rechnern anmelden kannst. Wie du schon gesagt hast geschieht das über einen zentralen Authentifizierungs-Server. Da du so einen aber nicht verwenden kannst hast du zwei Benutzerkonten, einen auf dem Desktop und einen auf dem Laptop. Auch wenn sie beide dir gehören sind es immer noch zwei verschiedene Konten und sollten besser zwei verschiedene Passwörter haben.

      Original von Merowinger
      auch wäre es eigentlich sehr schön, wenn ein client auf einem rechner, der einen benutzerspezifischen dienst vom server auf dem anderen rechner anfordert, schlau genug ist, die lokale benutzerdatenbank nach dem jeweiligen benutzerpasswort und dem benutzernamen des benutzers zu erfragen, der den dienst anfordern will, also den client aufgerufen hat, und diese informationen automatisch, eventuell auch verschlüsselt - je nach protokoll - an den server schickt, statt jedesmal noch ein extra passwort verwalten zu wollen und dieses abzufragen. ich habe ja als benutzer x den clienten gestartet, also wäre es auch angebracht, erstmal davon auszugehen, dass benutzer x auch mit seinen credentials auf den server zugreifen will. das funktioniert ja auch von windows-rechner nach windows rechner automatisch. leider ist dieser mechanismus nicht für heterogene OS implementiert.


      Das ist so auch nicht möglich. In der lokalen Benutzerdatenbank stehen überhaupt keine Passwörter sondern nur Hashes. Diese können zwar verwendet werden um ein eingegebenes Passwort zu überprüfen, sie reichen aber nicht aus, um sich an einem Server anzumelden.

      "Single Sign On" (das was du haben möchtest) ist komplizierter als einfach an alle Server das gleiche Paar aus Benutzername und Passwort zu schicken.
    • Doch. Ein Hash hat immer die selbe länge, egal wie lang das ursprüngliche Passwort ist. Egal, ob es sich um drei Zeichen oder gleich mehrere Millionen Zeichen handelt. Solche Hash-Funktionen sind nicht umkehrbar, dass heißt aus dem Hash alleine bekommt man keine Information über das Passwort raus.


      das muss aber doch heißen, dass ein drei zeichen langes passwort eventuell genau so sicher ist wie ein 50 zeichen langes, falls beiden wörten der gleiche hashwert zugeordnet wird. insofern erziehlt man doch mit längeren passwörtern nicht umbedingt eine höhere sicherheit, oder?



      Sicher, jeder Benutzer hat seine eigene Passwort-Datenbank für Mozilla in seinem Heimatverzeichnis gespeichert. Diese kann verschlüsselt oder unverschlüsselt vorliegen, je nachdem was für Einstellungen der Benutzer vorgenommen hat.


      und der schlüssel für diese verschlüsselung? wird der etwa nicht irgendwo gespeichert? den könnte man dann doch aufspüren, oder nicht?



      Der Name "Challenge Response" sagt eigentlich schon alles. Der Server schickt dem Client eine so genannte "Challenge", also eine Herausforderung. Aus dieser Challenge berechnet der Client zusammen mit dem vom Benutzer eingegebenem Passwort eine Antwort, die "Response" und schickt sie an den Server. Der Server berechnet ebenfalls die Response nach dem selbem Algorithmus und vergleicht sie mit der vom Client gelieferten Response. Wenn sie übereinstimmen hat der Client das richtige Passwort. Dafür braucht eben der Client und der Server das Passwort im Klartext.

      Für die Berechnung der Response werden im allgemeinen Hash-Funktionen verwendet, da somit sicher gestellt werden kann, dass aus der Response nicht rückwärts das Passwort berechnet werden kann.

      Wenn nun ein Angreifer Challenge und Response aufgezeichnet hat kann er sich trotzdem nicht anmelden, da sich die Challenge für jede Anmeldung ändert.


      welchen sinn hat denn die challenge? ist dort der algorithmus enthalten? das nehme ich mal jetzt an, denn sonst wären doppelanmeldungen in attacken ja möglich. es wird also in jeder challenge ein neuer algorithmus geschickt? oder nur der zu verwendende schlüssel/parameter für den algorithmus, oder beides, oder nur der schlüssel/parameter?



      Das wird weder im Klartext noch als Hash gespeichert. Mit diesem Passwort wird die Schlüsselbund-Datei verschlüsselt. Wenn man das falsche Passwort eingibt kann nicht entschlüsselt werden und man hat keinen Zugriff auf die gespeicherten Passwörter.

      Standardmäßig wird beim Anlegen eines Benutzers das Benutzer-Passwort auch für den Schlüsselbund verwendet. Beim Anmelden wird dann mit dem selbem Passwort auch der Schlüsselbund geöffnet. Mit dem Schlüsselbund-Dienstprogramm kann aber auch das Passwort des Schlüsselbundes separat gesetzt werden.


      ich habe das dann jetzt so verstanden, dass unmittelbar nach dem login das eingegebene passwort, NICHT der hash davon, als keychain-passwort verwendet wird. klar, dieses ist nirgendwo gespeichert (nur als unumkehrbarer hash) und kann somit nicht aufgespürt werden.

      also wenn das keychain-passwort nirgendwo gespeichert ist und man ein anderes setzt als das benutzer-passwort, und man das keychain-passwort vergisst, hat man dann seinen ganzen schlüsselbund verloren, richtig?
      denn das selbst seperat gesetzte keychain passwort wird ja auch nirgendwo gespeichert. man müsste immer zwei passwörter beim login eingeben, oder?



      Das sind eben zwei paar Schuhe. In deinem Beispiel Uni-Netzwerk hast du ein einziges Benutzerkonto, mit dem du dich auf vielen Rechnern anmelden kannst. Wie du schon gesagt hast geschieht das über einen zentralen Authentifizierungs-Server. Da du so einen aber nicht verwenden kannst hast du zwei Benutzerkonten, einen auf dem Desktop und einen auf dem Laptop. Auch wenn sie beide dir gehören sind es immer noch zwei verschiedene Konten und sollten besser zwei verschiedene Passwörter haben.


      ich sehe ja ein, dass bei zwei kontoverwaltungen mit den selben passwörtern für rein technisch "verschiedene" konten auch zwei stellen existieren, wo man dieses passwort benutzen kann. aber genau das ist ja auch meine absicht. aus organisatorischer sicht sind die beiden konten eben identisch. die mächtigkeit meines passworts soll sich über meine gesamte domäne erstrecken: desktop und laptop. der laptop soll ein homogener klon meines desktops sein, damit ich mich auf jedem meiner geräte komplett "wohl" fühlen kann, deswegen will ich ja auch alle wichtigen verzeichnisse sharen und mounten, um auf jedem rechner "alles zu haben". ich will praktisch gar nicht merken, ob ich zu hause oder unterwegs bin. sobald ich das ganze innerhalb meines zimmers geregelt hab, muss ich mich zu diesem zwecke ja später noch um den vpn-server auf meinem desktop-pc kümmern, um aus meinem traum eine realität zu machen und wirklich WELTWEIT zu hause zu sein ;)



      Das ist so auch nicht möglich. In der lokalen Benutzerdatenbank stehen überhaupt keine Passwörter sondern nur Hashes. Diese können zwar verwendet werden um ein eingegebenes Passwort zu überprüfen, sie reichen aber nicht aus, um sich an einem Server anzumelden.


      wenn das wirklich "nicht möglich" ist, dann verstehe ich nicht, wieso das dann von windows zu windows funktioniert: ich habe auf meinem desktop pc dateien geshared und dort festgelegt, wer drauf zugreifen darf. auf dem notebook war ebenfalls windows drauf, mit den gleichen konten und passwörtern, ich musste aber NIE irgendein passwort eingeben, um das verzeichnis zu mounten. irgendwas muss der client aber doch an den server rübergeschickt haben. mein benutzerpasswort? - kann ja nicht sein, liegt nur ein hash vor. eine response? - kann ja auch nicht sein, auch dafür brächte man ja dann ein passwort, das ich nie eingeben musste. bleibt doch nur noch übrig, dass der hash des benutzerpassworts als "smb-passwort" benutzt wird, also nochmal verhascht wird, um die response zu berechnen. oder?
    • ich hab jetzt nicht alles gelesen weil es schon spät ist, aber ich denke jetzt mal wie ein Dieb....

      Also wenn ein dieb dein Notebook klaut. Juckt ihn eigentlich kaum was du da drauf hast. Er wird ein paar Passwörter versuchen und wird es dann wieder aus machen und weiterverkaufen. Oder er will es behalten. dann läd er sich das System runter, brennt es auf DVD und installiert es ohne jegliche Probleme auf den Computer neu, und kann ihn ganz normal benutzen....

      Das wollte ich nur loswerden. Falls du denkst, dass der Computer wegen deinem Passwort nicht benutzbar wäre ;)

      iMac G3 350 Mhz


    • ich hab jetzt nicht alles gelesen weil es schon spät ist, aber ich denke jetzt mal wie ein Dieb....

      Also wenn ein dieb dein Notebook klaut. Juckt ihn eigentlich kaum was du da drauf hast. Er wird ein paar Passwörter versuchen und wird es dann wieder aus machen und weiterverkaufen. Oder er will es behalten. dann läd er sich das System runter, brennt es auf DVD und installiert es ohne jegliche Probleme auf den Computer neu, und kann ihn ganz normal benutzen....

      Das wollte ich nur loswerden. Falls du denkst, dass der Computer wegen deinem Passwort nicht benutzbar wäre


      du hättest dir schon das vergnügen machen sollen dir alles durchzulesen...naja, dann war's halt zu spät. aber dann hättest du gesehen, dass es mir überhaupt nicht darum geht, ob mein notebook benutzbar ist oder nicht, sondern, ob mein passwort aufspürbar ist oder nicht, weil es irgendwann einmal globale auswirkungen hat, wenn jemand mein notebook klaut und daraus mein passwort rausfindet ;)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Merowinger ()

    • Original von Merowinger

      ich hab jetzt nicht alles gelesen weil es schon spät ist, aber ich denke jetzt mal wie ein Dieb....

      Also wenn ein dieb dein Notebook klaut. Juckt ihn eigentlich kaum was du da drauf hast. Er wird ein paar Passwörter versuchen und wird es dann wieder aus machen und weiterverkaufen. Oder er will es behalten. dann läd er sich das System runter, brennt es auf DVD und installiert es ohne jegliche Probleme auf den Computer neu, und kann ihn ganz normal benutzen....

      Das wollte ich nur loswerden. Falls du denkst, dass der Computer wegen deinem Passwort nicht benutzbar wäre


      du hättest dir schon das vergnügen machen sollen dir alles durchzulesen...naja, dann war's halt zu spät. aber dann hättest du gesehen, dass es mir überhaupt nicht darum geht, ob mein notebook benutzbar ist oder nicht, sondern, ob mein passwort aufspürbar ist oder nicht, weil es irgendwann einmal globale auswirkungen hat, wenn jemand mein notebook klaut und daraus mein passwort rausfindet ;)


      Welche globalen Auswirkungen sprichst Du denn hier an?
      iMac 24" 3,06 Ghz + 2,25TB HDD + 8GB RAM
      MacBook pro 17" 3,06Ghz + 8 GB RAM + 500 GB HDD
      iPhone 3G schwarz
    • Original von Merowinger
      Doch. Ein Hash hat immer die selbe länge, egal wie lang das ursprüngliche Passwort ist. Egal, ob es sich um drei Zeichen oder gleich mehrere Millionen Zeichen handelt. Solche Hash-Funktionen sind nicht umkehrbar, dass heißt aus dem Hash alleine bekommt man keine Information über das Passwort raus.


      das muss aber doch heißen, dass ein drei zeichen langes passwort eventuell genau so sicher ist wie ein 50 zeichen langes, falls beiden wörten der gleiche hashwert zugeordnet wird. insofern erziehlt man doch mit längeren passwörtern nicht umbedingt eine höhere sicherheit, oder?


      Das stimmt letztendlich schon. Nur keine als sicher geltende Hash-Funktion wird einem Drei-Zeichen-Passwort und einem 50-Zeichen-Passwort den selben Hash zuweisen. Es gibt zwar Kollisionen, aber die sind selbst bei der inzwischen als unsicher geltenden MD5-Funktion nicht so häufig dass das einen Einfluss auf die Sicherheit von gehashten Passwörtern hat.


      Original von Merowinger

      Sicher, jeder Benutzer hat seine eigene Passwort-Datenbank für Mozilla in seinem Heimatverzeichnis gespeichert. Diese kann verschlüsselt oder unverschlüsselt vorliegen, je nachdem was für Einstellungen der Benutzer vorgenommen hat.

      und der schlüssel für diese verschlüsselung? wird der etwa nicht irgendwo gespeichert? den könnte man dann doch aufspüren, oder nicht?


      Nein, der wird selbstverständlich nicht gespeichert, sonst könnte man sich die Verschlüsselung auch sparen. Der Schlüssel ist das Master-Passwort welches man in den Einstellungen unter Sicherheit vergeben kann. Wenn kein Master-Passwort verwendet wird wird auch nicht verschlüsselt.


      Original von Merowinger
      welchen sinn hat denn die challenge? ist dort der algorithmus enthalten? das nehme ich mal jetzt an, denn sonst wären doppelanmeldungen in attacken ja möglich. es wird also in jeder challenge ein neuer algorithmus geschickt? oder nur der zu verwendende schlüssel/parameter für den algorithmus, oder beides, oder nur der schlüssel/parameter?


      Die Challenge ist einfach irgend ein Wert, ganz egal was. Hauptsache er ist für jeden Anmelde-Versuch anders. Könnte z.B. einfach eine lange Zufallszahl sein oder das aktuelle Datum mit Uhrzeit oder eine Kombination von beidem. Ganz egal, was es nun ist, so lange es bei jedem Login-Versuch anders ist kann man sich nicht einloggen indem man mitgeschnittene Pakete ein zweites Mal sendet.

      Original von Merowinger
      also wenn das keychain-passwort nirgendwo gespeichert ist und man ein anderes setzt als das benutzer-passwort, und man das keychain-passwort vergisst, hat man dann seinen ganzen schlüsselbund verloren, richtig?

      Wenn man das Keychain-Passwort vergisst bzw. verliert ist der Inhalt des Schlüsselbundes verloren, das stimmt.

      Original von Merowinger
      denn das selbst seperat gesetzte keychain passwort wird ja auch nirgendwo gespeichert. man müsste immer zwei passwörter beim login eingeben, oder?


      Stimmt fast. Das Schlüsselbund-Passwort wird dann aber nicht direkt beim Login abgefragt, sondern wenn das erste mal auf den Schlüsselbund zugegriffen werden soll.


      Original von Merowinger
      ich sehe ja ein, dass bei zwei kontoverwaltungen mit den selben passwörtern für rein technisch "verschiedene" konten auch zwei stellen existieren, wo man dieses passwort benutzen kann. aber genau das ist ja auch meine absicht. aus organisatorischer sicht sind die beiden konten eben identisch. die mächtigkeit meines passworts soll sich über meine gesamte domäne erstrecken: desktop und laptop.


      Ich verstehe schon was du erreichen willst. Allerdings erkaufst du dir eben diesen Luxus auf Kosten der Sicherheit. Dass du auf beiden Rechnern die gleiche Umgebung vorfindest lässt sich aber auch realisieren, wenn du zwei verschiedene Passwörter hast.


      Original von Merowinger

      Das ist so auch nicht möglich. In der lokalen Benutzerdatenbank stehen überhaupt keine Passwörter sondern nur Hashes. Diese können zwar verwendet werden um ein eingegebenes Passwort zu überprüfen, sie reichen aber nicht aus, um sich an einem Server anzumelden.


      wenn das wirklich "nicht möglich" ist, dann verstehe ich nicht, wieso das dann von windows zu windows funktioniert: ich habe auf meinem desktop pc dateien geshared und dort festgelegt, wer drauf zugreifen darf.


      Wie Windows das macht weiß ich ehrlich gesagt nicht. Einfach das Passwort des aktuellen Benutzers zu senden ist aber mit einer UNIX-Artigen Benutzerverwaltung nicht möglich und letztendlich auch keine gute Idee.

    • Nein, der wird selbstverständlich nicht gespeichert, sonst könnte man sich die Verschlüsselung auch sparen. Der Schlüssel ist das Master-Passwort welches man in den Einstellungen unter Sicherheit vergeben kann. Wenn kein Master-Passwort verwendet wird wird auch nicht verschlüsselt.


      heißt dann aber auch, firefox z.b. hätte keine möglichkeit, herauszufinden, ob das eingegebene master-passwort überhaupt richtig ist? er müsste einfach stumpf das passwort zur entschlüsselung verwenden, eventuell kommen also ganz falsche passwörter raus? oder wird das master-passwort zur überprüfung gehasht und mit einem gespeicherten hash des master-passworts verglichen?

      analoges müsste dann ja auch für das keychain-passwort gelten, oder?



      Die Challenge ist einfach irgend ein Wert, ganz egal was. Hauptsache er ist für jeden Anmelde-Versuch anders. Könnte z.B. einfach eine lange Zufallszahl sein oder das aktuelle Datum mit Uhrzeit oder eine Kombination von beidem. Ganz egal, was es nun ist, so lange es bei jedem Login-Versuch anders ist kann man sich nicht einloggen indem man mitgeschnittene Pakete ein zweites Mal sendet.


      bedeutet das, es wird immer der gleiche hash-algorithmus verwendet? dann wäre der passwort-hash doch immer der gleiche und der angreifer könnte einfach eine neue smb-session aufbauen, eine challenge empfangen und den "allzeit authorisierenden" passwort-hash rüberschicken, der ja immer der gleiche, also immer richtig ist.
    • Original von Merowinger
      heißt dann aber auch, firefox z.b. hätte keine möglichkeit, herauszufinden, ob das eingegebene master-passwort überhaupt richtig ist? er müsste einfach stumpf das passwort zur entschlüsselung verwenden, eventuell kommen also ganz falsche passwörter raus? oder wird das master-passwort zur überprüfung gehasht und mit einem gespeicherten hash des master-passworts verglichen?

      analoges müsste dann ja auch für das keychain-passwort gelten, oder?


      Wenn man einfach nur irgend welche Daten verschlüsselt kann man in der Tat niemals sicher sein, ob man nun das richtige Passwort zum entschlüsseln verwendet hat. Es gibt aber verschiedene Möglichkeiten das Passwort zu überprüfen. Eine wäre einen entsprechenden Hash zu speichern um zu vergleichen, wie du gesagt hast. Allerdings wäre das nicht unbedingt die sicherste Variante. Man könnte auch einfach einen Hash der gesamten unverschlüsselten Datenbank unverschlüsselt abspeichern und diesen dann nach dem entschlüsseln vergleichen. Oder es wird ein fester bekannter Wert mit in der Datenbank gespeichert. Wenn der nach dem entschlüsseln stimmt dann hat das Passwort gestimmt. Gibt sicher auch noch andere Varianten.

      Original von Merowinger

      Die Challenge ist einfach irgend ein Wert, ganz egal was. Hauptsache er ist für jeden Anmelde-Versuch anders. Könnte z.B. einfach eine lange Zufallszahl sein oder das aktuelle Datum mit Uhrzeit oder eine Kombination von beidem. Ganz egal, was es nun ist, so lange es bei jedem Login-Versuch anders ist kann man sich nicht einloggen indem man mitgeschnittene Pakete ein zweites Mal sendet.


      bedeutet das, es wird immer der gleiche hash-algorithmus verwendet? dann wäre der passwort-hash doch immer der gleiche und der angreifer könnte einfach eine neue smb-session aufbauen, eine challenge empfangen und den "allzeit authorisierenden" passwort-hash rüberschicken, der ja immer der gleiche, also immer richtig ist.


      Die meisten dieser Mechanismen werden immer die selbe Hash-Funktion verwendetn, auch wenn es natürlich möglich wäre in der Challenge auch gleichzeitig noch anzugeben, welche Funktion verwendet werden soll. Allerdings kann das nicht alles sein, dafür gibt es einfach zu wenige gute Hash-Funktionen. Aber darum geht es ja garnicht. So etwas wie einen "allzeit authorisierenden passwort-hash" gibt es bei Challenge-Response-Mechanismen nicht. Du hast wohl das Prinzip noch nicht ganz verstanden.

      Vielleicht erkläre ich das ganze noch mal an einem Beispiel: Der Client c will sich mit dem Benutzername "user" und dem Passwort "geheim" an dem Server s anmelden.

      c: Login: user
      s: Challenge: 2007-10-15-16-05-32-53472
      c: Response: md5(2007-10-15-16-05-32-53472:geheim) = 831460d3a4c95c8fa610291526e74a10
      s: Auth OK

      Der Client teilt dem Server also mit welcher Benutzer angemeldet werden soll. Der Server schickt dann die Challenge an den Client, die in dem Beispiel hier aus dem Datum und der Uhrzeit zusammen mit einer Zufallszahl besteht. Der Client setzt die Challenge und das Passwort zusammen und berechnet daraus einen MD5-Hash und schickt diesen an den Server. Der Kursiv gesetzte Teil wird natürlich nicht mit übertragen, nur der Hash hinter dem =.

      Der Server kennt auch das Passwort und die Challenge und kann daraus den selben Hash berechnen und ihn mit dem vom Client gesendetem vergleichen. Stimmen sie überein hat der Client das korrekte Passwort eingegeben und kann autorisiert werden.

      Wenn nun ein Angreifer a die Kommunikation zwischen Client und Server belauscht hat und sich mit dem selbem Hash anmelden will passiert folgendes:

      a: Login: user
      s: Challenge: 2007-10-15-16-05-42-74386
      a: Response: 831460d3a4c95c8fa610291526e74a10
      s: Auth Denied.

      Der Server erwartet den Hash md5(2007-10-15-16-05-42-74386:geheim) = 7965d2baababb1317408a41e321a4761 bekommt aber den alten Hash 831460d3a4c95c8fa610291526e74a10 geliefert. Die Stimmen nicht überein und somit ist sichergestellt, dass der Angreifer a nicht das Passwort kennt. Und da ein Hash eben nur in eine Richtung geht kann man nicht aus dem Hash das Passwort extrahieren.
    • war interessant zu lesen, zumal ich am Montag meine Prüfung in theoretischer Informatik gemacht hab (u.A. in algorithmischer Kryptographie) :)

      falls jemand noch mehr über Oneway-, Hash- und Kompressionsfuntionen lesen möchte, kann er ja mal auf die Vorlesungseite gehen (www-i1.informatik.rwth-aachen.de/Lehre/WS0607/VAK.php)


      Oder sich dieses PDF zu Hashfunktionen durchlesen -> www-i1.informatik.rwth-aachen.…VAK/folien-kapitel-11.pdf

      ich würde es allerdings als ziemlich trocken bezeichnen...
      iMac 24" + 22" Zweitmonitor (luvly!)
      Macbook (white)
      neuen 8GB Video iPod-Nano (da meine Freundin nun meinen alten 2GB Nano hat...)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Moxl ()