Farò del mio meglio per rispondere a ogni aspetto della tua domanda, ma tieni presente che questo è un argomento ampio con molti dettagli intricati.
prima cosa:
They claim that this is secure enough (as it seems that no sensitive info ever travels unencoded)
Correzione semantica: la parola che vuoi è non criptata, non codificata. La codifica implica che i dati sono facilmente reversibili e che la crittografia è in atto per impedire a un utente malintenzionato di invertire i dati crittografati al valore originale.
Using a simple MITM attack, attacker can modify webpage JS by adding an event listener that posts card details to the attackers server on submit of the form (that have all the card details). The user and the server wouldn't notice anything strange and the transaction could complete successfully. Is my understanding correct of the situation? Is it really unsafe?
La tua comprensione non è del tutto corretta per i siti HTTPS. Poiché i dati sono crittografati, il tuo MITM non sarebbe in grado di apportare modifiche al traffico. Ricorda, la crittografia avviene tra la vittima e il sito Web: il tuo proxy MITM non ha alcun controllo sulla crittografia. Pertanto, tutto ciò che vede sono dati crittografati - questo rende impossibile modificare al volo e inserire codice dannoso. La tua comprensione è corretta per i siti HTTP, comunque. Gli aggressori MITM sono in grado di manipolare il traffico, inclusa l'iniezione di script dannosi.
Esiste un attacco chiamato SSLstrip in cui un MITM attaccante esegue la crittografia HTTPS effettuando il downgrade dell'utente su HTTP (cambiando https: // a http: //). Funziona perché il browser vittima pensa che l'autore dell'attacco sia il sito Web e il sito Web ritiene che l'autore dell'attacco sia la vittima. Ciò è impedito nella maggior parte dei siti web al giorno d'oggi dall'inclusione dell'intestazione HSTS che indica al browser di accedere al sito solo tramite HTTPS. C'è un articolo più robusto e abbastanza non tecnico su questo attacco qui: link
And also, is MITM attack something that is very hard to perform, or is it doable with minimal hacking? How is it when comparing Public Wifi, Home Wifi and Cable internet?
MITM è incredibilmente facile da eseguire. Viene trasmesso tutto il traffico wifi - questo significa che qualsiasi dispositivo di sniffing nelle vicinanze può leggere il tuo traffico. Se ti stai collegando a una pagina tramite HTTP tramite Wi-Fi pubblico / non crittografato, puoi supporre che qualsiasi informazione che stai inviando e ricevendo sia pubblica - basta un attaccante con un'antenna per leggere tutto ciò in chiaro. Per eseguire un vero MITM attraverso il flusso di traffico che li attraversa, gli hacker possono utilizzare tecnologie come WiFi ananas o aircrack-ng per forzare gli utenti a connettersi alla loro rete wifi.
Potresti aver sentito parlare della crittografia Wi-Fi WPA / WPA2. Questo è lo standard corrente per la crittografia wifi: se ti connetti al router di casa con WPA2 puoi essere ragionevolmente sicuro che un utente malintenzionato esterno non possa intercettare i tuoi dati. Il WEP è obsoleto da molto tempo: non fidarsi della crittografia WEP per mantenere la connessione sicura. Tieni questo a mente ogni volta che ti connetti a una rete aperta (non crittografata): il tuo laptop / telefono ti avviserà generalmente di questo prima di connetterti.
Connettersi via cavo internet è molto più difficile da intercettare / mitm perché non stai trasmettendo il tuo traffico per l'intero quartiere. Per compromettere questa rete, un utente malintenzionato dovrà accedervi in qualche modo, tramite l'accesso fisico a una porta di rete, il malware installato su una macchina host o un router, ecc. Quando un utente malintenzionato ha accesso a una rete, deve quindi sfruttare che l'accesso attraverso attacchi come avvelenamento ARP o spoofing HSRP. Questi attacchi si limitano al traffico MITM: chiunque sulla rete può ancora rilevare (leggere, ma non modificare) il traffico, ma tenere presente che il traffico HTTPS è ancora crittografato e non può essere letto.