Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: [DE] [solved]Fragen zum Verständnis: ssl-client-Zertifikate  (Read 2212 times)

Offline ayla

  • User
  • Posts: 1.745
[DE] [solved]Fragen zum Verständnis: ssl-client-Zertifikate
« on: 2013/03/25, 11:41:16 »
Hallo

Kann mir jemand eine Erklärung geben wie genau der Verbindungsaufbau diesbezüglich abläuft oder einen Link wo das anschaulich erklärt wird?

Meine Vorstellung war, daß ich ein Zertifikat nach dem Erzeugen mit openssl und Bestätigen durch den Server (self-signed) dort auch hinterlegen muß. Also in Form einer .pem-Datei oder .key und .crt.

Das hat sich gerade als Irrtum heraus gestellt, als ich irrtümlich ein Zertifikat benutzte, welches ich beim Client bereits durch ein neueres ersetzt glaubte, und dieses trotzdem noch funktionierte, obwohl ich alle alten diesbezüglichen Dateien auf dem Server entfernt und diesen neu gestartet hatte.

Also häng' ich im Moment an der Frage: Was genau überprüft eigentlich der Server wenn er von einem Client kontaktiert wird?
Nur ob es sich um ein von ihm selbst signiertes Zertifikat handelt, wobei es egal ist welches, Hauptsache noch gültig?
Denn wenigstens der Schlüssel meines "alten" Client-Zertifikats hätte ja mit dem neu erzeugten, gleichen Namens aber unterschiedlicher Nummer, nicht mehr übereinstimmen dürfen.
Hat das was mit "ssl.verifyclient.depth = x" beim lighttpd zu tun? Gibts da denn keine halbwegs allgemein verständlichen Anleitungen/Erklärungen zu :?

Oder was macht der Server mit dem ihm zur Signierung vorgelegten Zertifikat? Speichert er das "automatisch" (wo?) ab?



Gruß
ayla

Offline cas

  • User
  • Posts: 401
[solved]Fragen zum Verständnis: ssl-client-Zertifikate
« Reply #1 on: 2013/03/25, 21:45:09 »
in http://buecher.lingoworld.de/apache2/mod_ssl.html steht folgendes, falls du das meinst:

Der Aufbau der gesicherten Verbindung erfolgt nach folgendem Schema:

1    Der Client fordert eine URL mit dem Schema https: an.

2    Der Server sendet dem Client sein Zertifikat und seinen öffentlichen Schlüssel.

3    Der Client überprüft das Zertifikat. Wenn es nicht von einer bekannten vertrauenswürdigen ZertfZertifizierungsstelle signiert wurde, warnt der Browser den Benutzer und fragt, ob er mit der Anfrage fortfahren soll. Ähnliches geschieht, wenn das Zertifikat abgelaufen ist oder zurückgezogen wurde. Abbildung 1 zeigt, wie eine solche Meldung im Internet Explorer aussieht.

4    Nachdem der Client (oder der Benutzer) das Zertifikat anerkannt hat, sendet der Server den Session-Key, der zur Verschlüsselung des gesamten Datenverkehrs während der Sitzung verwendet wird.

Offline ayla

  • User
  • Posts: 1.745
[solved]Fragen zum Verständnis: ssl-client-Zertifikate
« Reply #2 on: 2013/03/25, 22:30:38 »
Hi,

danke cas, so eine Erklärung in etwa hatte ich mir vorgestellt, aber zum Ablauf bei den Klient-Zertifikaten.
Zu den Server-Zertifikaten hatte ich auch schon Ablauf-Diagramme gesehen, nur vergleichbares mit den Klient-Zertifikaten noch nicht. Und irgendwo hab ich da noch einen Knoten in irgendeiner Leiterbahn. :)
Sie werden wohl vom Server ähnlich wie ein Passwort abgefragt, aber wie die Überprüfung dann aussieht -was überprüft wird, wie- hab ich wohl noch nicht verstanden.
Wahrscheinlich ist die Erklärung bereits in dem von Dir verlinkten Text -vermutlich hier:
Quote
Digitale Signatur. Eine Signatur wird benutzt, um die Identität eines Absenders zu gewährleisten. Damit dies wirklich sichergestellt ist, muss die Signatur von einer vertrauenswürdigen Zertifizierungsstelle beglaubigt werden. Anschließend kann der Anbieter Inhalte mit seinem privaten Schlüssel signieren; mit seinem öffentlichen Schlüssel können Empfänger seine Identität überprüfen.
Wobei die vertrauenswürdige Stelle der Server in diesem Fall selbst ist. An dem Punkt muß ich wohl mal etwas tiefer rein.


Gruß
ayla

Offline cas

  • User
  • Posts: 401
Re: Fragen zum Verständnis: ssl-client-Zertifikate
« Reply #3 on: 2013/03/26, 00:43:30 »
Quote from: "ayla"
Kann mir jemand eine Erklärung geben wie genau der Verbindungsaufbau diesbezüglich abläuft
diese frage bezieht sich auf das protokoll.
wie ich es verstanden habe, ist es optionaler teil des tsl-handshakes.
http://de.wikipedia.org/wiki/Transport_Layer_Security#TLS_Handshake_Protocol
im apachen wird es durch SSLVerifyClient aktiviert.

damit das als passwortersatz funktionieren kann, muss das client-zertifikat auf dem server irgendwie gespeichert werden (deine eigentliche frage).
 
hier steht was von ldap.
http://docs.oracle.com/cd/E19424-01/820-4811/aakhe/index.html

hier steht was von user account und datenbank.
http://cweiske.de/tagebuch/ssl-client-certificates.htm

das müsstet du mal zu ende recherchieren, wie da eine praktische lösung aussieht.

vg, c

Offline cas

  • User
  • Posts: 401
[solved]Fragen zum Verständnis: ssl-client-Zertifikate
« Reply #4 on: 2013/03/26, 01:45:58 »
mit SSLCACertificateFile bzw. SSLCACertificatePath lassen sich PEM clientzertifikate auf dem server abspeichern (apache).
http://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslcacertificatefile

das sollte es sein, was du suchst.

im deinem browser muss das zertifikat auch noch landen.
http://www.phpgangsta.de/client-zertifikate-als-sicherer-login-ersatz

c

Offline ayla

  • User
  • Posts: 1.745
[solved]Fragen zum Verständnis: ssl-client-Zertifikate
« Reply #5 on: 2013/03/26, 10:05:33 »
Hi,

das war's was ich gesucht hatte und das macht den Prozess klar.
Danke für Deine Mühe, ich hatte mich selbst schon dusselig gesucht.

Die Frage wo genau das bei lighttpd abgelegt wird... mal sehen ob ich dazu 'ne doku finde. Dann wird wohl auch klar wieso das alte Zertifikat noch benutzbar ist.

Und wie das mit der Passphrase beim Erstellen eines Zertifikats funktioniert bleibt für mich in diesem Zusammenhang auch noch zu klären. Ich war davon ausgegangen daß die Passphrase weniger wichtig ist, sondern nur als Teil der Grundlage eines (pseudo)zufällig generierten Schlüssels benutzt wird. Wenn ich mich da irre (also gleiche Passphrase=gleicher Schlüssel) wäre auch das eine Erklärung.

Gruß
ayla