05.11.2013 Aufrufe

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

380 7 Client-/Server-Programmierung <strong>mit</strong> Open<strong>SSL</strong><br />

der Verifikation nicht die maximale Länge der Zertifikatskette überschritten<br />

wurde, entspricht der Inhalt der Variablen ok noch immer dem Ergebnis der<br />

Open<strong>SSL</strong>-internen Prüfung.<br />

7.3.3 Identitätsabgleich <strong>mit</strong> digitalen Zertifikaten<br />

Wurde das vom Server präsentierte X.509-Zertifikat im Rahmen der Open<strong>SSL</strong>internen<br />

Prüfung für gültig <strong>und</strong> vertrauenswürdig bef<strong>und</strong>en <strong>und</strong> hat auch die<br />

hinterlegte Callback-Funktion nichts mehr am Zertifikat auszusetzen (wie etwa<br />

eine Überschreitung der maximalen Zertifikatskettenlänge), so wird die<br />

<strong>SSL</strong>-Verbindung zwischen den beiden Kommunikationspartnern vollständig<br />

aufgebaut. Bevor nun Client <strong>und</strong> Server auf der Anwendungsebene <strong>mit</strong> dem<br />

Austausch von Daten beginnen können, gilt es in einem letzten Schritt zu<br />

überprüfen, ob der Zertifikatsnehmer <strong>mit</strong> dem gewünschten Kommunikationspartner<br />

übereinstimmt.<br />

Genauso, wie bei einem Identitätstest via Personalausweis das Lichtbild sowie<br />

einige weitere Attribute wie Augenfarbe <strong>und</strong> Körpergröße <strong>mit</strong> dem Gegenüber<br />

abgeglichen werden, muß auch beim Umgang <strong>mit</strong> X.509-Zertifikaten darauf<br />

geachtet werden, daß das präsentierte Zertifikat tatsächlich zum Kommunikationspartner<br />

gehört. Andernfalls wäre für eine Man-in-the-Middle-Attacke<br />

Tür <strong>und</strong> Tor geöffnet. In der Praxis ist es deshalb üblich, den vollständigen<br />

DNS-Namen (FQDN) des Servers, wie in RFC 2818 [Res00] ausführlich beschrieben,<br />

<strong>mit</strong> der über das Zertifikat nachgewiesenen Identität des Servers zu<br />

vergleichen. 7 Der Abgleich der Identitäten erfolgt dabei bevorzugt über die<br />

Zertifikatserweiterung Subject Alternative Name oder aber über das Subject<br />

des Zertifikats.<br />

Abbildung 7.3 zeigt den Aufbau der Zertifikatserweiterung Subject Alternative<br />

Name, die als eine Folge von General Names modelliert ist. Im Rahmen der<br />

Identitätsprüfung interessieren uns aus der Zertifikatserweiterung, d. h. aus<br />

der Folge von General Names lediglich die Elemente vom Typ dNSName, da<br />

diese einen DNS-Namen enthalten <strong>und</strong> folglich über die Identität des Zertifikatnehmers<br />

Auskunft erteilen können. Sind dem betreffenden Server mehrere<br />

DNS-Namen zugeordnet, was z. B. bei Webservern <strong>mit</strong> mehreren virtuellen<br />

Hosts äußerst beliebt ist, dann können in der Zertifikatserweiterung natürlich<br />

entsprechend viele DNS-Namen eingetragen sein.<br />

Für den Identitätsabgleich zwischen Zertifikat <strong>und</strong> Kommunikationspartner<br />

wird in RFC 2818 folgendes festgelegt:<br />

7 Muß ein Server über einen dynamischen <strong>und</strong> da<strong>mit</strong> häufig wechselnden DNS-<br />

Namen kontaktiert werden, so ist der FQDN unter Umständen kein probater<br />

Indikator für den Identitätsabgleich. In einem solchen Fall muß der Client über<br />

andere Hilfs<strong>mit</strong>tel, wie z. B. die exakte Kenntnis des zu präsentierenden Zertifikats,<br />

beim Test der Identität verfügen.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!