Also würde in einem öffentlichem WLAN reichen, wenn man SSL/TLS nutzt und die URL prüft?
Ja. Nein. Vielleicht.
Versuchen wir es mal andersrum: was müsste ich machen, um dich reinzulegen.
1. Ich brauche Zugang zum gleichen Netz, in dem du bist. Bei einem öffentlichen WLAN nicht schwierig.
2. Ich müsste versuchen, deine DNS Abfragen zu manipulieren. Das ist keine raketenwissenschaft, aber trotzdem schon etwas anspruchsvoller. Gibt's verschiedene Ansätze, abhängig vom Hotel WLAN.
Einfacher:
Ich baue einfach selber einen öffentlichen WLAN-Hotspot mit einem vertraut klingenden Namen. Und hinten raus nutze ich dann das Hotel WLAN als Uplink, das heißt du als Opfer nutzt mein WLAN und ich leite dich ins Hotel WLAN weiter. Klassische Man in the middle Attacke. Solange ich näher an dir dran bin, als ist die Antenne des Hotel WLANs ist, wirst du alleine schon des besseren Empfang wegen mich nehmen.
3. Jetzt muss ich verhindern, dass du deine Bank erreichst. Das kann ich durch eine einfache manipulierte DNS-Abfrage machen, wenn ich sowieso men in the middle bin gibt's auch noch andere ähnlich effektive Wege (vor denen dich auch DNS over https nicht schützt).
Stattdessen sorge ich dafür, dass du bei Eingabe von
www.dkb.de bei mir raus kommst.
4. Würdest du https machen, würde deinem Browser jetzt anhand des falschen Zertifikates auffallen, dass ich nicht dkb.de bin.
Also biete ich dir kein https an, sondern nur HTTP. da gibt es kein Zertifikat, also auch keine identitätsprüfung.
Hast du explizit https : //
www.dkb.de aufgerufen, bekommst du jetzt eine Fehlermeldung, weil dein Browser diese Seite nicht erreichen konnte.
Hast du aber nur
www.dkb.de aufgerufen, wird Dein Browser entweder direkt oder im zweiten Versuch (wenn du einen Browser hast, der https first versucht) http machen und mit mir reden.
5. Per HTTP schicke ich Dir jetzt eine Weiterleitung auf meine Phishing-Seite. Die läuft unter einem Domainnamen, der unauffällig realistisch klingt. Das kann irgendwas mit unsichtbaren IDN Sonderzeichen sein (okay, davor bist du jetzt geschützt, das würdest Du sehen).
Das kann aber auch einfach irgend eine Domain sein, die plausibel klingt.
koelnbonn.onlinebanking-der-sparkassen.de beispielsweise (um mal klarzustellen, dass die DKB hier auch nur Opfer Beispiel ist). Es gibt beliebig viele Möglichkeiten, die niemand irgendwie verhindern könnte.
Und weil diese Domain ganz legitim mir gehört, kann ich darauf auch ein absolut korrektes SSL Zertifikat ausstellen lassen. Also leite ich dich nicht nur auf meine Domain, sondern direkt auf https :// meine Domain, damit du auch siehst, dass das alles verschlüsselt ist.
Immerhin möchte ich ja nicht, das noch irgendjemand fremd ist außer mir deine Zugangsdaten bekommt
Diese weiterleitung dauert wenige Millisekunden, das heißt du tippst deine URL in den Browser ein und bekommst die Phishing Seite genauso schnell und genauso unauffällig, wie du es bei der richtigen Seite auch bekommen hättest.
Fertig.
Verhindern kannst du das nur, indem du
A) am besten sämtlichen Traffic durch ein VPN jagst, dessen Gegenstelle du vertraust. Und auch deine DNS-Anfragen musst du dann übers VPN einen vertrauenswürdigen DNS-Server stellen.
Oder
B) indem du explizit https beim Aufruf eingibst (damit erzwingst) oder aus einem Favoriten heraus anklickst, ...
Dann würdest du wie oben beschrieben einfach nur eine Fehlermeldung bekommen, anstatt auf http zurückzufallen.
Noch ein Schritt weiter:
Noch besser wäre natürlich, wenn ich dir unter irgendeinem Vorwand ein eigenes Zertifikat unterschieden kann (dann gelte ich auf deinem PC als vertrauenswürdige Stelle, um selber SSL-Zertifikate auszustellen). Dann könnte ich auch für die original Domain Deiner Bank zB
www.dkb.de ein Zertifikat ausstellen, und dann würdest du auch durch Variante b dich nicht mehr schützen können.
Die Zertifikats-Installation erfordert allerdings ein bisschen mehr Aufwand, z.b. könnte ich es dir als irgendein Plugin unterschieben auf einer Fake "wenn Sie unseren kostenfreien Hotspot nutzen möchten, bestätigen Sie bitte die Nutzungsbedingungen" -Seite. Oder ich bringe dich dazu, ein USB-Gerät einzustecken ("könnte ich freundlicherweise mein Handy bei Ihnen kurz an den Strom hängen"), das sich auf deinem PC als Tastatur anmeldet und Tastenfolgen abspielt.
Und: die oben genannte Technik für einen man in the middle Hotspot läuft problemlos auf einem Smartphone. Falls ich dich dazu bringe, dieses Smartphone zum Laden an deinen PC an zu hängen, wirst du selbst dann angreifbar, wenn du Internet per Kabel benutzt. Das Smartphone kann sich dann nämlich per USB als Internetzugang (Tethering via USB) anbieten, so dass dein PC für dich unbemerkt gar nicht mehr das Kabel benutzt, sondern jetzt eben die Falle.
Das ist dann aber alles schon eine ganze Stufe weiter, weil es eben mitwirken deinerseits erfordert.