Sven Rautenberg: wie Zugriff über SSL-Proxy sicherstellen

Beitrag lesen

Moin!

Was macht denn der SSL-Proxy? Er ist ein eigenständiger Server mit anderem Domainnamen und anderer öffentlicher IP, der den Request analysiert und ihn auf die diversen Server des Providers durchreicht.

Warum sollte es ein anderer sein müssen?

Muß es nicht sein - aber es ist technisch schlauer, das so zu realisieren. Denn ein Domainhoster hat sicherlich mehrere tausend bis Millionen Domains von Kunden - und folglich auch mehrere hundert bis tausend Server mit ebensovielen IP-Adressen.

Damit also der generische Weg "ssl-proxy.de/kundendomain.de" funktioniert, müßte der DNS-Resolver erkennen, dass er jetzt die IP von kundendomain.de suchen und dort den SSL-Host "ssl-proxy.de" ansprechen soll - wie soll sowas funktionieren?

Und einfach alle IP-Adressen der Kundendomains im DNS auch auf "ssl-proxy.de" zu mappen scheitert an der Masse an IP-Adressen - ein DNS-UDP-Datenpaket kann nur begrenzt viele Daten aufnehmen, die Zahl der IP-Adressen ist also auch begrenzt.

Und außerdem: Was nützt es, wenn der falsche SSL-Proxyserver angesprochen wird, auf dem die Domain gar nicht original gehostet wird? Dann muß doch wieder ein HTTP-Request zum anderen Server vorgenommen werden - genau wie in meinem Szenario schon skizziert.

Also warum nicht gleich so?

AFAIK ist das "Problem" bei SSL und name-based Virtual Hosts doch, dass der Host-Header des Request zu spät entschlüsselt wird, um die Zuordnung treffen zu können.

Man kann darüber also gar keinen Virtual Host ansprechen, sondern nur den Server, der sich über die IP "per default" als erreichbar zeigt.

Es ist ein Irrglaube, dass SSL und Virtual Hosts nicht funktionieren oder zusammenpassen.

Das Problem in diesem Zusammenhang ist, dass das SSL-Zertifikat IP-und-Port-gebunden konfiguriert werden muß (mit Portangabe in der URL wäre also auch mehr als ein Zertifikat pro Server realisierbar - das versteht aber kein User umzusetzen). In diesem Zertifikat ist die gültige Domain enthalten. Diese Domain kann aber auch ein Wildcardzeichen enthalten, d.h. es ist ohne Probleme möglich, für eine ganze Gruppe von Subdomains einer im Zertifikat genannten Hauptdomain auf nur einem einzigen Server virtuelle Hosts anzulegen. Das Zertifikat bescheinigt den korrekt signierten Verbindungaufbau zu "*.example.com", und danach setzt im Apache die VHost-Konfiguration ein, entscheidet sich nach Host-Header für den richtigen VHost, und der hat dann zwingend auf die Endung ".example.com" zu hören. "sub1.example.com" und "sub2.example.com" sind mit SSL problemlos realisierbar.

Nur: "www.example.com" und "www.example.org" auf dem gleichen Server - das geht nicht, weil dann die Zertifikatprüfung meckert (wenn man die Meckerei ignoriert, würde es aber trotzdem funktionieren). Aber welcher User würde das guten Gewissens erlauben - und welcher Providerkunde würde sich mit solch einer Krücke für seine SSL-Präsenz zufrieden geben?

Wenn es in Benes Fall wirklich ein Proxy ist, dann hatte ich ihn da missverstanden.

Ich denke, es gibt rein technisch keinerlei Alternativen, mit einem gemeinsamen Zertifikat für alle Kunden SSL zu realisieren, als über die Lösung mit einem echten Proxy vor dem Originalserver - und ggf. unverschlüsselter Übertragung "hinter" dem Proxy, geschützt nur durch die Vertraulichkeit des internen Netzes des Providers.

Mit anderen Worten: Diese "shared SSL-Proxy"-Lösung ist zwar hinsichtlich des Internets so sicher, wie SSL sein kann, die Strecke hinter dem Proxy allerdings ist unverschlüsselt und potentiell angreifbar, auch wenn der Provider durch entsprechende Sicherheitsmaßnahmen (Netztrennung im Switch etc.) die Abhörbarkeit durch mögliche Randlauscher (z.B. Rootserver, die mit tcpdump arbeiten und mit arp-Spoofing den Switch zu sich umleiten) relativ sicher ausschließen kann. Nicht zuletzt ist der Zielserver ja ohnehin eine Shared-Hosting-Umgebung und deshalb schon mal ein wenig kritischer zu sehen. Wer weiß denn schon genau, ob jeder VHost bestmöglich gegen jeden anderen abgeschottet ist. Aber das sind doch wohl eher theoretische Überlegungen.

- Sven Rautenberg

--
"Love your nation - respect the others."