Die SSL-Serverauthentifizierung stellt sicher, dass die Websites, mit denen
Sie kommunizieren, keine falsche Identität vorspiegeln. Dabei wird die Identität eines
Servers mithilfe von Standardverfahren der Kryptografie mit einem öffentlichen Schlüssel
geprüft, um sicherzustellen, dass der Server über ein gültiges Zertifikat und eine
gültige öffentliche Kennung verfügt, die von einer Zertifizierungsstelle (Certificate Authority, CA)
ausgegeben wurde, die in der Liste der anerkannten CAs im Client enthalten ist.
Die Kommunikation mit "vertrauenswürdigen" Servern, die über Authentifizierungszertifikate verfügen,
die von einer Zertifizierungsstelle (Certificate Authority, CA) ausgegeben wurden, ist ein unverzichtbares
Elemente zum Einrichten einer geschützten Umgebung. Authentifizierungszertifikate sind digital signierte
Dokumente, die den öffentlichen Schlüssel an die Identität des Eigners des privaten Schlüssels binden. Die Authentifizierung erfolgt während der Verbindungszeit und ist unabhängig von der Anwendung bzw.
dem Anwendungsprotokoll. In SSL erfolgt die Authentifizierung durch den Austausch von Zertifikaten (dabei
handelt es sich um Datenblöcke in einem Format, das im Standard X.509 ITU-T beschrieben ist). X.509-Zertifikate
werden von einer Zertifizierungsstelle ausgegeben und digital signiert.
Durch die Verwendung von SSL ist jedoch nicht gewährleistet, dass der Client
mit dem richtigen Server kommuniziert. Als Beispiel hierfür soll das folgende Szenario
dienen: Die Server "Server1" und "Server2" verfügen beide über gültige Zertifikate
von einer CA, die von dem Client ("Client") anerkannt wird. Client
benötigt eine sichere Sitzung mit Server1, aber Server2 will diesen
Datenaustausch ausspionieren und befindet sich an einer hierfür geeigneten
physischen Position.
- Client sendet eine Anforderung für eine SSL-Sitzung an Server1. Die Anforderung
(und der nachfolgende Datenverkehr) wird über Server2 geleitet. Anstatt die Anforderung von Client
an Server1 weiterzuleiten, antwortet Server2 direkt auf die Anforderung und sendet sein eigenes
Zertifikat an Client.
- Client empfängt das Zertifikat von Server2 und prüft die Liste der sicheren CAs. Da das Zertifikat von
Server2 von derselben CA signiert ist wie das Zertifikat von Server1, akzeptiert Client das Zertifikat
und startet eine sichere Sitzung mit Server2.
- Nachdem er die sichere Sitzung mit Client eingerichtet hat, fordert Server2 eine eigene SSL-Sitzung mit
Server1 an und richtet diese Sitzung ein. Von diesem Zeitpunkt an sendet Client verschlüsselte Informationen an Server2. Server2 entschlüsselt die Informationen, verschlüsselt sie erneut und sendet sie an Server1. Das Gleiche gilt für den
Informationsfluss in entgegengesetzter Richtung. Dies führt dazu, dass Server2 die übertragenen Daten lesen und
sogar ändern kann, obwohl alle Daten im Internet verschlüsselt übertragen werden.
Die SSL-Serverauthentifizierung soll dieses unerwünschte Ergebnis verhindern.
Wenn die Serverauthentifizierung aktiviert ist, prüft Client nicht nur, ob das
Zertifikat des Servers vertrauenswürdig ist, sondern auch, ob der Internetname
im Zertifikat mit dem Internetnamen des Servers übereinstimmt. Wenn die Internetnamen
übereinstimmen, wird die SSL-Vereinbarung fortgesetzt. Stimmen die Namen nicht überein,
wird die Verbindung beendet.
Bei aktivierter Serverauthentifizierung wird das oben beschriebene Sicherheitsszenario
wie folgt fortgesetzt:
- Client sendet eine Anforderung für eine SSL-Sitzung an Server1. Die Anforderung
(und der nachfolgende Datenverkehr) wird über Server2 geleitet. Anstatt die Anforderung von Client
an Server1 weiterzuleiten, antwortet Server2 direkt auf die Anforderung und sendet sein
eigenes Zertifikat an Client.
- Client empfängt das Zertifikat von Server2 und prüft die Liste der sicheren CAs. Da das Zertifikat von
Server2 von derselben CA signiert ist wie das Zertifikat von Server1, akzeptiert Client das Zertifikat
und startet eine sichere Sitzung mit Server2.
- Nachdem die sichere Sitzung eingerichtet ist, aber vor dem Senden bzw. Empfangen der eigentlichen
Daten, vergleicht Client den Internetnamen in dem Zertifikat, das er empfangen hat, mit dem Namen des
Servers, mit dem kommuniziert werden soll. Da die Namen nicht identisch sind, wird die Verbindung von Client abgebrochen.