immerda:SSL-Zertifikate: Unterschied zwischen den Versionen

Aus immerda
Zur Navigation springen Zur Suche springen
K (hat „SSL-Zertfikate“ nach „SSL-Zertifikate“ verschoben)
(kein Unterschied)

Version vom 25. November 2007, 16:48 Uhr

Grundkonzept

Wieso eine Verbindung per SSL absichern resp. verschlüsseln?

Die Struktur des Internets

Oftmals greifen wir im Internet auf Webseiten oder weitere Dienste (wie Mail oder Jabber) zu und übermitteln dabei vertrauliche Daten wie Passwörter, Gesprächsinhalte usw. Da das Internet Grundsätzlich als ein Netzwerk von vielen verschiedenen beliebigen Knoten (Zur Illustration siehe folgendes Bild) werden die Daten die du an den Server schickst über verschiedene Knoten unterschiedlicher und unbekannter Herkunft wie Kontrolle verschickt. Somit wäre es theoretisch möglich, dass auf jedem Knoten auf dem deine Daten vorbeikommen, diese aufgezeichnet und somit ausgelesen werden können. So könnten deine Passwörter oder Gesprächsinhalte in falsche Hände geraten und somit misbraucht werden. Um dies zu verhindern ist es wichtig, dass für die Übertragung von privaten und sensiblen Daten immer eine verschlüsselte Verbindung benützt wird. Damit kannst du sichergehen, dass niemand zwischen dir (z.B. deinem Browser oder deinem Mailprogramm) und dem Server auf den du Zugreifst (z.B. immerda-webmail oder Immerda-Jabberserver) irgendwelche Daten ausspähen kann. Es ist unserer Meinung nach wichtig den Wert der Privatsphäre zu schützen!

Im folgenden werden wir verschlüsselte Verbindung als Synonym für eine per SSL abgesicherte Verbindung verwenden.

Wie kommt eine verschlüsselte Verbindung zustande?

Eine Verbindung deines Brwosers (oder deines Email- Jabberprogramms etc.) kann per SSL abgesichert werden, dazu sind jedoch verschiedene Faktoren wichtig, damit eine verschlüsselte Verbindung zustande kommt und dieser auch zu trauen ist, sprich wirklich die komplette Verbindung zwischen dir und dem Server verschlüsselt abläuft.

Im folgenden nehmen wir als Beispiel den Zugriff auf https-gesichrte Webseiten. Wie du deine Emails sicher mit einem lokalen Mailprogramm abrufst siehe hier in der Anleitung, für Jabber können nur per ssl gesicherte Verbindungen aufgebaut werden, mehr dazu auch in der Anleitung.

https

Normalerweise beginnen die die URLs mit http://... . Das http:// zeigt dabei an, das wir das HyperText Transfer Protokol verwenden, jenes Protkoll welches beschreibt, wie auf Webseiten zugegriffen werden kann. Derartige Verbindungen sind immer unverschlüsselt und für alle Knoten zwischen dir und dem Server auf welchem die Seite liegt lesbar. Sprich einerseits ist ersichtlich, auf was für eine Seite du zugreifst, anderseits auch was für eine Seite dir der Webserver zurück gibt, sprich den vollen Inhalt dieser Seite.

Um nun per ssl gesichert auf eine Seite zuzugreifen verwenden wir eine erweiterung des http-Prokolls: https (Infos). Das s zeigt dabei an, dass es sich um eine verschlüsselte Verbindung handelt, zudem stellen die meisten Browser den Unterschied farblich und symbolisch (z.B. Firefox Schloss-Icon) in der Adresszeile dar. Vergleiche diese Screenshots von Firefox:

Keine verschlüsselte Verbindung:

Immerda url nonssl.png

Verschlüsselte Verbindung:

Immerda url ssl.png

Nur wenn wir eine derartige Verbindung haben, können wir sicher gehen, dass die Daten, welche wir Übermitteln unterwegs nicht gelesen werden können!

Konsequenzen

Damit wir sicher gehen können, dass keine sensiblen Daten wie Passwörter oder private Informationen (wie Emails) zwischen uns und dem Server mitgelesen werden können, müssen wir bei der Eingabe von derartigen Informationen immer darauf achten, dass wir mit einer gesicherten Verbindung darauf zugreifen.

Deshalb: Niemals sensbile Daten auf einer Webseite eingeben, welche nicht per SSL gesichert ist.

Vertrauen

Doch wie können wir der verschlüsselten Verbindung vertrauen? Wie können wir sicherstellen, dass die Verbindung auch wirklich komplett zwischen uns und dem Server auf den wir zugreifen wollen verschlüsselt ist und nicht etwa jemand (ein sogenannter Man-in-the-Middle dazwischen sitzt, uns die gesicherte Verbindung vorgaukelt und alles mitschneidet?

Man in the middle

Dazu musst du als Benutzerin ja irgendwie der aufgebauten verschlüsselten Verbindung vertrauen können, resp. überprüfen können ob dieser Verbindung auch wirklich zu vertrauen ist. Dazu wurde die Technik von digitalen Zertifikaten entwickelt, welche die Möglichkeit bieten den Aufbau einer Verbindung zu überprüfen.

Hier kommen nun Zertifizierungsstellen ins Spiel, welche als sogenannte Trusted-Third-Parties ein ausgestelltes Zertifikat, welches zum Aufbau der sicheren Verbindung verwendet wird, beglaubigen sollen, resp. sicherstellen, dass es auch wirklich von derjenigen Person ausgestellt wurde, welche auch vorgibt die jeweilige zu sein. D.h. jedes gültige Zertifikat wird von einer Zertifizierungsstelle beglaubigt resp. unterschrieben und kann so automatisch durch den Browser auf dessen Gültigkeit überprüft werden. Damit dein Browser dies überprüfen kann, muss er das Root-Zertifikat dieser Zertifizierungsstelle importiert haben. Für das detailierte Konzept dahinter siehe den Beschrieb zur Public-Key-Infrastruktur.

Ein Admin, welcher seinen Server per SSL absichern möchte, schickt einen Teil seines Zertifikates an diese Zertifizierungsstelle diese Überprüft die Idendität des Admins und unterschreibt dann diesen Zertifikatsrequest. Damit bürgt die Zertifizierungsstelle mit ihrem Konzept der Überprüfung, dass das Zertifikat auch wirklich von dieser Person stammt für die sie sich ausgibt. Dein Browser überprüft dies dann und sollte seiner Meinung nach alles in Ordnung sein, wird er dich mit keiner Warnmeldung belästigen.

Root-Zertifikate / Zertifizierungsstellen

Dies bedeutet, dass mein Browser (oder Mail-, Jabberprogramm usw.) ja irgendwie die Root-Zertifikate haben muss, damit er die Authentizität des Zertifikats überprüfen kann. Dabei kommen uns die Browserhersteller zu Hilfe und haben bereits einige Zertifikate von Zertifizierungsstellen, die sie für Vertrauenswürdig halten, importiert. Damit nehmen sie uns einerseits die Mühe ab, dass wir all die Root-Zertifikate selber zusammensuchen müssen, anderseits geben sie uns dadurch auch vor, wem wir (blind) zu Vertrauen haben. So ist der Prozess, welcher dazu führt das Zertifizierungsstellen aufgenommen werden, vor allem mit einem finanziellen Aufwand verbunden, welchen sich unkommerielle Zertifizierungsstellen kaum leisten können und dazu führt, dass deren signierte Zertifikate von Browsern als unsicher gemeldet wird oder gar durch das komische Sicherheitskonzept des Internet Explorers 7 der Zugriff auf eine eigentlich gültig und somit vertrauenswürdig verschlüsselte Seite explizit nicht empfohlen wird.

Importieren wir dann das Root-Zertifikat derjenigen Zertifizierungsstelle, kann der Browser die Verbindung überprüfen und wir können sicher gehen, das wir eine gültige Verbindung aufgebaut haben.

CACert

Diese Problematik besteht leider gerade bei CACert, einer nichtkommerzielle Zertifizierungsstelle, welche wir für fast all unsere Seiten verwenden. Deshalb muss und sollte unbedingt das Root-Zertifikat von CACert in euren Browser importiert werden. Eine Anleitung wie das Funktioniert findet ihr hier.

Konsequenzen / Zusammenfassung

Beispiel eines nicht Vertrauenswürdigen Zertifikats

Abschliessend kann gesagt werden, dass wir einer verschlüsselten Verbindung auf einer Seite nur trauen können, wenn der Browser (nach import des Root-Zertifikats) keine Warnmeldung ausgibt und dieser die Verbindung somit als vertrauenswürdig gesichert ansieht oder wir das Zertifikat nicht über einen anderen Weg überprüft haben, wie z.B. mit Hilfe eines publizierten Fingerprints. Allen verschlüsselten Verbindungen, bei denen der Browser (oder andere Programme) eine Warnmeldung ausgibt, ist nicht zu trauen resp. mit Vorsicht zu geniessen. Ihr solltet dann die Meldung (siehe Bild) des Browsers genau durchlesen und ggf. den Verbindungsaufbau abbrechen.

Um den Zugriff auf die meisten Immerda Seiten zu überprüfen musst du das Root-Zertifikat von CACert in deinen Browser importieren. Eine Anleitung dazu findest du hier.