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.

7<br />

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

Mit dem Gr<strong>und</strong>lagenwissen aus Kapitel 6, insbesondere Abschnitt 6.3, sind wir<br />

schon fast dazu in der Lage, <strong>SSL</strong>-fähige Client- <strong>und</strong> Serverprogramm auf Basis<br />

der BIO-Funktionen zu entwickeln. Bis zur erfolgreichen Umsetzung ”<br />

richtiger“<br />

<strong>SSL</strong>-Programme fehlen bislang allerdings noch vier wesentliche Schritte:<br />

1. Die ssl-Bibliothek muß vor dem ersten Aufruf einer <strong>SSL</strong>-Funktion initialisiert<br />

werden.<br />

2. Bevor vom Programm eine <strong>SSL</strong>-Verbindung aufgebaut werden kann, muß<br />

ein geeigneter <strong>SSL</strong>-Kontext erstellt werden.<br />

3. Während des Verbindungsaufbaus überprüft das Programm, ob das von<br />

der Gegenstelle über<strong>mit</strong>telte Zertifikat ein gleichermaßen gültiges wie vertrauenswürdiges<br />

Zertifikat ist, d. h. es wird u. a. überprüft, ob die zugehörige<br />

Zertifikatskette über eine vertraute Zertifizierungsstelle läuft.<br />

4. Zum Schluß erfolgt ein Identitätsabgleich zwischen Zertifikat <strong>und</strong> Kommunikationspartner.<br />

Gehört das präsentierte <strong>und</strong> für gültig bef<strong>und</strong>ene Zertifikat<br />

wirklich zum gewünschten Kommunikationspartner?<br />

Erst wenn diese vier Aufgaben, die wir in diesem Kapitel Schritt für Schritt<br />

besprechen, erfolgreich gelöst sind, kann <strong>mit</strong> Open<strong>SSL</strong> tatsächlich eine gesicherte<br />

<strong>SSL</strong>-Verbindung aufgebaut werden.<br />

7.1 Initialisierung der ssl-Bibliothek<br />

Bevor eine Anwendung <strong>mit</strong> der <strong>SSL</strong>-Kommunikation beginnen kann, muß die<br />

ssl-Bibliothek über die <strong>SSL</strong>_library_init()-Funktion initialisiert werden.<br />

Ein Aufruf dieser Funktion versetzt die Bibliothek <strong>mit</strong>samt der intern verwendeten<br />

kryptographischen Algorithmen in einen geordneten Startzustand.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!