Visualizzazione delle richieste SSL in forma non crittografata da un client remoto [chiuso]

0

Mi chiedevo come avrei potuto vedere le richieste SSL in forma non criptata da client remoti (in particolare, il mio telefono).

Ho sentito che dovresti usare i certificati CA, ma come potrei generarne uno dalla riga di comando di Linux che funziona per tutti i siti web.

Inoltre, ho visto un video in cui viene chiesto a un hacker etico di hackerare computer di qualcuno, l'hacker riesce a installare il certificato sul computer delle vittime attraverso l'ingegneria sociale, con una falsa e-mail.

È possibile installare un certificato sul clic del pulsante o devi importarlo manualmente?

(Non ti preoccupare, non lo userò su nessuno tranne me stesso, a meno che non sia stato dato il permesso)

Grazie

    
posta Jacob Collins 15.10.2017 - 02:02
fonte

1 risposta

1

Is it possible to install a certificate on button click, or do you have to manually import it?

Che cosa pensi che sia "importato manualmente"? È un software (parte) che consente all'utente di selezionare un certificato e, quando fa clic su un pulsante, aggiunge questo certificato al sistema. Significa, naturalmente, un tale software è possibile. (Questo dovrebbe essere un gioco da ragazzi).

Mentre ad es. Android aveva restrizioni in passato che i programmi di terze parti non erano autorizzati a farlo, ora è possibile.

I was wondering how I could be able to see SSL requests in an unencrypted form from remote clients

Alle richieste TLS MITM (TLS, dimentica SSL), è necessario non solo la parte del certificato, ma anche l'accesso ai dati stessi. È più facile iniziare con quello.

Una soluzione comune per scopi legittimi è quella di creare un server proxy e configurare il telefono per usarlo. Se si chiama un sito Web, il telefono non si connetterà direttamente a tale sito, ma si connetterà al server proxy e il server proxy si connetterà al sito Web. Ciò consente al server proxy di leggere tutti i dati trasmessi (ma non di decrittografarli).

Ora, per la parte di decifratura: potresti sapere che, quando una connessione TLS inizia, il server e il client concordano su un metodo di crittografia e così via, e il client controlla (con il certificato locale) se il server è il server reale per l'indirizzo specificato.
Se il tuo server proxy vuole decifrare i dati, deve agire come client all'avvio della connessione, es. la connessione TLS è tra server Web e server proxy. Il problema è nell'altra direzione: dopo aver letto ciò che il server ha inviato, deve essere inviato anche al telefono (altrimenti il telefono non avrà mai una connessione TLS avviata e non inizierà mai a inviare dati sensibili su di esso ).

La parte fondamentale di TLS ora è che il server proxy non è in grado di crittografare nuovamente i dati in modo che il telefono pensi che provenga dal server web (il che significa che il telefono rifiuterà la connessione, perché ha riconosciuto che il l'altro lato non è il web server). La soluzione (tecnica, non legale) 1 è quella di rubare la chiave privata del server web (che viene salvata sul server web, ma si spera non sia accessibile al pubblico). In tal caso, il tuo server proxy può convincere il telefono a pensare che comunica con il server web. È solo, rubare la chiave privata può essere un po 'difficile. L'altra soluzione consiste nell'aggiungere il certificato auto-creato per il sito Web al telefono e la chiave privata nel server proxy, in modo che il telefono accetti il server proxy anche come server Web legittimo.

Ma ora hai ancora un piccolo problema ...

but how would I generate one from the Linux command line that works for all websites.

Sebbene si possa facilmente vedere questo, non ti aiuterà, perché un certificato per tutti i siti web non è possibile. Il formato dei dati (utilizzato da server Web, browser, ecc.) Non lo consente. Significa che avresti bisogno di un certificato personalizzato (su telefono e proxy) per ogni sito web esistente, se segui questa strada.

Per risolvere questo problema dal lato del telefono, crea un certificato CA personalizzato anziché un singolo certificato sito web. Vale a dire. un certificato che può essere utilizzato per creare più certificati, e se il tuo telefono ha il certificato padre, si fida anche di tutti i bambini. E sul lato proxy, il tuo software proxy deve generare certificati del sito web al volo per ogni nuova connessione. C'è già un software in grado di farlo.

    
risposta data 15.10.2017 - 04:55
fonte