Magazin über die Internetsicherheit

Blog über die SSL/TLS-Zertifikate und Zertifizierungsstellen, für Sie von Experten aus SSLmarket.de vorbereitet

Gemischter Inhalt – zerstörte Webseiten und ein Sicherheitsrisiko

(21. 8. 2015) Gemischte Inhalte – mixed contents – stellen auch für Webseiten-Gestalter eine Tücke dar. Gleichzeitig handelt es sich um den einfachsten Weg, wie das HTTPS-Protokoll umgangen werden kann. In diesem Artikel sehen wir uns diese Problematik genauer an und Sie erfahren, wie mit dem gemischten Inhalt moderne Browser arbeiten und wie er in dem Code des Webs gefunden und repariert werden kann.

Was ist gemischter Inhalt?

Mit dem Fachwort wird ein Inhalt von einer mit dem HTTPS-Protokoll abgesicherten Seite bezeichnet, der durch ein nicht abgesichertes Protokoll als Plaintext eingelesen wird. Beim Einlesen weicht er also dem HTTPS-Protokoll und der Verschlüsselung durch das SSL-Zertifikat aus.

Am häufigsten betrifft der gemischte Inhalt den externen Webinhalt, wie Bilder, Skripts und verschiedene Banner. Ab und zu wird als gemischter Inhalt jedoch auch die CSS-Sprache des Webs eingelesen, was ein schwerwiegendes Problem zur Folge hat: Das Web wird ohne CSS angezeigt.

Bei modernen Browsern wird der gemischte Inhalt blockiert

Moderne Browser haben dem gemischten Inhalt den Krieg erklärt und blockieren potenziell gefährliche Quellen wie Skripts (aktive Elemente) kompromisslos. "Passive" Elemente wie Grafiken oder Audios werden vorerst zwar nicht blockiert. Diese "schadlosen" Elemente weisen jedoch auf den gemischten Inhalt hin und verursachen, dass die Präsenz von HTTPS auf dem Web falsch angezeigt wird. Dies stellt ein Problem vor allem für EV-Zertifikate und deren grünen Streifen dar, der dadurch lädiert wird.

Bei Chrome können Sie den blockierten Inhalt nach dem Symbol eines Warndreiecks erkennen, bei Firefox nach einem "Briefträger" und bei Internet Explorer nach einer Textwarnung.

Fehlermeldung in ChromeFehlermeldung in Firefox

Gemischter Inhalt in Chrome und Firefox. Quelle: Autor

Falls Sie den Inhalt nicht manuell aktivieren, wird er nicht eingelesen.

Die folgende Tabelle zeigt die Einstellung von modernen Browsern zu den einzelnen Elementen:

Browser Images CSS Scripts XHR WebSockets Frames
Android Browser 4.4.x Ja Ja Ja Ja Ja Ja
Chrome 33 Ja Nein Nein Ja Ja Nein
Firefox 28 Ja Nein Nein Nein Nein Nein
Internet Explorer 11 Ja Nein Nein Nein Nein Nein
Safari 7 Ja Ja Ja Ja Ja Ja

Wie einzelne Elementen in Browsern blockiert werden. Quelle: Ivan Ristic, qualys.com

Gemischter Inhalt bedeutet nicht nur Bilder, sondern auch ein Sicherheitsproblem

Würde das Problem des gemischten Inhalts nur in den sich nicht anzeigenden Bildern liegen, wäre es nicht so tückisch. Mit dem gemischten Inhalt hängt jedoch ein Sicherheitsrisiko zusammen, weil er heutzutage den einfachsten Weg für die Überwindung von HTTPS öffnet.

Wie Ihnen bestimmt bereits gut bekannt ist, eine nicht abgesicherte Verbindung über http kann gelauscht werden und Sie können zu einem Ziel von dem Man in the Middle-Angriff werden. Deshalb sollten SSL-Zertifikate benutzt werden. In einen abgesicherten und verschlüsselten Inhalt kann ein Hacker selbstverständlich nicht eingreifen, aber er kann den eingelesen Inhalt verändern. Dadurch entsteht die Gefahr von Phishing, von einer Malware-Ansteckung oder von einem Angriff auf den Browser des Benutzers.

Wie ist das Problem zu lösen?

Wir empfehlen Ihnen dem gemischten Inhalt vorzubeugen und auf dem Web nur relative, nicht absolute Links zu verwenden. Ein absoluter Link ist solcher, der die ganze URL-Adresse samt dem Protokoll enthält, also zum Beispiel https://www.sslmarket.de/images/Grafik.png. Ein relativer Link enthält weder das Protokoll noch die URL; er sieht also zum Beispiel folgendermaßen aus: /images/Grafik.png. Den Rest ergänzt der Browser allein.

Falls Sie das HTTP-Protokoll manuell aktivieren, aber die Seite über HTTPS aufrufen, wird auch der Browser HTTPS verwenden. Dadurch entsteht das Problem mit dem gemischten Inhalt, dem Sie bestimmt ausweichen möchten.

Den gemischten Inhalt verursachende Elemente können am einfachsten mit den Tools des Browsers entdeckt werden. Firefox und Chrome enthalten nützliche Entwickler-Werkzeuge, dank welchen Sie feststellen können, welche Elemente auf die betroffene Seite eingelesen werden, von woher und über welches Protokoll.

Öffnen Sie die zu überprüfende Seite in Firefox und klicken Sie sie mit der rechten Maustaste an. Wählen Sie "Element mit Firebug untersuchen" und unten im Browser finden Sie ein Fenster von Firebug. Klicken Sie auf "Netzwerk" und nachfolgend mit der rechten Maustaste auf die untere Leiste mit den Überschriften von Spalten (siehe das Bild). Sie sehen Namen von Spalten, die Sie anzeigen können. Wählen Sie also die Spalte "Protokoll", laden Sie die Seite neu (F5) und in den Ergebnissen suchen Sie nach über HTTP eingelesenen Elementen. Diese müssen Sie in dem Quellencode entweder auf HTTPS umstellen, oder Sie müssen den Weg auf den relativen ändern.

Wie der "Schädling" zu finden ist – vermischter Inhalt in Firefox

In Chrome brauchen Sie nur mit der rechten Maustaste "Element untersuchen" anklicken und neben "Ressources" die Möglichkeit "Console" zu finden. In ihr zeigen sich Ihnen die Informationen über das konkrete Element ab, das den vermischten Inhalt verursacht.

Den gemischten Inhalt können Sie auch in dem SSL-Checker von SSL Labs überprüfen. Dank dem Test erfahren Sie unter anderem, ob es auf Ihrem Web den gemischten Inhalt gibt und um welche Elemente genau es sich handelt. Einen sich direkt dem gemischten Inhalt widmenden Test finden Sie auf der Domain whynopadlock.com. Der Name soll uns an das verschwundene Schlösschen erinnern, das die HTTPS-Absicherung symbolisiert und das bei dem gemischten Inhalt nicht angezeigt wird.

Zusammenfassung

Falls Ihnen Probleme mit dem gemischten Inhalt aufgetaucht sind, oder Sie das SSL-Zertifikat neu auf das ganze Web installiert haben (Always-on SSL), sollten Sie die Links und eingelesenen Elemente auf ihre Richtigkeit prüfen. Falls es auf Ihrem Web den vermischten Inhalt gibt, setzen Sie Ihre Kunden einem Sicherheitsrisiko aus und zugleich kommen Sie um die Symbole von der HTTPS-Absicherung, wie zum Beispiel um den grünen Balken bei einem EV-Zertifikat.

Quellen:

HTTPS Mixed Content: Still the Easiest Way to Break SSL. Ivan Ristic, Qualys, Inc.

Wie beeinflussen Inhalte, die nicht sicher sind, meine Sicherheit? Mozilla.org 

SSLmarket.de
Anbieter von vertrauenswürdigen SSL-Zertifikaten
Symantec Platinum Partner
E-Mail: info(at)sslmarket.de