Qualcuno può rilevare l'URL utilizzato da un'app Android?

6

Ho un'app per Android che rende la connessione HTTPS a un URL specifico. C'è un modo per mantenere questo URL segreto?

So che è possibile rilevare l'indirizzo IP e il numero di porta di quella connessione, ma per quanto riguarda il nome host esatto e, ancora più importante, l'URI e / o la stringa di query?

Non intendo solo tramite router o tramite un altro "hacking" di rete, ma anche usando qualche altra app per Android o usando il plugin di eclipse.

L'app è nativa e so come nascondere e nascondere l'URL nel codice, quindi non può essere visto decompilando l'app.

    
posta ilija139 18.10.2012 - 14:49
fonte

3 risposte

16

HTTPS (ad esempio SSL / TLS) crittografa tutte le comunicazioni HTTP compreso l'intero URL. HTTPS non non protegge il nome di dominio in quanto viene inviato al DNS in chiaro, ma protegge il resto dell'URL. Altre app non hanno accesso al traffico crittografato SSL / TLS della tua app, inclusi gli URL. Quindi, finché la connessione SSL / TLS viene configurata in modo sicuro, un utente malintenzionato non sarà in grado di ottenere l'URI dal traffico.

Ma dall'ultima frase hai scritto ("So come nascondere e nascondere l'URL nel codice, quindi non può essere visto decompilando l'app") Capisco che è necessario proteggere l'URL da un utente malintenzionato chi ha pieno accesso al dispositivo (ad esempio il proprietario del dispositivo). In questo caso non è possibile fare affidamento sulla sicurezza della connessione SSL / TLS poiché l'atttacker può installare il suo certificato CA sul proprio dispositivo. Ciò annulla completamente la sicurezza di SSL / TLS, in quanto l'attaccante può impersonare il tuo server ed eseguire un attacco man-in-the-middle - proprio come Alexey V. Borodin hack sugli acquisti in-app di Apple . Anche se si utilizza un certificato SSL con hard-coding, l'utente malintenzionato può eseguire il root del dispositivo e modificare l'O / S per l'output di tutte le comunicazioni SSL / TLS in chiaro. Quindi HTTPS non proteggerà i tuoi URI da un utente malintenzionato che esegue l'app sul proprio dispositivo.

    
risposta data 18.10.2012 - 16:02
fonte
5
  1. Configura un ad- rete ad hoc su un computer.
  2. Rendi il tuo telefono connesso alla rete appena creata
  3. Utilizza Wireshark per vedere quali connessioni sono fatte
risposta data 18.10.2012 - 14:54
fonte
3

In una connessione HTTPS i dati dell'URL sono crittografati. L'indirizzo IP e la porta del server a cui si sta collegando possono essere facilmente enumerati usando uno sniffer di pacchetti, quindi è probabile che se l'URL possa essere annusato il server non sarà un segreto. I dati trasmessi all'interno di una connessione https (cioè SSL / TLS) sono segreti finché non c'è Man in the Middle, vedi le discussioni precedenti su quell'argomento.

Se l'obiettivo è cercare di impedire a chiunque di vedere a quale sistema si connette l'applicazione, l'unico modo plausibile per farlo è scavare il traffico attraverso una VPN di qualche tipo, e sperare che nessun ascoltatore possa annusare il traffico che esce dall'altra parte. L'invio del tuo traffico attraverso una sorta di anonymizer porterebbe a termine questo.

    
risposta data 18.10.2012 - 15:50
fonte

Leggi altre domande sui tag