PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zertifikat - Wie funktioniert es?



SethGecko
18.07.2006, 09:53
hallo community.

ich habe fragen über folgendes probelm:

auf einem www-server soll ein zertifikat "installiert" werden... ein client kann auf diesen server connecten.

das zertifikat soll nun überprüfen, ob der user überhaupt zugriff auf diesen server haben darf oder nicht.


wie kommt der server an so ein zertifikat (reicht ssl?)
wie kommt der client an ein zertifikat?
wie ist der ablauf?
die wikipedia seite, bringt mich nicht weiter... und ich habe keine ahnung, was ich bei google eingeben soll.

rygar
18.07.2006, 10:20
Also, erstmal was zu den Zertifikaten :

Ein Zertifikat sorgt nicht für die Verschlüsslung, ein Zertifikat sorgt für eine Authentifizierung.

Klar... SSL ist auch die sichere Übertragung, aber nur weil nachdem für den Client klar ist das er mit dem richtigen Server spricht ein Schlüssel ausgehandelt wird und dann zwischen Client und Server alles verschlüsselt wird.

Siehe : http://www.bsi-fuer-buerger.de/browser/02_05.htm

Wenn Du jetzt deine eigene CA hast gibt es die Möglichkeit deinen Usern ein Zertifikat auszustellen, das von deiner CA unterschrieben ist.

Dem Apache sagst Du dann, das jeder User aus deiner CA (dafür braucht der Apache den CA Key) auf die Seite darf.

Beispiel :


# require a client certificate which has to be directly
# signed by our CA certificate in ca.crt
SSLVerifyClient require
SSLVerifyDepth 1
SSLCACertificateFile conf/ssl.crt/ca.crt


Weitere Infos hier : http://www.modssl.org/docs/2.8/ssl_howto.html

SethGecko
18.07.2006, 10:30
ich hab gerade noch ein paar infos bekommen...

also... der user connected durch eine firewall zu einem gateway. und auf diesem gateway, soll dieses zertifikat installiert werden.

rygar
18.07.2006, 10:42
Sei mir nicht böse, aber lies Dir doch bitte die Sachen oben erstmal durch und versteh wie SSL und Zertifikate funktionieren.

Wenn Du das nicht machst wirst Du NIE eine sichere Authentifizierung bekommen weil Du einfach die Theorie nicht verstanden hast.

theton
18.07.2006, 11:56
ich hab gerade noch ein paar infos bekommen...

also... der user connected durch eine firewall zu einem gateway. und auf diesem gateway, soll dieses zertifikat installiert werden.
Ich kann rygar nur zustimmen. Du solltest dich evtl. mal damit auseinander setzen, was Zertifikate ueberhaupt sind und was SSL tut. Dann wuesstest du, dass Server-Zertifikate lediglich sicher stellen, dass der Client sich mit dem richtigen Server unterhaelt und SSL lediglich fuer eine zusaetzliche Verschluesselung im HTTP sorgt. Das ganze hat also mit der Benutzer-Authentifizierung garnichts zu tun. Das was du da vor, laesst sich wohl am Besten ueber eine Key-Authentifizierung z.B. ueber einen SSH-Tunnel regeln.

mcas
18.07.2006, 14:10
Man kann den Apache so einstellen, dass sich nur Benutzer mit einem Zertifikat auf den https - Server verbinden können. Die Apachedoku geht da mein ich mit ein paar Beispielen drauf ein.
Also nicht "das Zertifikat" prüft sondern der Webserver lässt nur Clients mit bestimmten Zertifikaten zu.

SethGecko
18.07.2006, 14:34
bis ich diesen thread eröffnet habe, hatte ich mich mit dem thema noch nie wirklich befasst...

ich habe nur den auftrag wiedergegeben, welchen ich bekommen habe.

in de letzten stunden, habe ich schon etwas gelesen...

theton
18.07.2006, 21:47
Man kann den Apache so einstellen, dass sich nur Benutzer mit einem Zertifikat auf den https - Server verbinden können. Die Apachedoku geht da mein ich mit ein paar Beispielen drauf ein.
Also nicht "das Zertifikat" prüft sondern der Webserver lässt nur Clients mit bestimmten Zertifikaten zu.
Kannte ich bisher nur ueber LDAP und andere DBs und Client-Schluessel. Aber ich habe gerade nachgeschaut und festgestellt, dass das tatsaechlich auch ueber mod_ssl und Client-Zertifikate machbar ist. War mein Fehler, sorry. Der Trick ist einfach, dass der Server kein Server-Zertifikat zur Verfuegung stellt, sondern stattdessen ein Client-Zertifikat anfordert. Dazu muessen im SSLCACertificatePath die CA-Zertifikate zur Validierung der Client-Certs zur Verfuegung stehen. Einfach mal einen Blick in http://httpd.apache.org/docs/2.2/mod/mod_ssl.html werfen. :)