Come devo determinare se un'applicazione trasmette le mie credenziali in modo sicuro?

6

Ho bisogno di sapere su quali basi posso valutare l'affidabilità dell'uso dell'applicazione (accedere agli account privati) su reti pubbliche.

Ad esempio, mi piacerebbe giocare a Diablo 2 LoD mentre sono in un Internet café, ma sono preoccupato che qualcuno stia annusando il mio traffico di rete e catturando le mie credenziali battle.net. Come posso sapere se la password viene inviata in modo sicuro o in chiaro?

    
posta LanceBaynes 21.09.2011 - 10:23
fonte

4 risposte

12

Un modo per controllarlo è quello di eseguire uno strumento di sniffing dei pacchetti come wireshark , poiché questo può darti informazioni sui protocolli in uso, e può mostrarti informazioni simili a ciò che qualcun altro vedrebbe se stessero annusando la tua connessione.

Qui presumo che Battle.NET utilizzi HTTP (S) per l'autenticazione, quindi in sostanza cercheresti la differenza tra una connessione HTTP in chiaro e una connessione HTTP (S).

In termini pratici, un buon modo per farlo è quello di chiudere tutti gli altri programmi prima di eseguire lo sniffer, per ridurre al minimo il rumore e rendere più semplice l'isolamento del traffico pertinente. Se è possibile identificare quali indirizzi IP dei server vengono eseguiti, è possibile impostare un filtro di acquisizione su wireshark solo per tali indirizzi IP, il che renderebbe ancora più semplice.

Quindi avvia lo sniffer e accedi a Battle.NET. Una volta effettuato l'accesso, interrompi lo sniffer ed esamina l'output.

quello che stai cercando è il protocollo che è in uso per la connessione se vedi le connessioni usando HTTP e puoi vedere il contenuto della connessione (facendo clic con il pulsante destro del mouse su uno dei pacchetti che viene inviato al server in wireshark e usando il "follow TCP Stream" dovrebbe mostrarti alcuni dettagli.)

Se la connessione utilizza HTTP (S), non dovresti vedere alcun testo in chiaro dopo che la connessione è stata stabilita, mentre se stai usando HTTP vedrai i dettagli in chiaro del traffico inviato avanti e indietro.

Un altro controllo rapido e sporco sarebbe quello di salvare il file di acquisizione dei pacchetti dal tuo login e utilizzare uno strumento di ricerca delle stringhe (come findstr in windows o grep in linux) per verificare la tua password o nome utente. Se li vedi, vengono mandati in chiaro, se non lo fai allora vengono almeno offuscati e potrebbero essere crittografati.

Ci sono ancora altri rischi, specialmente se usi un computer di qualcun altro in un internet cafè poiché potrebbero installare i keylogger se volessero e / o modificassero le autorità di certificazione attendibili che potrebbero consentire loro di intercettare il traffico inviato tramite SSL.

La linea di fondo è che se si utilizza un sistema controllato da qualcun altro sulla propria rete è probabile che possano ottenere l'accesso ai dati elaborati in quel momento.

    
risposta data 21.09.2011 - 17:35
fonte
9

"Credenziali" e "Internet Cafe" nella stessa frase ...

Qualsiasi computer disponibile al pubblico è suscettibile di essere l'host di un keylogger. Da un punto di vista un po 'paranoico, le tue credenziali vengono tostate non appena le digiti sulla tastiera, indipendentemente da ciò che accade sulla rete.

Ora, se porti la tua macchina (ad esempio "Internet Cafe" è in realtà un hotspot WiFi - in una impresa che commercializza bevande calde, se vuoi - e hai il tuo laptop con te), allora puoi considerare accesso a non essere peggio di Internet in generale. Certo, gli sniffer di rete si incontrano più spesso nell'hotspot Wi-Fi pubblico, ma questo non cambia davvero le cose a un livello fondamentale: se c'è una debolezza del protocollo che può essere sfruttata in quella situazione, allora potrebbe anche essere sfruttata quando ti connetti dal tuo a casa.

    
risposta data 21.09.2011 - 17:36
fonte
8

Non c'è una buona risposta alla tua domanda.

La risposta ovvia non funziona. Il modo più ovvio per testare questo è semplicemente annusare il filo e vedere se la tua password lo attraversa. Puoi eseguire semplici strumenti come "ngrep" o "Snort" per cercare la rete per te, in modo da non dover gestire strumenti complicati.

Ma questo non funziona. Questo ti dice solo se l'applicazione ha fatto un errore evidente. Il problema è che la maggior parte dei sistemi non fa errori evidenti, ma sottili.

Prendi Diablo2 LoD come esempio. Utilizza un meccanismo di richiesta / risposta per l'accesso, in modo che la password non venga inviata attraverso il filo.

Ma un hacker può annusare il filo e catturare sia la sfida che la risposta. L'hacker di provare un miliardo di password al secondo per vedere se corrispondono alla sfida / risposta. Se hai scelto una password facilmente indovinata, l'hacker lo scoprirà rapidamente.

Quello che sto dicendo è che Diablo2 LoD è sicuro contro il tipo più ovvio di sniffing della password, ma non è adeguatamente sicuro contro un hacker dedicato, a meno che non si scelga una password lunga / complessa che non si possa indovinare, anche a un miliardo tentativi al secondo.

Lo stesso vale per praticamente ogni protocollo. Sono tutti "insicuri" dopo una moda. È semplicemente una questione di quanti sforzi gli hacker hanno speso per risolverlo. Ho invertito la progettazione di Diablo2 LoD nel corso della giornata, ma non l'ho riprodotto per 10 anni, quindi non conosco lo stato dell'arte. Potrebbe esserci un semplice strumento di hacker in giro per annusare e scricchiolare le password, oppure potrebbe non esserlo. Se ci fosse un tale strumento, saresti in pericolo a suonarlo in un bar. Se un tale strumento non esiste, probabilmente sei al sicuro.

    
risposta data 21.09.2011 - 19:23
fonte
2

Non sto cercando di entrare nel mantra "open source è buono", ma questo è un posto dove ha senso. Se l'applicazione è open source, puoi facilmente valutare il suo comportamento. Un'applicazione closed-source è molto più difficile, e direi che uno con una qualche forma di sistema anti-cheat è ancora più difficile. La D2, ad esempio, aveva sia un meccanismo anti-cheat sia un meccanismo cd-drm (se la mia memoria è giusta). Dove iniziare? Lo sniffing dei pacchetti potrebbe essere un buon punto di partenza. Comunque penso che tu rimanga per qualche notte se vuoi finire con una buona conclusione ...

    
risposta data 22.09.2011 - 12:16
fonte

Leggi altre domande sui tag