C'è un modo per dimostrare che HTTPS sta crittografando la comunicazione con il mio sito?

47

Sto lavorando per un'azienda che si occupa dello sviluppo di applicazioni web e io sono l'esperto di sicurezza. Recentemente ho implementato HTTPS in un'applicazione con Let's Encrypt , e il mio capo mi sta chiedendo di dimostrare che HTTPS crittografa davvero informazione.

Come posso farlo?

    
posta NTHINGs 05.10.2016 - 21:06
fonte

6 risposte

64

My boss is asking me to prove that HTTPS really encrypts the information. How can I do that?

A livello base, puoi usare un ispettore pacchetto o un semplice proxy di port forwarding. Forse Wireshark controllerà i pacchetti abbastanza facilmente.

Dovresti essere in grado di scoprire rapidamente che il traffico HTTP è di testo normale, mentre l'HTTPS è un linguaggio binario senza senso. (ad eccezione del nome host)

Tuttavia, questo dimostra solo che la connessione è offuscata. Non dimostra crittografia o sicurezza. Specificamente non fa nulla per mostrare l'immunità a MiTM.

Fortunatamente, il browser fa tutto questo per te. Se un browser moderno tenta di connettersi a una pagina Web HTTPS, verificherà quanto segue:

  • Algoritmi di hash abbastanza forti per i certificati coinvolti.
  • Algoritmi di crittografia sufficientemente potenti. (cioè è effettivamente crittografato)
  • Catena di certificati emessa da Autorità di certificazione attendibili (ad esempio, CA che verifica la proprietà del dominio prima di emettere i certificati)
  • Non scadenza dei certificati.
  • La corrispondenza dei valori hash significa che non ci sarà il MiTM.

Mentre il tuo capo può come per vedere l'incomprensione di wireshark tra HTTP e HTTPS, un test più strong è semplicemente visitare il sito HTTPS con un browser moderno.

Assicurati che il browser non sia stato preconfigurato per ignorare l'avviso. (cioè test da più computer e smartphone)

Se prevedi di continuare a utilizzare HTTPS in modo permanente (quale dovresti), una precauzione saggia sarebbe quella di forza reindirizza tutte le visite HTTP al sito HTTPS , perché non puoi garantire che tutti i visitatori includano il prefisso https:// quando visitano il tuo sito.

    
risposta data 05.10.2016 - 21:41
fonte
39

Questi sono alcuni modi (non esaustivi) per dimostrare che la tua applicazione è informazioni crittografiche :

  1. Labs SSL ha un'applicazione Web per testare l'implementazione SSL della tua applicazione web

o

  1. Nel tuo browser web, i siti protetti con HTTPS mostreranno un blocco verde accanto all'URL in questo modo:

Sehaibisognodiulterioridettagli,odiunaprovamiglioredelfunzionamentodeltuocertificatodiversodalbloccoverde,faiclicsuquellucchetto,mostraidettaglievedraiqualcosadisimile(inChromeperquestoesempio):

Questotidaràtuttiipiccolidettaglisporchidicuihaibisognoperverificarecheiltuocertificatofunzionicomeprevisto.

o

  • Attiva Wireshark , o uno sniffer / analizzatore di pacchetti a tua scelta, quindi esegui alcuni dati tramite l'applicazione che deve essere crittografato ( login, inviare un modulo ecc ...). Trova il pacchetto , segui il flusso TCP e verifica che non venga trasmesso nulla in testo semplice .
  • risposta data 05.10.2016 - 21:42
    fonte
    15

    SSLlabs è un ottimo strumento per analizzare un sito Web HTTPS. Ma ....

    • Non dimostra che hai chiuso le parti non-ssl del sito
    • Ho l'impressione che il tuo capo non capisca cosa ti sta dicendo del tuo sito
    • Dai tuoi commenti su wireshark sembra che tu stia lottando un po 'per capire cosa ti succede

    Dici che ti è stato chiesto di dimostrare che "HTTPS in realtà crittografa le informazioni". Forse qualcuno ha scelto male le loro parole, ma preso per valore, tu dici che ti viene chiesto di dimostrare che la tecnologia di cui il mondo fa affidamento per garantire che l'e-commerce attui davvero il suo requisito fondamentale. Penso che qualcuno potrebbe essersene accorto se non fosse così.

    (Vorrei sottolineare che è technicaly possibile configurare https per usare una null cypher con alcuni client e server ma è estremamente difficile da fare questo design Non potevi farlo per caso)

    Supponendo che il tuo capo non lo volesse veramente dire, ti viene chiesto di convincerlo che il lavoro che hai svolto è valido. La maggior parte dei browser mostra gli algoritmi di crittografia utilizzato per accedere a un sito.

    Se il tuo capo vuole qualcosa di diverso / di più, allora non sappiamo cosa lo convincerà. Dovrai chiedergli un requisito più specifico e i dettagli di ciò che considererà una prova accettabile .

        
    risposta data 06.10.2016 - 01:25
    fonte
    2

    Contratto con un esperto di sicurezza IT professionale e esperto di crittografia con una buona reputazione. Consenti loro di catturare il traffico sulla tua rete e chiedere loro di cercare di scoprire quali messaggi vengono inviati al e dal sito.

    Se falliscono, avrai stabilito che il traffico è efficacemente crittografato. Ovviamente non è probabile che sia economico.

        
    risposta data 06.10.2016 - 13:56
    fonte
    1

    Se fai clic sull'icona a forma di lucchetto in Firefox e fai clic su Altre informazioni, vedrai qualcosa di simile a questo:

    Che indica chiaramente che la connessione è crittografata e quali protocolli sono stati utilizzati.

        
    risposta data 07.10.2016 - 13:57
    fonte
    -3

    Dì al tuo capo, "Amazon.com lo usa."

    Sono abbastanza grandi e abbastanza esperti nell'e-commerce e nel Web per sapere cosa funziona e cosa no. Se considerano HTTPS sufficiente per proteggere la tua carta di credito, allora dovrebbe essere una prova sufficiente.

    Quando ho fatto la programmazione web, molte lune fa, abbiamo insegnato l'abbreviazione WADI - Amazon Do It. Se qualcuno dicesse "hey, il nostro sito dovrebbe farlo!", La tua risposta sarebbe "Amazon lo fa? Se no, allora non dovremmo neanche".

        
    risposta data 06.10.2016 - 03:32
    fonte

    Leggi altre domande sui tag