# SSL Verständnisfragen



## Maks01 (28. Januar 2016)

Hallo Zusammen,

ich beschäftige mich gerade mehr und mehr mit SSL / HTTPS Verbindungen, denke auch den Mechanismus verstanden zu haben, aber auf ein paar Dinge habe ich bis jetzt keine Antwort gefunden. Vielleicht könnt ihr mir weiterhelfen:

1.) Was ist der Unterschied zwischen einem lokal ausgestellten Zertifikat und dem einer offiziellen CA wie Thawte etc... 

2.) Revokation:

Ein Zertifikat kann vom Server, bzw. der CA rückgerufen werden, wenn z.B. der private Schlüssel gestohlen worden ist oder das Zertifikat aus welchen Gründen auch immer für ungültig erklärt wird.

Wohin möchte ein Client in einem lokalen Netz, wenn er sagt er kann den Revokationsserver nicht erreichen. Das Zertifikat stammt von einer lokalen CA?

vielen lieben Dank für all die Antworten

mfg

Max


----------



## sheel (28. Januar 2016)

Hi

*Frage 1*:

(tldr: Vorinstallation und Vertrauensbasis)

Auch wenn es redundant ist, ein kleiner Überblick über Zertifikatsarten
und Fähigkeiten davon, womit die Frage sich hoffentlich beantworten lässt.

Immer vorausgesetzt, dass man keine Verfahrensfehler macht
und keine veralteten Algorithmen und/oder SSL-Version einsetzt.

Prinzipiell drei Typen:
Selbsterstelltes Zertifikat
"Offizielle" CA mit Hauptzert, die davon abgeleitete Zerts verteilt
Lokale/Private CA (zB. firmenweit)

*Verbindungssicherheit*
Also Verschlüsselung, Authentizität usw. gegen unbefugtes Mitlesen und/oder Ändern.

Prinzipiell ist HTTPS bei Verwendung so eines Zertifikats dafür sicher, egal wie es erstellt wurde,
*wenn* nicht nur der Server, sondern auch der Client den nötigen Teil davon hat.
(und wenn der private Teil vom Server keinem Unbefugten in die Hände fällt)

Wie das Zert zum Client kommt ist dabei das Problem.
Wenn er es einmal hat merkt er es sich (Browser etc.), aber bis er es hat?

Selbsterstelle (selbstsignierte) Zerts können zB. vom Ersteller manuell auf einem sicheren anderen Weg an die möglichen Clients verteilt werden, die das Zert dann manuell in ihrem Browser installieren. Wenn es um eine Website geht, die weltweit nur zB. drei Leute benutzen sollen, und der Admin ihnen einen USB-Stick persönlich vorbeibringen will, geht das. Sonst nicht. Die andere Möglichkeit ist, dass der Browser beim allerersten Verbindungsaufbau auch das (für den Browser neue) Zert vom Server bekommt und es sich merkt. Dieser Schritt ist aber leider NICHT sicher. Kommt das Zert an, ohne von einem Dritten mitgelesen oder geändert worden zu sein, ist alles in Ordnung, sonst ist alles verloren (die und auch jede zukünftige Verbindung, weil man üblicherweise nicht merkt, dass das neue Zert eben nicht das richtige neue Zert ist. Mit anderen Worten, ist es das Zert vom Server oder vom Manipulierer, der sich als Server ausgibt?).

Bei einer lokalen (Firmen)-CA gibt es außer dem Serverzert auch das CA-Cert (das damit zusammenhängt). Wenn der Client nichts davon hat ist es gleich wie bei Selbsterstellten: Manuell/sicher übermitteln oder keine Sicherheit. Wenn der Client eins oder beide schon hat passt die Verbindungssicherheit (wenn Serverzert da dann passts direkt, und wenn CA-Zert da dann kann das neu erhaltene Serverzert geprüft werden).

Bei einer globalen/offiziellen CA wie Thawte funktioniert es im Prinzip gleich wie bei der lokalen, mit dem Unterschied, dass das CA-Zert schon im Browser vorinstalliert ist (genau das unterscheidet die offiziellen CAs von den Anderen, und dafür wollen sie Geld). Man muss sich also nicht mehr kümmern, ein/beide Zerts auf einem sicheren Weg zu bekommen, man hat schon eins. Und wenn ein Server ein für dich neues, von Thawte ausgestelltes Zert schickt, kann es durch das lokale CA-Zert von Thawte geprüft werden.
(Falle: Woher weiß man, dass die vorinstallierten Zerts beim Download vom Browser nicht unterwegs
verfälscht wurden? Genau, ein Problem ist nur durch ein anderes (kleineres) Problem ersetzt).

*Ob man darauf vertrauen kann, dass der Server am anderen Ende wirklich der ist,
den man will, und/oder wirklich der Person/Firma gehört, die angegeben ist*

Selbstsigniert: Man kann darauf gleich viel Vertrauen wie man der Zertquelle vertraut.
Hat man es von der betroffenen Person selbst daheim bekommen, ok.
(naja, man kann auch Ausweise fälschen usw.usw., aber das ist nicht die Schuld von SSL)
Hat man es grad erst vom Server geschickt bekommen, den man prüfen will, nop, keine Sicherheit
(Verschlüsselung ggf. eben schon, aber mit wem man da kommuniziert ist eine andere Sache)

Lokale CA: Ähnlich dazu: wie sehr vertraut man dem CA-Betreiber (Firmenadmin etc.), geprüft zu
haben, wer von ihm Zerts für welchen Server/Namen bekommen hat und ob sie wirklich für den
Server/Namen eingesetzt werden?
Bzw. damit man irgendwas vertrauen kann braucht der Client das CA-Cert.
Ohne dem gibts keine garantie, dass das Serverzert überhaupt von dieser CA ist.

Globale CA. Wieder ähnlich, allerdings genauer unterschieden:
Es werden "normale" Zerts an Serverbetreiber verkauft, da schickt man ein ausgefülltes Formular hin wer man ist usw. (bzw. online), und bekommt ein Zert für diesen Namen und Server. Natürlich kann man sich auch ein Zert für Barack Obama kaufen ... also bei der Art nicht drauf verlassen. Daneben gibt es auch noch die (teureren) EV-Zerts, die im Browser oft grün angezeigt werden; bei denen sollte die CA im Idealfall auch wirklich jeden Antragsteller prüfen, ob seine Angaben stimmen. Dann läufts wieder darauf hinaus, ob man der CA vertraut (ehrlich zu sein und bei den Prüfungen nicht zu schlampen, kommt leider vor)

*Frage 2*:

Genau, Zerts können einerseits ab einem gewissen Datum automatisch ungültig werden (rein aus Vorsicht), oder frühzeitig widerrufen falls was passiert ist. Zum Widerrufen muss der Browser das nur irgendwie wissen. Bei selbsterstellen Zerts, ohne passende CA dazu, keine Chance. Wenns nur wenige Leute haben kann man ja jeden anrufen, aber weltweit hat man Pech. Bei lokalen/globalen CAs gibts Server online, von denen man Listen von ungültigen Zertifikaten abfragen kann. Wo man den passenden findet sollte im von einer CA ausgestellten Zert vermerkt sein. Der Betreiber deiner lokalen CA hat wohl Mist gebaut ... dein Browser kann den Listenserver nicht erreichen und beschwert sich.


----------

