it-swarm.com.de

Ist es möglich, einen Browser zu zwingen, http auf einer SSL-fähigen (https) Website zu verwenden?

Ich habe eine Sicherheitsuntersuchung zum Speichern der Sitzungs-ID im lokalen Speicher durchgeführt, anstatt sie in Cookies zu speichern. Ich verstehe, dass es nicht möglich ist, die Werte im lokalen Speicher als HttpOnly zu kennzeichnen, und dass es daher anfällig für XSS-Angriffe ist. Da alle Eingaben ordnungsgemäß validiert sind, bin ich von diesem Problem befreit.

Das andere Problem, das ich gefunden habe, ist die Manipulation von Daten während der Übertragung auf den Server. Da meine lokale Speichersitzungs-ID nicht unter Secure markiert werden kann, kann sie möglicherweise über einen unverschlüsselten Kanal (HTTP) übertragen werden. Um dies zu mildern, möchte ich wissen, ob es möglich ist, über HTTP, das mit SSL gesichert ist, auf eine Seite zuzugreifen.

12
Anandu M Das

Auf eine Seite, die mit SSL (oder TLS) gesichert ist, kann nicht über HTTP zugegriffen werden, da dies bedeuten würde, dass die Seite nicht mehr gesichert ist.

Wenn ich die Frage umformuliere: Ist es möglich, über HTTP auf eine bestimmte Seite einer HTTPS-gesicherten Website zuzugreifen, dann würde ich sagen, dass dies möglich, aber sehr unsicher ist. Darüber hinaus muss das Cookie mit der Sitzungs-ID wahrscheinlich zusammen mit jeder Seitenanforderung gesendet werden, da Sie die Sitzung über mehrere Seiten hinweg verfolgen müssen. Dies würde bedeuten, dass Sie fast jede Seite über HTTP bereitstellen müssen, wodurch Ihre Website unsicher wird.

Wenn Sie das Sitzungscookie nur auf einer Seite benötigen, können Sie den Client anweisen, eine HTTP-Anforderung an diese eine Seite auszuführen, die dann alle Cookies sendet, für die das Flag "Sicher" nicht gesetzt ist. Dies bedeutet jedoch, dass alle diese Cookies für einen MITM-Angriff anfällig sind und von jedem gelesen werden können, der Ihre Kommunikation mithört.

Mein Rat: Stellen Sie niemals bewusst eine Seite einer HTTPS-Site über HTTP bereit.

Also, die Frage, die Sie sich stellen müssen, ist warum kann meine Sitzungs-ID nicht nur als sicher markiert werden. Ist es Faulheit oder gibt es einen anderen Grund, warum Sie diesen Cookie nicht als sicher kennzeichnen können?


Übrigens kann HTTP Strict Transport Security verwendet werden, um einen Browser zu zwingen, immer HTTPS für eine Website zu verwenden (und sich nicht auf 302 Weiterleitungen zu verlassen, um die HTTPS-Version zu besuchen). Weitere Informationen finden Sie unter OWASP .

8
Michael

Ja, das ist es natürlich.

  • Das einfachste Beispiel ist der Benutzer, der die Anfrage nur unbewusst oder nach Belieben als http: // ... sendet.
  • Der (möglicherweise böswillige) Webserver könnte dies auch tun, indem er lediglich eine 30-fache Umleitung oder eine Seite mit allen weiteren Hyperlinks sendet, die auf http: // anstelle von https: // verweisen

Beispiel für letzteres: Stellen Sie eine Verbindung zu https://www.Amazon.com her, und Sie landen auf einer Seite ohne SSL-Schutz.

2
Marcel

Ich denke, Sie fragen nach der Verschlüsselung Ihrer Daten mit ssl, während Sie über das http: // -Protokoll auf Ihren Server zugreifen. Ich denke, es wäre eine gute Lösung, um alle Arten von SSL-Warnungen zu vermeiden und gleichzeitig die wichtigen Daten zu sichern.

Ich fand diese Frage sehr interessant und werde sie auf meinem eigenen Server ausprobieren.

In Bezug auf die Frage wird der Server dies jedoch standardmäßig nicht tun. Selbst wenn Sie SSL-Daten über die HTTP-Server-Listen-Schnittstelle senden können, verarbeitet der Browser die angeforderten Daten nicht ordnungsgemäß. Denken Sie daran, dass der Entschlüsselungsprozess der SSL-Daten stattfindet, wenn Sie einen https: // url-Inhalt erreichen. Ich bin mir also sicher, dass dies in irgendeiner Weise abstürzt, wenn Sie den verschlüsselten abrufen, da die Anforderungen von Natur aus nicht verstanden werden.

Wenn das Ziel darin besteht, die normalen Leute (mit einem normalen Browser) nahezu 100% sicher zu machen, dass der Browser nicht mit Ihren Anforderungen funktioniert.

Wenn das Ziel darin besteht, SSL-Daten über eine http-Procotol-Verbindung zu senden, müssen Sie den Bot-Server und den Browser hacken/ändern. Bei einem Verkehrsscan werden Sie als http-Verbindung mit "unlesbaren" SSL-verschlüsselten Daten erkannt.

Sehr interessante Frage. Ich habe ein wenig darüber recherchiert.

0
m3nda