'single sign on'. Sichere Lösungsansätze?

Hi,

ich möchte auf einem Intranet Server (S.u.S.E Linux mit Apache )verschiedene Webapplikationen mit Perl entwicklen. Diese greifen via oraperl auf eine Oracle DB zu. Da Benutzer unschiedliche Rechte besitzen sollen, möchten ich einen Benutzer eindeutig identifizieren können. Er soll sich also einmalig pro BrowserSession mit Benutzer/Kennwort anmelden müssen, um dann verschiedene Applikationen ohne Neuanmeldung nutzen zu können. Wie sicher sind an dieser Stelle Cookies? Kann man erreichen, dass ein Cookie nach Schliessen des Browsers gelöscht wird. Wie sicher bzw. praktikabel schätzt ihr diese Lösung ein.

Wenn mir jemand außerdem andere Ansätze nennen kann wäre ich ihm sehr dankbar.

Thomas

Hallo,

Er soll sich also
einmalig pro BrowserSession mit Benutzer/Kennwort anmelden
müssen, um dann verschiedene Applikationen ohne Neuanmeldung
nutzen zu können.

Nur eins vorneweg. Sessionmanagement ist ein seeeeehr umfangreiches Thema über das sich vieeeeele Diplomarbeiten schreiben lassen…

Wie sicher sind an dieser Stelle Cookies?

Kommt auf die Sichtweise an. Cookies sind einfach nur Zeilen in einer Textdatei auf dem Clientrechner, die der Clientrechner wieder mit zurückschickt. Die Daten lassen sich
a) in der Textdatei auf dem Clientrechner manipulieren
b) man kann gleich von Anfang an, gefälscht Daten schicken, wenn man sich seinen eigenen Client bastelt, bzw. eine Verbindung von Hand aufbaut.

Eine Serverseitige Lösung wäre hier bestimmt sicherer… Im Intranet hats Du ja evtl. die Möglichkeit die IP Adresse richtig mitzuverwenden, da keine Proxies im Spiel sind, oder gar die Leute u.a. an Ihrer IP Adresse (sofern statisch) zu erkennen. Nur auf die IP würde ich mich aber auch nicht verlassen… wie leicht ist die IP Adresse eine Rechners zu ändern, oder gar zu spoofen (fäslschen)…

Kann man erreichen, dass ein Cookie nach Schliessen des
Browsers gelöscht wird.

Das ist absolut möglich und bei Cookies auch so vorgesehen…

Wenn mir jemand außerdem andere Ansätze nennen kann wäre ich
ihm sehr dankbar.

Kommt drauf an, was Du an Sicherheit willst. grad ein einem Intranet kann ein Angreifer ja sehr leicht den Netzwerkverkehr mitsniffen und so auch Passwörter usw auslesen. Ansonsten gibt es schöne Ansätze für Serverseitiges Sessionmanagement (Apache kann sowas AFAIK, PHP hat sowas in der Version 4 eingebaut, und für Version 3 gibt es die PHP-Lib). Für Perl könnnte es sowas durchaus auch geben (such mal im CPAN).

Durchaus sicher (für Paranoide) könnte ich mir folgendes vorstellen:
Das ganze (oder zumindest die Passwortabfrage) über eine SSL Verbindung (ist kein sooo riesen Aufwand). Dann eine SessionID generieren (Am Besten in Abhängigkeit der IP, Der Zeit und einer sehr starken Zufallskomponente). Diese wird Serverseitig mitgereicht (also nicht durch Cookies, oder Formularfelder). Die SessionID verfällt nach wenigen Minuten Idle-Zeit, und auf jeden Fall nach Zeit X. Die Passwörter haben natürlich gewisse Vorgaben und das Script sperrt einen Account nach X Fehleingaben…

Das war jetzt mal kurz aus der Hüfte geschossen… Da könne ndurchaus noch Fehler drin sein, bzw. es kann durchaus sein, dass es da noch bessere Tools gibt. Ich bin in der Hinsicht absoluter Theoretiker. Und Halblaie…

Ach ja, der ganze Aufwand lohnt sich natürlich nur, wenn der Server auch entsprechend gegen Einbruch gesichert ist…

So nu reichts erstmal…

Wie sicher wolltest Du es denn…

Arne