Caching von Zertifikaten und Authentifizierungen
Hi. Wenn ich mich bei einem Webserver authentifiziere, speichert der Browser das Login in einem Cache. (Weil HTTP ja nicht sessionorientiert ist wie zB FTP und man sonst bei jedem Bildchen nach dem Login gefragt werden würde, logisch). Das ist allerdings ziemlich ungeschickt, wenn das an einem Mehrbenutzerplatz passiert, und jemand vergisst, den Browser zu schliessen. Noch schwieriger wird es bei Authentifizierungen per Zertifikat. Solange der Browserprozess nicht richtig geschlossen wurde, kann jeder die (SSL) Verbindung übernehmen. An hijacken der Verbindung durch MITM oder lokalen Sniffern gar nicht erst zu denken... Daher suche ich nach einer Lösung, möglichst serverseitig dieses Konfigurierne zu können. Gibt es irgendwo brauchbare Informationen, wie dieses Caching funktioniert, oder ob man das Problem irgendwie umgehen kann? Gibt es vielleicht schon Lösungen, die zB mit einem Sessiontimeout irgendwo? Ich würde gerne mit Apache unter Linux einen Webbereich aufsetzen, bei dem man sich mit einem (SSL-)Nutzerzertifikat _oder_ einer Username:Passwort-Kombination authentifizieren muss (je nach Sicherheitslevel). Diese ganze Absicherung ist aber ziemlich unnütz, wenn der Browser so schluderig mit dem Login umgeht... Danke für Tipps MfG Gregor Mit schönen Grüßen von Yahoo! Mail - http://mail.yahoo.de
Hallo Gregor, hallo Leute, Am Freitag, 16. April 2004 12:59 schrieb Gregor K.:
Wenn ich mich bei einem Webserver authentifiziere, speichert der Browser das Login in einem Cache. (Weil HTTP ja nicht sessionorientiert ist wie zB FTP und man sonst bei jedem Bildchen nach dem Login gefragt werden würde, logisch). Das ist allerdings ziemlich ungeschickt, wenn das an einem Mehrbenutzerplatz passiert, und jemand vergisst, den Browser zu schliessen.
Wenn Du so willst, hilft auch der beste "Logout"-Button nichts ;-)
Noch schwieriger wird es bei Authentifizierungen per Zertifikat. Solange der Browserprozess nicht richtig geschlossen wurde, kann jeder die (SSL) Verbindung übernehmen. An hijacken der Verbindung durch MITM oder lokalen Sniffern gar nicht erst zu denken... Daher suche ich nach einer Lösung, möglichst serverseitig dieses Konfigurierne zu können. Gibt es irgendwo brauchbare Informationen, wie dieses Caching funktioniert, oder ob man das Problem irgendwie umgehen kann? Gibt es vielleicht schon Lösungen, die zB mit einem Sessiontimeout irgendwo?
Guck Dir mal phpMyAdmin an, insbesondere das, was beim Klick auf "Logout" passiert - das scheint recht zuverlässig zu funktionieren. Allerdings funktioniert das Ganze wohl nur, weil die Anmeldeaufforderung von PHP gemanagt wird (keine Ahnung, ob/wie das für Zertifikate klappt) Noch eine Einschränkung: In phpMyAdmin ist das Ganze anscheinend so realisiert, dass nach der Abmeldung der Zugang für diesen User erstmal gesperrt wird. Man kann sich also erst wieder einloggen, wenn sich zwischendurch jemand anders angemeldet hatte (oder nach einem Browser-Neustart).
Ich würde gerne mit Apache unter Linux einen Webbereich aufsetzen, bei dem man sich mit einem (SSL-)Nutzerzertifikat _oder_ einer Username:Passwort-Kombination authentifizieren muss (je nach Sicherheitslevel). Diese ganze Absicherung ist aber ziemlich unnütz, wenn der Browser so schluderig mit dem Login umgeht...
Mit Benutzername und Passwort ist das Ganze wohl nicht allzu schwierig, siehe phpMyAdmin. Mit SSL-Zertifikaten kenne ich mich nicht aus, sage also nichts ohne meinen Anwalt ;-) Grundsätzlich: Falls Du *alle Seiten* des geschützten Bereichs über PHP leiten kannst, könntest Du das Login mit PHP-Sessions realisieren (der Browser bekommt dann nur ein Cookie mit der Session-ID), das lässt sich deutlich besser steuern als das Login infolge von "401 Unauthorized". Gruß Christian Boltz -- Bei etwas größeren Dingen mit 6stelligem Budget kommt gern mal "plötzlich" ein Onlineshop dazu. Oder ein Ticketsystem. So ganz von alleine. Gucki, ich bin eine kleine Kundenidee - ist das viel Arbeit? ;) [Ratti in suse-linux]
participants (2)
-
Christian Boltz
-
Gregor K.