Domanda:
Il servizio Web HTTPS è passato a HTTP. Cosa può andare storto?
Peque
2016-04-18 22:44:48 UTC
view on stackexchange narkive permalink

Recentemente ho visitato un sito web che aveva una connessione HTTPS. Ora ha solo una semplice connessione HTTP e il metodo di autenticazione è cambiato da utente + password a "autenticazione con account Google".

Li ho contattati e ho chiesto loro perché hanno abbandonato l'HTTPS e mi hanno detto "perché ora l'autenticazione è sicura con Google, quindi non è più necessaria".

Beh, non sono un esperto di sicurezza, ma prima di rispondere vorrei sapere: cosa potrebbe andare sbagliato?

Quindi, con la mia scarsa conoscenza, direi (correggimi se sbaglio):

  • Perdita di privacy nelle comunicazioni tra client e server (l'attaccante può leggere qualsiasi informazione scambiata, comprese le informazioni personali che il client potrebbe pubblicare sul server).
  • Un utente malintenzionato potrebbe modificare le richieste del client, magari con intenzioni dannose.
  • Un l'autore dell'attacco potrebbe leggere il cookie e utilizzarlo per ottenere l'accesso al servizio come se fosse il client originariamente autenticato utilizzando i servizi di Google.

Ho ragione? Cos'altro potrebbe andare storto?

Le persone che gestiscono quel sito sono estremamente incompetenti.
"Li ho contattati e ho chiesto loro perché hanno abbandonato l'HTTPS, e loro mi hanno risposto" perché ora l'autenticazione è sicura con Google, quindi non è più necessaria "."- un esempio di sicurezza grazie alla conformità alle parole d'ordine?
Sono contento che non abbiano usato HSTS ..
@RubberDuck Se lo facessero, potrebbe averli costretti a mantenere il supporto HTTPS.;-P
come nota a margine, non ci sono davvero molte buone ragioni per usare ancora il semplice http per qualsiasi cosa, in questi giorni.
Cinque risposte:
Arminius
2016-04-18 23:39:05 UTC
view on stackexchange narkive permalink

Hai ragione, la regressione a HTTP è inutile.

Tieni presente che tutti i tuoi punti si applicano a un particolare tipo di attacco, in cui l'avversario è in grado di accedere ai dati trasporto tra client e server. Potrebbe essere il proprietario di un hotspot WiFi o il tuo ISP che funge da man-in-the-middle , che si trova tra te e il server. Questo può essere difficile da ottenere per un utente malintenzionato remoto, ma è particolarmente facile su una rete Wi-Fi pubblica.

Ciò che HTTPS aggiunge a HTTP è trasporto sicuro dei dati . L'applicazione web stessa può funzionare perfettamente: se stai comunicando su un canale non crittografato, l'attaccante sarà in grado di leggere, modificare e iniettare dati arbitrari nelle tue richieste e nelle risposte del server. Con un cookie di sessione acquisito, sarà anche possibile impersonarti fintanto che il cookie è valido.

Ciò che l'attaccante non può fare è assumere il controllo del tuo account Google o riautenticare con Google in un secondo momento. Questo perché l'autenticazione con Google avviene sempre tramite SSL e il token concesso scade dopo un determinato periodo di tempo.

Quindi la situazione è leggermente migliore rispetto all'acquisizione immediata delle tue credenziali. Tuttavia, come hai detto, un utente malintenzionato potrebbe comunque assumere il controllo della sessione ed eseguire qualsiasi azione per tuo conto.

È un dirottamento di sicuro, senza dubbio!Prova a verificarlo tramite Tor e / o I2P - prova a connetterti tramite questi tunnel.Se ci sarà un HTTPS come al solito, inizia a indagare ** ma prima rafforza la tua connessione **, prova a configurare un router Tor
Ángel
2016-04-19 02:33:06 UTC
view on stackexchange narkive permalink

Vorrei sollevare la seguente domanda:

Qual è lo scopo di avere l'autenticazione nell'applicazione?

Se tutta la pagina contiene è contenuto pubblico e verificabile in un modo esterno (es. un mirror Debian, dove i pacchetti sono con PGP) e ai tuoi utenti non importa che una terza parte controlli ciò che visitano, la pagina potrebbe non aver bisogno di https. Ma nemmeno un login.

I motivi comuni per richiedere l'autenticazione includono:

  • Ci sono alcuni dati che l'utente può leggere solo dopo aver effettuato l'accesso

  • Un utente registrato può inviare messaggi ad altre persone

  • Permette all'utente di guadagnare reputazione, mantenendo un'identità che utilizza solo da lui

  • L'account può ricevere alcuni vantaggi ottenuti all'esterno (come l'accesso a contenuti a pagamento)

Tutti vengono sconfitti da utilizzando http invece di https nella comunicazione, così come quasi ogni altro motivo per inserire un login. Indipendentemente dal fatto che la password non fosse esposta (cosa che certamente sarebbe anche peggio).

Qualche tempo fa si discuteva il prezzo di acquisto dei certificati, ma oggigiorno esistono diverse CA che forniscono certificati gratuitamente.

† Nitpicker, ci sono alcuni casi estremamente rari in cui la sicurezza non viene compromessa da questo. Un esempio è Mega, che caricava alcuni javascript comuni tramite http, ma uno script caricato su https ne verificava gli hash prima di eseguirli. Fragile e più complesso rispetto all'impostazione di https ovunque. Non provateci a casa, ragazzi.

Anche i certificati pagati possono essere ottenuti per importi quasi nominali, se per qualche motivo si desidera pagare (se non altro per avere qualcuno a cui urlare quando le cose vanno male).Non è difficile trovare certificati DV di base nell'intervallo inferiore a $ 10 / anno / fqdn, o aggiungere forse uno zero in più se vuoi qualcosa come un certificato jolly e per qualsiasi cosa in cui considereresti HTTP, DV HTTPSè perfettamente sufficiente.
L'utilizzo di http: // anziché https: // può rendere le cose più convenienti per gli utenti dietro captive portal.Un gateway WiFi pubblico può reindirizzare la prima richiesta http: // da un determinato indirizzo MAC a una pagina dei termini di servizio, ma una richiesta https: // andrà semplicemente a una schermata di errore senza indicare all'utente la necessità di accettareai termini di servizio prima di utilizzarlo.
La "verifica hash" * di MEGA è inutile *: carica tutto tramite HTTPS, poiché il caricamento di risorse HTTP da HTTPS è bloccato o, almeno, genera avvisi.Solo i client desktop e le estensioni eseguono richieste HTTP e solo per scaricare i file crittografati, poiché non è necessario scaricare i file JavaScript.
Posso fare un'ipotesi plausibile su quali siti Web ti hanno ispirato al terzo elemento (raccolta della reputazione), ma almeno * consentono * l'uso di HTTP, vero?
@HagenvonEitzen In realtà stavo pensando in un [forum] classico (https://en.wikipedia.org/wiki/Internet_forum), ma quella pagina è effettivamente interessata.In effetti, qualsiasi pagina in cui gli utenti si registrano e comunicano tra di loro lo è.
Vale la pena notare che mentre i primi tre motivi sono cose per cui l'utente è svantaggiato se la sua connessione è compromessa, nel quarto caso è il fornitore di servizi a essere svantaggiato (poiché all'utente probabilmente non interessa che gli aggressori accedano al providercontenuto a pagamento gratuitamente).Poiché il fornitore di servizi generalmente decide il livello di crittografia da utilizzare, in quest'ultimo caso, il fornitore di servizi possiede tutti i rischi che ha creato e potrebbe aver preso una decisione calcolata in tal senso.
@James_pic, se l'utente ha acquistato crediti, il fornitore di servizi lo conterebbe come speso, indipendentemente dal fatto che sia il legittimo proprietario o meno.
Prashant Mishra
2016-04-19 13:32:16 UTC
view on stackexchange narkive permalink

Le tue credenziali sono al sicuro, ma potrebbe verificarsi un dirottamento della sessione

Una possibilità poteva essere che un utente malintenzionato potesse aver effettuato un attacco SSL Strip mentre agiva come l'uomo in mezzo, se in tal caso, il sito Web HTTPS verrà servito come HTTP alla vittima. Ma come hai confermato con il sito web che l'hanno fatto intenzionalmente, quindi questa possibilità viene eliminata.

Ora, Google utilizza oAuth2, quindi la stretta di mano con Google sarà su HTTPS & verrai reindirizzato a dopo di che il tuo sito web su HTTP (succede allo stesso modo con https://security.stackexchange.com/ mentre utilizzi il tuo account Google). Il tuo sito web avrebbe generato un token di sessione dopo oAuth. Il rischio che HTTP possiede in questo caso è che un attaccante può facilmente dirottare la tua sessione e navigare nel sito web fingendo di essere te

Stack Exchange offre HTTPS per tutti i siti non meta.(Meta è più complicato a causa della struttura del nome di dominio; dovrebbe essere andato con security.meta.stackexchange.com piuttosto che con meta.security.stackexchange.com perché allora avrebbe potuto essere gestito in gran parte da * .stackexchange.com e * .meta.stackexchange.com.) Penso che HTTPS Everywhere di EFF ti dia HTTPS per impostazione predefinita per tutti i siti principali di Stack Exchange.
Cricco95
2016-04-18 23:36:38 UTC
view on stackexchange narkive permalink

Hai assolutamente ragione. Escludendo le credenziali di accesso di Google, un utente malintenzionato può eseguire un attacco MITM e intercettare tutte le richieste della vittima. Ti consiglio di comunicare loro i rischi di una reimplementazione del protocollo SSL.

gnasher729
2016-04-21 14:26:47 UTC
view on stackexchange narkive permalink

"Cosa può andare storto": se lo fai con un'API, tutte le applicazioni iOS progettate per iOS 9 e in esecuzione su iOS 9 che utilizzano tale API smetteranno di funzionare.

Si chiama "App Transport Security" e, a meno che lo sviluppatore non crei un'eccezione per il tuo dominio, http non viene accettato e https con connessioni non sufficientemente sicure non viene accettato. Poiché la tua API utilizzava https, le app esistenti non avranno un'eccezione per il tuo dominio, quindi smetteranno di funzionare.

Bene, stavo chiedendo "cosa potrebbe andare storto" in termini di sicurezza.Se questo servizio web smette di funzionare, non è un vero problema di sicurezza.Ma sì, ovviamente i client e le applicazioni di terze parti potrebbero smettere di funzionare (non so cosa c'entra iOS con questo, anche se xD).


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...