Von
/13.02.18

Seitdem die Digitalisierung in Fahrt gekommen ist, hört man immer öfters von Sicherheit im Netz und wie man diese wahren sollte. Dabei taucht auch häufig der Begriff «HTTPS» auf. Viele Medien raten, dass vertrauenswürdige Webseiten unbedingt über HTTPS aufgerufen werden sollten und auch die modernen Browser warnen Benutzer davor, sich bei einer Website ohne HTTPS einzuloggen. Jedoch verstehen nur wenige, wie dieses HTTPS funktioniert, wie es zu verwenden ist und welche Vorteile es hat.

Warum brauchen wir HTTPS?

Die einfachste Art eine Website zu laden ist via HTTP (ohne ‘s’). Mittels HTTP werden die Websitedaten von dem Server zum Browser geschickt, um sie dann dort anzuzeigen. Das Problem bei HTTP ist jedoch, dass alles unverschlüsselt übertragen wird. So kann beispielsweise ein Angreifer leicht Passwörter abfangen, indem er sich zwischen den Benutzer und den Server stellt und die Daten abfängt.

Zudem hat der Benutzer keine Möglichkeit festzustellen, ob die angezeigte Website tatsächlich von dem angegebenen Anbieter stammt oder nicht. Deshalb haben Angreifer die Möglichkeit, Webseiten zu verändern, indem sie sich als diese ausgeben und eine Kopie der Website mit schädlichem Code an das Opfer senden, um so an sensitive Daten zu gelangen.

Die Lösung

Um solche Sicherheitslücken zu schliessen, baute Netscape 1994 erstmals HTTPS in ihren Browser ein. HTTPS funktioniert im Prinzip identisch wie HTTP. Einzig der Transport der Informationen, welche durch HTTP übertragen werden, findet über einen verschlüsselten Kanal, das sogenannte TLS Protokoll, statt. So können Dritte nicht mehr mitlesen. Weiter muss sich jeder Server zuerst authentifizieren, sodass der Benutzer sicher gehen kann, dass das, was er sieht, auch tatsächlich vom gewünschten Anbieter stammt.

Sobald ein Benutzer auf eine HTTPS Website gelangt, wird ein sogenannter TLS Handshake ausgelöst. Dabei einigen sich der Browser und der Server auf eine Verschlüsselung und tauschen ihre Identitäten aus. Der Server sendet dabei zusätzlich ein digitales Zertifikat, mit dem der Browser verifizieren kann, dass der Inhalt tatsächlich von der angegebenen Domain stammt. Dieses Zertifikat wird wiederum nur von autorisierten Signierungsinstanzen ausgestellt, um fake- oder selbstsignierte Zertifikate zu vermeiden. Dies erhöht die Glaubwürdigkeit eines Zertifikates enorm. Sobald der Handshake erfolgt ist, wird die Website über den soeben erstellten, sicheren und verschlüsselten Kanal mit dem normalen HTTP Protokoll ausgetauscht. Während des Austausches ist immer gewährleistet, dass der Nutzer mit der angeforderten Seite verbunden ist. Ein Manipulationsversuch von Dritten an den übertragenen Daten fällt sofort auf.

Was brauche ich, um HTTPS auf meiner Seite anzubieten?

Um HTTPS anzubieten, braucht man lediglich ein SSL Zertifikat, bzw. jenes Zertifikat, welches der Server nutzt, um sich zu verifizieren. Dieses Zertifikat kann man von diversen Anbietern kaufen, wie bspw. GlobalSign oder DigiCert. Es gibt jedoch auch Organisationen, welche Zertifikate gratis ausstellen, wie beispielsweise Let’s Encrypt!.

Sobald man ein Zertifikat erhalten hat und eine kleine Konfiguration am Server vorgenommen hat, unterstützt man HTTPS. Weiter ist es ratsam, HSTS (HTTP Strict Transport Security) zu aktivieren. Dies zwingt den Browser, HTTPS zu verwenden, was den Benutzer vor Downgrade-Attacken oder auch vor Session-Hijacking-Attacken schützt. Mehr über solche Attacken erläutern wir in einem späteren Blog-Eintrag.