SSL Client Zertifikat wird akzeptiert... sollte es aber nicht?!

DerTiger

Lt. Junior Grade
Registriert
Jan. 2006
Beiträge
364
Hi,

ich habe einen IIS mit SSL und Mutual Authentication aufgesetzt.

SSL und Usermapping funktioniert soweit gut, allerdings akzeptiert der Server Zertifikate, die er eigentlich ablehnen sollte.

erzeugt habe ich :
Selfsigned CA
-> Server Zert
-> Client Zert

Mit den jeweiligen Common Names des entsprechenden Hosts.

Auf dem Server habe ich das Server Zert. eingespielt und die CA in Win-Zertstore als vertraunenswürdiger Herausgeber eingetragen.
Auf beide Zertifikate habe ich im IIS ein One-To-One Mapping auf einen User erstellt.
Anonymes Login ist deaktiviert.
(guide: https://hafizmohammed.medium.com/configuring-client-certificates-on-iis-95aef4174ddb)

Auf dem Server habe ich Firefox installiert, als Client das Server-Zert und die CA installiert und lokal getestet. Funktioniert wie erwartet.
Auf dem Client habe ich im Firefox zur Authentifizierung das Client-Zert eingespielt und die CA um Trust herzustellen.

Funktioniert soweit so gut, beim Zugriff auf den Server wird das Zertifikat angefragt, ich präsentiere das Client Zert, Zugriff wird gewährt.

Dann habe ich aus Spaß mal das Server-Zert auf dem Client in den Firefox eingespielt, und getestet ob das Zertifikat wie zu erwarten abgelehnt wird, da die Client-Authentifizierung damit ja scheitern sollte: Tut sie nicht.

Der Server akzeptiert vom Client auch das Server Zertifikat, obwohl dies ja anhand des Common Names scheitern sollte.


Jemand eine Idee was da schief läuft?!
 
Zuletzt bearbeitet:
Hast du vorher auch verifiziert, das die Verbindung ohne Zert abgelehnt wird ? Nicht das der trotzdem alles rein lässt. Auch mal nen anderen Browser testen eventuell.
 
Ohne Zertifikat bekomme ich entweder 401 unauthorised oder 403 forbidden, das funktioniert.
Als alternativen Browser habe ich leider nur den IE zur Verfügung, der gibt:

1618838391472.png
 
Hast Du das Serverzertifikat auch auf einen User gemappt? Ich würde in diesem Fall davon ausgehen, dass die Anmeldung (wie beschrieben) natürlich funktioniert, unabhängig ob die Anmeldung von Client oder Server (der in diesem Fall ja auch ein Client ist) erfolgt.
 
Ja, das Serverzertifikat ist auf einen User gemappt.
Aber das Serverzertifikat ist für den Client als Authentizitätsnachweis nicht gültig. Das sollte doch abgelehnt werden?
 
Sind die korrekten Usage-Attribute in den Zertifikaten gesetzt ("key usage" und "extended key usage")? Ich kenne mich mit dem IIS nicht aus, aber kann man da ggf. konfigurieren, ob er die Usage-Attribute beachten soll oder nicht?
 
  • Gefällt mir
Reaktionen: DerTiger
Hatte grade Rücksprache mit einem Kollegen.
Weiß nicht ob es der weißheit letzter schluss ist, aber macht tatsächlich irgendwo Sinn:

Scheinbar ist es bei Auth eher sorum, dass das Client Zertifikat eher auf einem 'User-Level' gesehen wird. Heißt solange ein User das Zertifikat vorweisen kann, ist es verhältnismäßig egal, von welchem Client (mit welchem CN oder auch IP) aus er das tut.

Solange das Zertifikat von der CA als valide angesehen wird, ist die Verbindung damit erstmal OK.

Das weitere geht dann wohl mit Filterregeln die man untergeordnet anbringen: "wenn zertifikat soundso, dann prüfen ob CN / IP stimmt" oder sowas in der Regel... Muss ich mich grade noch aufschlauen.
 
DerTiger schrieb:
Heißt solange ein User das Zertifikat vorweisen kann, ist es verhältnismäßig egal, von welchem Client (mit welchem CN oder auch IP) aus er das tut.
Im Sinne der Validierung im Rahmen eines x509 Zertifikats ist das richtig. Der Server fragt eine Authentifizierung an und der Client zeigt sein Zertifikat (ganz simpel ausgedrückt). Der Server prüft dann, ob das Zertifikat von der richtigen CA signiert ist und fertig.

Über die "key usage" und "extended key usage" kann dabei eingeschränkt werden, wofür ein Zertifikat (bzw. der zugehörige private Schlüssel) genutzt werden darf. Auf dem Weg kann man ein Zertifikat z.B. als "Serverzertifikat" markieren. Eine Authentifzierung als Client ist dann damit nicht möglich, sofern die Serverseite die usage prüft.

Weitere Einschränkungen (z.B. Prüfung auf Quell IP oder konkrete Werte in anderen Attributen) sind klassisch mit x509 Zertifikaten nicht vorgesehen. Das muss dann die verwendete Software als zusätzliches Feature anbieten.
 
  • Gefällt mir
Reaktionen: DerTiger
Jo, so habe ich das jetzt auch aufgefasst.

Schade dass das nicht direkt am Zertifikat festgemacht werden kann.
Aber ist wohl so.

Danke fürs mitdenken. :)
 
Zurück
Oben