Wie sicher ist Unix Basic Crypt
Wie sicher ist Unix Basic Crypt
Webserver und Proxy Authentifizierung läuft lediglich mit der Basic verschlüsslung.
Welche Möglichkeiten gibt es diese zu knacken?
Welche Möglichkeiten gibt es diese zu knacken?
- pdreker
- Beiträge: 8298
- Registriert: 29.07.2002 21:53:30
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Nürnberg
Da der Username und das Passwort im Klartext über das Netz geschickt werden, kann man die Verbindung einfach sniffen (tcpdump, ethereal und andere Tools) und das Passwort dort trivial auslesen.
https (HTTP + SSL) dichtet diesen Angriffsvektor einigermassen zuverlässig ab, da der Angreifer dann nicht nur mitlesen können muss, sondern auch den Traffic manipuieren können muss (sog. Man-in-the-middle Attacke)
Auf dem Server (wenigstens bei Apache) wird das Passwort verschlüsselt gespeichert, und sollte damit wenigstens so sicher sein, wie die UNIX Login Passwörter.
Patrick
https (HTTP + SSL) dichtet diesen Angriffsvektor einigermassen zuverlässig ab, da der Angreifer dann nicht nur mitlesen können muss, sondern auch den Traffic manipuieren können muss (sog. Man-in-the-middle Attacke)
Auf dem Server (wenigstens bei Apache) wird das Passwort verschlüsselt gespeichert, und sollte damit wenigstens so sicher sein, wie die UNIX Login Passwörter.
Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de
Jabber: pdreker@debianforum.de
BTW, Nicht "Klartext" im engsten Sinne, es wird "Benutzername:Passwort" in Base 64 "kodiert" und dann übertragen.pdreker hat geschrieben:Da der Username und das Passwort im Klartext über das Netz geschickt werden, kann man die Verbindung einfach sniffen (tcpdump, ethereal und andere Tools) und das Passwort dort trivial auslesen.
sehr interessant.
zu welchem zweck wird denn dann http auth base64 kodiert? dass es nicht ganz so offensichtlich ist?
ich hatte testweise schon mal probiert passwörter aus der verbindung zu meinen apachen zu sniffen - erfolglos, und hab in folge keine weiteren absicherungen vorgenommen
zu welchem zweck wird denn dann http auth base64 kodiert? dass es nicht ganz so offensichtlich ist?
ich hatte testweise schon mal probiert passwörter aus der verbindung zu meinen apachen zu sniffen - erfolglos, und hab in folge keine weiteren absicherungen vorgenommen
Quis custodit custodes?
- pdreker
- Beiträge: 8298
- Registriert: 29.07.2002 21:53:30
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Nürnberg
Wenn's nicht richtig verschlüsselt ist, ist es Klartext... Wenigstens vom Sicherheitsaspekt her.
Patrick
Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de
Jabber: pdreker@debianforum.de
Sehr interessant. Ich werde mir mal dasBase64 anschauen.
Bei einem Webserver habe ich ja die Möglichkeit mit SSL zu arbeiten. Was gibt es aber für Möglichkeiten bei einem Proxy Server um den Benutzername und Passwort sicher zu übertragen?
Bei einem Webserver habe ich ja die Möglichkeit mit SSL zu arbeiten. Was gibt es aber für Möglichkeiten bei einem Proxy Server um den Benutzername und Passwort sicher zu übertragen?
Base64 ist wie bereits gemerkt ein Kodierung - und keine Verschlüsselung. Somit wird das Passwort im Klartext übertragen. Das macht das ganze anfällig fürs sniffen.
Ebenfalls problematisch ist ggf. die nicht stattfindende Authentifizierung - man könnte hier einiges spoofen.
Im .htpasswd werden die Kennwörter entweder in einer MD5-Abart oder im crypt-Format abgelegt. Beide Formate sind anfällig gegen Dictionary-Attacken (ich weiss nicht, inwieweit ein seed verwendet wird) - beim crypt greift wahrscheinlich auch ein Brute-Force.
Aber: Wenn man keinen Zugriff auf die .htpasswd Datei hat und auch nicht die Möglichkeit hat, die Verbindung abzuhören (was bei Internet-Verbindungen zu 99,9999% der Fall ist) dann ist der .htaccess Schutz gar nicht so schlecht...
Die Linux-Anmeldung ist mittlerweile um einiges sicherer. Heute wird eigentlich nur noch md5 verwendet (bzw. es sollte zumindest so ein), und dazu noch ein ordentlicher seed
Ebenfalls problematisch ist ggf. die nicht stattfindende Authentifizierung - man könnte hier einiges spoofen.
Im .htpasswd werden die Kennwörter entweder in einer MD5-Abart oder im crypt-Format abgelegt. Beide Formate sind anfällig gegen Dictionary-Attacken (ich weiss nicht, inwieweit ein seed verwendet wird) - beim crypt greift wahrscheinlich auch ein Brute-Force.
Aber: Wenn man keinen Zugriff auf die .htpasswd Datei hat und auch nicht die Möglichkeit hat, die Verbindung abzuhören (was bei Internet-Verbindungen zu 99,9999% der Fall ist) dann ist der .htaccess Schutz gar nicht so schlecht...
Die Linux-Anmeldung ist mittlerweile um einiges sicherer. Heute wird eigentlich nur noch md5 verwendet (bzw. es sollte zumindest so ein), und dazu noch ein ordentlicher seed
naja, aber im lan ist das mithören kein problem
welcher möglichkeiten bleiben?
ssl ist wohl etwas overkill, und selbstsignierte zertifikate sind wohl auch nicht so das wahre (lästige browsermeldungen)
ev http://httpd.apache.org/docs/mod/mod_auth_digest.html ?
nur stört daran:
welcher möglichkeiten bleiben?
ssl ist wohl etwas overkill, und selbstsignierte zertifikate sind wohl auch nicht so das wahre (lästige browsermeldungen)
ev http://httpd.apache.org/docs/mod/mod_auth_digest.html ?
nur stört daran:
Status: Experimental
Quis custodit custodes?
[quote="fago"]naja, aber im lan ist das mithören kein problem[/ssh]
Im LAN hat man aber auch eine vertrauenswürdige Umgebung.
Wenn du gegen "sniffen" resistent sein willst, musst du auf was mit public keys zurückgreifen - und da bleibt letztlich nur VPN, SSH (tunnel) oder SSL.
Aber selbst da bleibt die Möglichkeits des sniffen, weil die meisten User jede Browserwarnung über abgelaufene oder nicht vertrauenswürdige Zertifikate einfach wegklicken, weil es davon so viele gibt...
Eine Stufe drunter wäre noch ein Challenge-Response Verfahren angesiedelt. Wenn die wirklich gut implementiert sind (und das sind leider die wenigsten) dann bieten die auch einen recht guten Schutz. Wenn du ein eigenes Skript absichern willst, kannst du sowas auch selber implementieren.
Im LAN hat man aber auch eine vertrauenswürdige Umgebung.
Wenn du gegen "sniffen" resistent sein willst, musst du auf was mit public keys zurückgreifen - und da bleibt letztlich nur VPN, SSH (tunnel) oder SSL.
Aber selbst da bleibt die Möglichkeits des sniffen, weil die meisten User jede Browserwarnung über abgelaufene oder nicht vertrauenswürdige Zertifikate einfach wegklicken, weil es davon so viele gibt...
Eine Stufe drunter wäre noch ein Challenge-Response Verfahren angesiedelt. Wenn die wirklich gut implementiert sind (und das sind leider die wenigsten) dann bieten die auch einen recht guten Schutz. Wenn du ein eigenes Skript absichern willst, kannst du sowas auch selber implementieren.
Nun etwas was nicht ganz zum Thema passt - aber vielleicht von Interesse ist.
Interessiert es jamend wie man die Browsermeldung von nicht Vertrauenswürdigen Zertifikate auf dem client wegbekommt?
Ich habe da ein bissel gesucht und bin auf eine Lösung gestößen - muss zwar auf jedem Client gemacht werden - aber nur 1 mal.
Ich Frage wil ich keine Lust habe das umsonst niederzuschreiben....
Interessiert es jamend wie man die Browsermeldung von nicht Vertrauenswürdigen Zertifikate auf dem client wegbekommt?
Ich habe da ein bissel gesucht und bin auf eine Lösung gestößen - muss zwar auf jedem Client gemacht werden - aber nur 1 mal.
Ich Frage wil ich keine Lust habe das umsonst niederzuschreiben....
- pdreker
- Beiträge: 8298
- Registriert: 29.07.2002 21:53:30
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Nürnberg
Naja, wenn man selbst signierte Zertifikate verwendet, oder man selbst seine eigene CA ist (Certification Authority), dann muss man den Clients halt die entsprechenden RootCA Zertifikate bereitstellen, damit diese die ausgelieferten Zertifikate vom Server auch verifizieren können...
Habe ich das richtig verstanden?
Patrick
Habe ich das richtig verstanden?
Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de
Jabber: pdreker@debianforum.de