Password in chiaro?

25

Sto facendo delle ricerche sull'App del mio operatore telefonico. Ho avviato Burp Suite sul mio Mac in modalità proxy, poi ho aperto l'app sul mio iPhone e ho iniziato ad annusare il traffico.

Ho premuto il pulsante "login" e questo è successo:

Il mio nome utente e la mia password ci sono, in chiaro. La connessione è in realtà HTTPS, ma se si tratta di HTTPS, perché posso leggere il mio nome utente e password come parametri in chiaro nella richiesta POST?

È normale?

Ho anche provato a replicare il processo di login con un comando di ricciolo, e funziona solo se utilizzo il parametro -k che salta la convalida del certificato SSL.

Che sta succedendo qui?

    
posta marcomanzoni 30.09.2014 - 11:45
fonte

3 risposte

35

Burp Suite in modalità proxy è in grado di decodificare il traffico HTTPS di qualsiasi sistema che si fida di esso. A tale scopo, genera un proprio certificato e utilizza questo certificato per registrarsi come autorità di certificazione sul sistema su cui è installato. Quando inoltra quindi una richiesta a un server web HTTPS, esegue l'handshake HTTPS stesso, decrittografa il traffico, emette un certificato per il server Web firmato da solo come autorità di certificazione, utilizza tale certificato per crittografare nuovamente il traffico e inviare entrambi i falsi certificato e i dati re-crittografati al client.

Ciò consente a Burp Suite di intercettare il traffico HTTPS. Un utente che utilizza un normale server proxy o non si fida della pseudo-CA di Burp Suite non avrebbe le proprie credenziali compromesse.

    
risposta data 30.09.2014 - 12:43
fonte
1

Non ne sono sicuro al 100%, ma penso che evidenzi una grave vulnerabilità nell'applicazione che stai esaminando:

Normalmente, quando un'applicazione si collega tramite https, crea una connessione sicura e convalida che il certificato è stato firmato da un'autorità di certificazione fidata , che è ancora valido e, a volte, che è non è stato revocato. Il certificato deve anche essere valido per il dominio a cui è stata avviata la connessione HTTP.

Burp genera un certificato non valido per l'intercettazione del traffico SSL. Come hai detto, curl e qualsiasi altra applicazione che sia sicura, vedrai che il certificato è firmato da una non affidabile CA e agirà di conseguenza; i browser visualizzeranno un avviso grave e il ricciolo uscirà con uno stato di errore.

Se l'applicazione non agisce di conseguenza e continua a connettersi anche se il certificato non è valido, un utente malintenzionato come te può intercettare la connessione e fare cose diverse, tra cui il furto della password e se l'applicazione si aggiorna automaticamente, eseguendo codice arbitrario nel tuo computer.

Nota che questo si applica solo se non hai ricevuto e ignorato eventuali avvisi dall'applicazione.

    
risposta data 02.10.2014 - 22:55
fonte
0

Non è sicuramente buono, ma per ora è normale. Non va bene perché un avversario hackerato nel server può modificare il software del server per salvare le credenziali per lui. Oppure un avversario in grado di decrittografare https, ad esempio l'utilizzo di mitm, come si fa, può ottenere le password. Esiste una soluzione presente da oltre 30 anni denominata protocolli di autenticazione, ma purtroppo non vengono utilizzati. I protocolli di autenticazione Zero-Knowlege sono presenti da oltre 20 anni, ma non sono ancora ampiamente utilizzati. Non so perché usiamo ancora queste password obsolete.

BTW, lo sviluppatore dell'app dovrebbe implementare il blocco della chiave pubblica, ma ciò non è stato fatto.

    
risposta data 25.12.2016 - 00:58
fonte

Leggi altre domande sui tag