Marcus

Aus ProgrammingWiki
Archivierte Version vom 2020-12-21T10:20:13+00:00. Aktuelle Version

Inhaltsverzeichnis

HTTP und HTTPS

HTTPS und TLS

Hypertext Transfer Protocol Secure (HTTPS, englisch für „sicheres Hypertext-Übertragungsprotokoll“) ist ein Kommunikationsprotokoll im World Wide Web, mit dem Daten abhörsicher übertragen werden können. Es stellt eine Transportverschlüsselung dar.

HTTPS wird zur Herstellung von Vertraulichkeit und Integrität in der Kommunikation zwischen Webserver und Webbrowser (Client) im World Wide Web verwendet. Dies wird unter anderem durch Verschlüsselung und Authentifizierung erreicht.

Das Das Hypertext Transfer Protocol, kurz HTTP, wird genutzt, um Websites vom Server in Ihren Webbrowser zu laden. Das Hypertext Transfer Protocol Secure, kurz HTTPS, hat die gleiche Aufgabe, tut dies jedoch verschlüsselt und kann somit eine abhörsichere Verbindung zwischen dem Betreiber der Website und Ihrem Browser herstellen. Das HTTPS-Verfahren wird von allen Browsern unterstützt und ist somit eine Sicherheits-Technologie die nicht extra installiert werden muss. Jeder der sich in Ihrem Netz befindet, kann mit etwas Aufwand Ihr Surfverhalten auf HTTP-Websites überwachen. Bei HTTPS-Websites wird die Verbindungen hingegen verschlüsselt. Eine HTTPS-Seite erkennen Sie daran, dass einerseits oben in der Adresszeile des Browsers der besagte Schriftzug steht, andererseits an dem verriegelten Schloss (siehe Bild) Übliche Websites verwenden lediglich das HTTP-Verfahren. Wenn es jedoch um persönliche Daten geht, wie beim Online-Banking oder in Online-Shops, verfügen diese über eine HTTPS-Verschlüsselung. Fazit: Eine Website auf der Sie sensible Daten wie Ihre Kontoverbindung angeben müssen, sollten über HTTPS verschlüsselt sein. Ansonsten handelt es sich mit sehr hoher Wahrscheinlichkeit um einen unseriösen Anbieter. Sichere HTTPS-Verbindung


Technik Syntaktisch ist HTTPS identisch mit dem Schema für HTTP, die zusätzliche Verschlüsselung der Daten geschieht mittels SSL/TLS: Unter Verwendung des SSL-Handshake-Protokolls findet zunächst eine geschützte Identifikation und Authentifizierung der Kommunikationspartner statt. Anschließend wird mit Hilfe asymmetrischer Verschlüsselung oder des Diffie-Hellman-Schlüsselaustauschs ein gemeinsamer symmetrischer Sitzungsschlüssel ausgetauscht. Dieser wird schließlich zur Verschlüsselung der Nutzdaten verwendet.


Client-Verarbeitung Mit der Entwicklung von HTTPS durch Netscape wurde das Protokoll und die anwenderseitige Client-Software schon früh in Webbrowser integriert. Damit ist meist keine weitere Installation gesonderter Software notwendig.

1. HTTPS (Hypertext Transfer Protocol Secure)

Das Hypertext Transfer Protocol (HTTP, englisch für Hypertext-Übertragungsprotokoll) ist ein zustandsloses Protokoll zur Übertragung von Daten auf der Anwendungsschicht über ein Rechnernetz. Es wird hauptsächlich eingesetzt, um Webseiten (Hypertext-Dokumente) aus dem World Wide Web (WWW) in einen Webbrowser zu laden. Es ist jedoch nicht prinzipiell darauf beschränkt und auch als allgemeines Dateiübertragungsprotokoll sehr verbreitet.

Das Hypertext Transfer Protocol (HTTP) ist ein Anwendungsschicht-Protokoll zum Transportieren von Hypermedia Dokumenten, wie zum Beispiel HTML. Hauptsächlich wird es zur Kommunikation zwischen Webservern und Webbrowsern verwendet, jedoch könnte es theoretisch auch für andere Zwecke benutzt werden. Es folgt einem klassischen Client-Server-Modell, mit einem Client der die Verbindung eröffnet, indem er eine Anfrage macht und dann wartet, bis es eine Antwort erhält. Außerdem ist es ein zustandsloses Protokoll, was bedeutet, dass der Server keine Daten (Zustände) zwischen zwei Anfragen behält.


Hypertext Transfer Protocol Secure ist ein Kommunikationsprotokoll im World Wibe Web, um Daten sicher zu übertragen und um diese dann abhören zu können. Desweiteren stellt das HTTPS eine Transportverschlüsselung dar. Entwickelt wurde HTTPS von Netscape und zusammen mit SSL wurde es im Jahre 1994 erstmals mit deren Browser veröffentlicht.

HTTP ist ein zustandsloses Protokoll. Informationen aus früheren Anforderungen gehen verloren. Ein zuverlässiges Mitführen von Sitzungsdaten kann erst auf der Anwendungsschicht durch eine Sitzung über einen Sitzungsbezeichner implementiert werden. Über Cookies in den Header-Informationen können aber Anwendungen realisiert werden, die Statusinformationen (Benutzereinträge, Warenkörbe) zuordnen können. Dadurch werden Anwendungen möglich, die Status- beziehungsweise Sitzungseigenschaften erfordern. Auch eine Benutzerauthentifizierung ist möglich. Normalerweise kann die Information, die über HTTP übertragen wird, auf allen Rechnern und Routern gelesen werden, die im Netzwerk durchlaufen werden. Über HTTPS jedoch kann die Übertragung verschlüsselt erfolgen.


1.1 Nutzung von HTTPS

Genutzt wird HTTPS zur Herstellung von Vertraulichkeit und Integrität in der Kommunikation zwischen Webbrowser (Client) und Webserver im World Wide Web. Erreicht wird dies durch Verschlüsselung und Authentifizierung. Durch die Verbreitung von offenen WLANs nimmt die Bedeutung von HTTPS deutlich zu, da Inhalte unabhängig vom Netz verschlüsselt werden können. Wichtig bei der Nutzung von HTTPS ist, dass beide Seiten der Verbindung beim Aufbau der Kommunikation die Identität des Verbindungspartners überprüfen können. Wo wird HTTP verwendet? Ursprünglich diente HTTP lediglich dazu, von einem Webserver ein HTML-Dokument anzufordern. Heute wird das Protokoll sehr vielfältig eingesetzt:

Browser fordern über HTTP alle Arten von Medien an, die auf modernen Webseiten verwendet werden: Text, Bilder, Videos, Programmcode usw. Anwendungsprogramme nutzen HTTP, um Dateien und Updates von entfernten Servern zu laden. Die REST-API ist eine auf HTTP basierende Lösung zum Ansteuern von Webservices. Ebenfalls eine HTTP-basierte Technologie ist WebDAV. In der Machine-to-Machine-Kommunikation (z.B. via Webservices) wird HTTP als Protokoll für die Kommunikation zwischen Webservices verwendet. Auch Medienplayer nutzen HTTP. Zugriffe auf eine Datenbank im Web, d. h. die CRUD-Operationen, können ebenfalls über HTTP erfolgen.


Wie funktioniert HTTP? Die Funktionsweise von HTTP lässt sich am einfachsten anhand des Aufrufs einer Webseite erläutern:

Der Nutzer tippt in die Adresszeile seines Internet-Browsers example.com ein. Der Browser sendet eine entsprechende Anfrage, den HTTP-Request, an den zuständigen Webserver, der die Domäne example.com verwaltet. Normalerweise lautet der Request: „Sende mir bitte die Datei zu“. Alternativ kann der Client auch bloß fragen: „Hast du diese Datei?“. Der Webserver empfängt den HTTP-Request, sucht die gewünschte Datei (im Beispiel: die Startseite von example.com, also die Datei index.html) und sendet als Erstes den Header, der dem anfragenden Client durch einen Status-Code das Resultat seiner Suche mitteilt. Details zu den HTTP Status-Codes erfahren Sie in unserem weiterführenden Artikel. Wenn die Datei gefunden wurde und der Client sie tatsächlich zugesendet haben will (und nicht nur wissen wollte, ob sie existiert), sendet der Server nach dem Header den Message Body, also den eigentlichen Inhalt. In unserem Beispiel ist dies die Datei index.html. Der Browser empfängt die Datei und stellt sie als Webseite dar.


Sicherheitsprotokolle

SSL

Für eine Verschlüsselung der Datenübertragung ist die SSL (Secure Sockets Layer) verantwortlich. Doch ist dieses von Netscape entwickelte Protokoll heute unsicher und weist große Sicherheitslücken auf. Von SSL Verschlüsslungen wird abgeraten.

TLS

Ein neues sicheres Verschlüsselungsprotokoll ist das TLS (Transport Layer Security). Dieses ist ein zuverlässiger und vertrauenswürdiger Nachfolger der SSL. TLS entstand aus der 3. Version von SSL. Oftmals hört man auch noch den Begriff SSL obwohl es sich eigentlich um die neuere Form TLS handelt.

Lea Sophie_SSLundTLS.PNG

Ziele von Sicherheitsprotokollen

Die Nutzung von der SSL/TLS verfolgt 3 Ziele: In diesem Beispiel verdeutlicht an einem Nutzer, nennen wir sie Helen, welche 2 Informatikbücher auf einer Internetseite kauft.

1. Vertraulichkeit, d.h. Helenes Daten, wie Anschrift an welche sie ihre Bücher geliefert bekommen möchte, Bankkonten zum bezahlen und sonstige, persönliche Angaben sind für Dritte nicht einsehbar, da diese durch die SSL/TLS verschlüsselt wurden.

2. Integrität der Daten, bedeutet dass Helenes Bestellung nicht durch Dritte manipuliert werden kann, also dass sie 2 Informatikbücher und nicht etwa ein anderes Produkt zugestellt bekommt, bzw. ihre Bestellung überhaupt an ihrer Adresse geliefert wird. Diese Vorgänge garantieren Sicherheitsprotokolle.

3.Authentizität, steht für die Wahrheit, also die Sicherheit für Helene, dass die Webseite über die sie ihre Bücher gekauft hat auch zu einem existenten Shop gehört und keine Verkaufs-Masche ist. Diese Aufgabe ist wichtig für die SSL/TLS, da sie dem Kunden Schutz gibt.


Internetprotokolle

HTTPLea Sophie_HTTProt.PNG

Die bekannteste, mittlerweile veraltete Form lautet HTTP (Hyper Text Transfer Protocol). Dieses Protokoll regelt die Übermittlung von Daten im Internet nach dem Sender-Empfänger Modell. Doch ist dieses Verbindungprotokoll unverschlüsselt. Mit HTTP übertragene Daten sind also nicht von Angriffen durch Dritte geschützt.

Lea Sophie_HTTP.PNG

HTTPSLea Sophie_HTTPSgrün.PNG

Um die Sicherheit von Webseiten in voller Umfänglichkeit zu gewährleisten, gibt es die HTTPS (Hypertext Transfer Protocol Secure). Technisch gesehen ist dieses gar kein eigenständiges Protokoll sondern ein Zusammenwirken aus HTTP und SSL bzw. TLS (Internetprotokoll + Sicherheitsprotokoll). Die HTTPS bietet also eine gesicherte und verschlüsselte Verbindung.

Lea Sophie_Http_to_https-1.jpg


Unterschiede: HTTP vs. HTTPS

Die Verschlüsslung mithilfe von Sicherheitsprotokollen liefert der HTTPS einen sehr entschiedenen Vorteil gegenüber der HTTP. So sind Passwörter vor äußeren Eingriffen geschützter (siehe Bsp. Bild unten links) und Daten für Unbefugte schwer zugreifbar und somit sicherer und zu empfehlen. Dadurch ist die Nutzung einer HTTPS aber teurer für den Anbieter der Webseite.

Auch von Browsern und Unternehmen, beispielsweise Google wird ein Umschwung von HTTP zu HTTPS gefördert. Die Suchmaschine listet in ihrem Ranking, also der Reihenfolge der zum Suchbegriff gefundenen Webseiten, solche zuerst auf, welche mit HTTPS Verschlüsselung für sicher erklärt wurden. Das zwingt die Betreiber von Seiten zum Umdenken - aber wer auf HTTPS umsteigt muss vieles beachten. Wichtiger Knackpunkt ist, das HTTP und HTTPS unterschiedliche Webseiten sind! Es muss neu strukturiert werden. Auch das Schlüsselzertifikat einer HTTPS-Seite muss mindestens 2048-Bit lang sein. Auch Querverweise und Hyperlinks müssen überprüft werden, auf HTTPS „Ziel“-Seiten. Viele Browser warnen vor Benutzung von HTTP-Seiten und empfelen diese nicht, oder nur ohne Gebrauch von Persönlichen Daten zu nutzen (s. Bild unten rechts).

Lea Sophie_Difference-Between-HTTP-and-HTTPS.png Lea Sophie_Klassifizierung.PNG HTTP vs. HTTPS Informationen, die via HTTP übermittelt werden, sind unverschlüsselt und erscheinen im Klartext. Für mehr Anonymität und sicheren Datenaustausch im Internet gibt es die verschlüsselte Variante des Protokolls - HTTPS (Hypertext Transfer Protocol Secure). Ob Webseiten sicher übertragen werden, erkennen Sie an der URL. In diesem Fall sollte am Anfang der URL "https://" statt "http://" stehen.

FAZIT Bei der Nutzung von Webseiten sollte man immer daurauf achten HTTPS geschützte und Verschlüsselte Seiten zu Nutzen, erst Recht wenn man persönliche Daten angibt.


Informations-Quellen

https://www.symantec.com/page.jsp?id=ssl-information-center http://www.eology.de/eology-blog/safety-first-wieso-es-zeit-wird-fuer-eine-umstellung-auf-https/ https://www.marcobeierer.de/wissen/ssl-tls-und-https-erklaert


1.2 Vor- und Nachteile von HTTPS

Der größte Vorteil den HTTPS bietet ist natürlich der Datenschutz im Internet. Desweiteren ist für die Nutzung keine zusätzliche Softwareinstallation von Nöten, was ebenfalls einen großen Vorteil für einige bietet, denn somit kann HTTPS ohne Probleme von jedem verwendet werden. Die Authentifizierung durch das Zertifikat schafft zudem Vertrauen füt potentielle Kunden von HTTPS.

HTTPS weist allerdings auch einige Nachteile vor, welche aber eher von geringerer Bedeutung sind und somit auch in Kauf genommen werden können. Es können Zusatzkosten bei steigendem Traffic (Nutzung) entstehen. Beim HTTPS fallen Zwischenspeicherungen weg, doch mit den tendenziell steigenden Bandbreiten wird diesem Nachteil entgegengewirkt. Eine weitere Schwäche ist auch die schlechtere Performance, die bei der Verwendung von der SSL-Verschlüsselung entsteht. Der Server muss deutlich mehr rechnen, wodurch sich die Antwortzeit erhöht. Außerdem funktionieren mit HTTPS keine virtuellen Hosts


2.2 Nutzung von TLS

In der heutigen Zeit wird TLS vorallem in Verbindung mit HTTPS eingesetzt. Am meisten von den Webservern eingesetzt wird die TLS-Version 1.0 in Verbindung mit dem RSA-, AES- und Camellia-Verschlüsselungsverfahren. Die TLS-Version 1.1 wird von Google Chrome unterstützt, die Weiterentwicklung TLS 1.2 wird in der Standardkonfiguration von Internet Explorer, Firefox, Opera, Apple iOS und ebenfalls von Google Chrome unterstützt. (Stand Februar 2014)


2.3 Vor- und Nachteile

TLS bietet jeweils nur einen schwerwiegenden Vor- aber auch Nachteil. Der Vorteil den das TLS-Protokoll darbietet ist die Möglichkeit, jedes höhere Protokoll auf Basis des TLS-Protokolls zu implementieren. Somit ist eine Unabhängigkeit von Anwendungen und Systemen gewährleistet. Der Nachteil einer TLS-verschlüsselten Übertragung besteht darin, dass der Verbindungsaufbau auf der Serverseite rechenintensiv und somit auch langsamer ist. Die Verschlüsselung beansprucht je nach benutztem Algorithmus nur wenig Rechenzeit.

Es sind allerdings auch einige Angriffe auf TLS und SSL bekannt, die die Sicherheitsgarantien untergraben. Beispiele für Angriffe sind hierbei: Padding-Oracle-Angriffe, Kompressionsangriffe, Downgrades auf Exportverschlüsselung oder auch Implentierungsfehler. Allerdings gibt es genug Sicherheitseinrichtungen die gegen Angriffe wie diese vorgehen können. Quellen: https://www.ionos.de/digitalguide/hosting/hosting-technik/was-ist-http/ https://de.wikipedia.org/wiki/Hypertext_Transfer_Protocol#:~:text=Das%20Hypertext%20Transfer%20Protocol%20(HTTP,in%20einen%20Webbrowser%20zu%20laden. https://praxistipps.chip.de/http-und-https-wo-ist-der-unterschied_11772