SSL_SESSION_ID

SSL_SESSION_ID

am 23.06.2006 15:14:31 von Oliver Treck

Hallo.

Habe ein Problem mit PHP und SSL.

Nutze auf der Page ein SSL-Zertifikat und möchte gerne die SSL_SESSION_ID
auslesen um den Login-Mechanismus sicherer zu machen.
Irgendwie kann ich mit PHP die SESSION_ID jedoch nicht auslesen.

Habe schon getenv('SSL_SESSION_ID') und $HTTP_SERVER_VARS['SSL_SESSION_ID']
versucht, aber beides war jeweils leer.

Muss ich das noch irgendwo auf dem Server aktivieren, oder mache ich was
falsch?

Würde mich über Hinweise freuen.

Vielen Dank,

Oliver Treck

Re: SSL_SESSION_ID

am 23.06.2006 16:18:35 von dev-null-use-reply-adress

Oliver Treck schrieb:

> Nutze auf der Page ein SSL-Zertifikat und möchte gerne die SSL_SESSION_ID
> auslesen um den Login-Mechanismus sicherer zu machen.

Was immer eine SSL_SESSION_ID auch auch sein mag.

> Habe schon getenv('SSL_SESSION_ID') und $HTTP_SERVER_VARS['SSL_SESSION_ID']
> versucht, aber beides war jeweils leer.

6.11. Wie heißt die Variable, die ich suche?
http://www.php-faq.de/q/q-variable-finden.html


Gruß
JPM

Re: SSL_SESSION_ID

am 23.06.2006 16:30:12 von Oliver Treck

In phpinfo() hab ich schon geschaut. Da steht auch nix von SSL_SESSION_ID.

Ich weiß nur, dass sie theoretisch da sein müsste und alle Anforderungen
dafür erfüllt sind (HTTPS, Zertifikat installiert und Session gestartet).

Auch eine Suche bei Google brachte mich zwar zu vielen Seiten, wo die
Variable in osCommerce ausgelesen wird, aber keine große Hilfe.

Deswegen ja meine Anfrage hier!

Grüße, Oliver


"Jens Peter Moeller" schrieb im
Newsbeitrag news:449bf817$0$11064$9b4e6d93@newsread4.arcor-online.net...
> Oliver Treck schrieb:
>
> > Nutze auf der Page ein SSL-Zertifikat und möchte gerne die
SSL_SESSION_ID
> > auslesen um den Login-Mechanismus sicherer zu machen.
>
> Was immer eine SSL_SESSION_ID auch auch sein mag.
>
> > Habe schon getenv('SSL_SESSION_ID') und
$HTTP_SERVER_VARS['SSL_SESSION_ID']
> > versucht, aber beides war jeweils leer.
>
> 6.11. Wie heißt die Variable, die ich suche?
> http://www.php-faq.de/q/q-variable-finden.html
>
>
> Gruß
> JPM

Re: SSL_SESSION_ID

am 23.06.2006 16:34:48 von Frank Schenk

Oliver Treck wrote:
> Hallo.
>
> Habe ein Problem mit PHP und SSL.
>
> Nutze auf der Page ein SSL-Zertifikat und möchte gerne die SSL_SESSION_ID
> auslesen um den Login-Mechanismus sicherer zu machen.
> Irgendwie kann ich mit PHP die SESSION_ID jedoch nicht auslesen.

Hallo Oliver,

SSL spielt sich ja zwischen dem Apachen und dem Client ab. Was ich so im
Web gelesen habe erteilt der Webserver dem Client eine SSL Session Id,
wohl um diesen zu identifizieren.

Aber wozu brauchst du für deine PHP Scripte die SSL Session?

gruß, Frank

Re: SSL_SESSION_ID

am 23.06.2006 16:40:21 von Oliver Treck

> Hallo Oliver,
>
> SSL spielt sich ja zwischen dem Apachen und dem Client ab. Was ich so im
> Web gelesen habe erteilt der Webserver dem Client eine SSL Session Id,
> wohl um diesen zu identifizieren.
>
> Aber wozu brauchst du für deine PHP Scripte die SSL Session?
>
> gruß, Frank


Hallo Frank.

Ganz einfach um einen eingeloggten User besser zu identifizieren, sprich den
Login sicherer zu machen.
PHP-Session verwaltung kennt ja bekanntlich jeder, aber wenn Besucher2
beispielsweise die aktuelle Session-ID von Besucher1 rausbekommt und diese
an seine Anfrage hängt wäre er ja theor. im Kundenmenü von Besucher1.

Um dies vorzubeugen kann man höchstens Daten gegenprüfen, die der Kunde bei
jeder Anfrage mitschickt. Sprich IP Adresse, UserAgent oder halt die
SSL-Session-ID vom Apache.
IP-Check fällt bei den AOL-Kunden schonmal weg, weil die übern Proxypark von
AOL gehen und mit jedem Klick eine andere IP haben. UserAgent ist bei vielen
Browsern eh derselbe und zudem einfach zu fälschen. Bleibt als wirklich
sicheres Kriterium wohl nur noch die SSL-Session-ID.

Gruß, Olli

Re: SSL_SESSION_ID

am 23.06.2006 16:44:44 von Christian Schmelzer

Oliver Treck wrote:
>> Hallo Oliver,
>>
>> SSL spielt sich ja zwischen dem Apachen und dem Client ab. Was ich
>> so im Web gelesen habe erteilt der Webserver dem Client eine SSL
>> Session Id, wohl um diesen zu identifizieren.
>>
>> Aber wozu brauchst du für deine PHP Scripte die SSL Session?
>>
>> gruß, Frank
>
>
> Hallo Frank.
>
> Ganz einfach um einen eingeloggten User besser zu identifizieren,
> sprich den Login sicherer zu machen.
> PHP-Session verwaltung kennt ja bekanntlich jeder, aber wenn Besucher2
> beispielsweise die aktuelle Session-ID von Besucher1 rausbekommt und
> diese an seine Anfrage hängt wäre er ja theor. im Kundenmenü von
> Besucher1.
>
> Um dies vorzubeugen kann man höchstens Daten gegenprüfen, die der
> Kunde bei jeder Anfrage mitschickt. Sprich IP Adresse, UserAgent oder
> halt die SSL-Session-ID vom Apache.
> IP-Check fällt bei den AOL-Kunden schonmal weg, weil die übern
> Proxypark von AOL gehen und mit jedem Klick eine andere IP haben.
> UserAgent ist bei vielen Browsern eh derselbe und zudem einfach zu
> fälschen. Bleibt als wirklich sicheres Kriterium wohl nur noch die
> SSL-Session-ID.
>

Hallo,
setzt halt noch einen Cookie.

Christian

Re: SSL_SESSION_ID

am 23.06.2006 16:47:32 von Oliver Treck

>
> Hallo,
> setzt halt noch einen Cookie.
>
> Christian
>

Ja klar. Dacht ich mir auch schon. Zumindest den AOL-Usern dann als Auflage
machen, damit die auch etwas sicherer surfen.
Problem ist aber, dass man Cookies abschalten kann und ich eine Variante
suche, die mit möglichst jeder Konfiguration läuft.

Re: SSL_SESSION_ID

am 23.06.2006 16:51:15 von Carsten Wiedmann

Oliver Treck schrieb:

> > Hallo Oliver,
> >
> > Aber wozu brauchst du für deine PHP Scripte die SSL Session?
>
> Ganz einfach um einen eingeloggten User besser zu identifizieren, sprich
> den
> Login sicherer zu machen.

Mal ein Zitat aus der modsssl Mailinglist:
| > We thought, that one of possible solutions will be binding user's
| > session to SSL_SESSION_ID (i.e. keeping SSL_SESSION_ID in user's session
| > and comparing it at every request with ID read from this request).
| >
| Don't - SSL_SESSION_ID isn't useable for longer lifetime sessions.

Gruß
Carsten

Re: SSL_SESSION_ID

am 23.06.2006 16:53:05 von Frank Schenk

Oliver Treck wrote:
> Ganz einfach um einen eingeloggten User besser zu identifizieren, sprich den
> Login sicherer zu machen.
> PHP-Session verwaltung kennt ja bekanntlich jeder, aber wenn Besucher2
> beispielsweise die aktuelle Session-ID von Besucher1 rausbekommt und diese
> an seine Anfrage hängt wäre er ja theor. im Kundenmenü von Besucher1.

Theoretisch ja. Bliebe die Frage, wie deine Authorisierung aussieht.

Vorschlag:

Authorisation über Apache oder PHP: Man braucht nun Username und
Passwort von Besucher 1 um sich einzuloggen. Einfaches Session hijacking
ist so nicht möglich und da du HTTPS verwendest erscheinen Username und
Passwort auch nicht im Klartext im Netz.

gruß, Frank

P.S.: 2 Links mit Beispielen

12.6. Apache: Wie kann ich ein Verzeichnis mit einem Passwort schützen?
http://www.php-faq.de/q/q-apache-passwort.html

12.7. Apache: Wie kann ich ein Verzeichnis mit PHP mit einem Passwort
schützen?
http://www.php-faq.de/q/q-apache-php-passwort.html

Re: SSL_SESSION_ID

am 23.06.2006 17:02:01 von Oliver Treck

> Mal ein Zitat aus der modsssl Mailinglist:
> | > We thought, that one of possible solutions will be binding user's
> | > session to SSL_SESSION_ID (i.e. keeping SSL_SESSION_ID in user's
session
> | > and comparing it at every request with ID read from this request).
> | >
> | Don't - SSL_SESSION_ID isn't useable for longer lifetime sessions.
>
> Gruß
> Carsten
>

Das ist aber auf Deutsch gesagt große Sch****.

Hab das wie gesagt auch aus'm Source von osCommerce. Da haben die auch so
einen Check drin.

Gibt's denn dann überhaupt eine Sinnvolle Verifizierung eines Besuchers über
PHP?

Im Prinzip sind dann doch alle Anwendungen über PHP unsicher.

IP-Check: geht nicht, weil nicht alle Provider Ihren Kunden über die gesamte
Onlinezeit dieselbe IP zur Verfügung stellen
UserAgent-Check: zu unsicher
Cookie-Check: nicht jeder nutzt Cookies und auch diese sind von Trojaners
oder anderem Hacker-Zeugs auslesbar
(und das wars schon???)

Re: SSL_SESSION_ID

am 23.06.2006 18:17:59 von Niels Braczek

Oliver Treck schrieb:

> Gibt's denn dann überhaupt eine Sinnvolle Verifizierung eines Besuche=
rs über
> PHP?

Das ist kein Problem, das speziell bei PHP auftritt.
Wenn du mit 'sinnvoll' 'absolut sicher' meinst -- nein. Es werden immer
nur Bits über das Netz geschoben. Und Bits haben keine Absender-Kodieru=
ng.

> Im Prinzip sind dann doch alle Anwendungen über PHP unsicher.

s/PHP/Netz/

Nutze die PHP-Session. Lasse deren ID nur immer für einen Request gül=
tig
sein (Stichwort: session_regenerate_id). Damit ist sie praktisch nicht
mehr entführbar.

MfG
Niels

--=20
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------