Inchiesta dati sensibili in richiesta [duplicato]

0

Abbiamo impostato la connessione https, tra client e server. Il problema è che i ragazzi della sicurezza, ci hanno mostrato che è possibile intercettare i dati utilizzando un certificato non valido rogue (l'utente deve accettarlo nel browser).

Il problema ora è che l'attaccante sarebbe in grado di vedere in un testo chiaro tutta la richiesta inviata al server e anche se per vedere qual è la struttura dei dati che stiamo inviando (è una vulnerabilità di sicurezza?

1) Ha senso cancellare le informazioni sensibili (sul lato client) e inviarlo hash al server?

2) Esiste un requisito che ci richiede di crittografare alcuni dati (il PIN della carta di credito) sul lato client e solo successivamente inviarlo al server. Ha senso? Dovremmo in qualche modo seguire gli stessi passi che facciamo per SSL, stabilire crittografia di fiducia, ecc., Solo per questo campo.

3) Vale la pena di offuscare il codice JS? Non sarebbe facilmente reversibile?

    
posta Remiwaw 29.07.2016 - 00:17
fonte

2 risposte

0

Il termine ufficiale per cui un utente malintenzionato intercetta la tua connessione utilizzando un certificato diverso viene chiamato attacco Man-In-The-Middle in questo scenario. Il modo per proteggerlo è bloccare . Una spiegazione troppo semplicistica consiste nel controllare un certificato rispetto a una copia codificata di quella originale. Per maggiori dettagli, vedi il link sopra. Il mio suggerimento è di seguire questo approccio finché controlli i server corrispondenti.

Tuttavia, per rispondere in modo specifico alle tue domande:

1) Tieni presente che l'hashing è pensato per essere a senso unico, quindi a seconda di cosa vuoi fare con i dati potrebbe diventare inutile dopo l'hashing.

2) è possibile aggiungere un ulteriore livello di sicurezza crittografando i dati end-to-end. Suggerisco crittografia a chiave pubblica in quanto non è necessario spedire una chiave condivisa ma solo una chiave pubblica con il client.

3) Domanda completamente non correlata, ma valida. JS può essere incommensurabile se si guarda il codice quasi completamente costruito tra parentesi e +, quindi è possibile in qualche modo difendersi dal reverse engineering. MA non c'è offuscamento perfetto, questa è una corsa agli armamenti

    
risposta data 29.07.2016 - 17:11
fonte
0

È una buona cosa che i "guardiani della sicurezza" ti mostrino alcuni possibili attacchi, è meno buono che ti hanno lasciato da solo a riflettere sulle contromisure.

Devi valutare dove i tuoi dati sono a rischio. Lo hai sul tuo computer client, sulla strada verso il server e infine sul server stesso (durante l'elaborazione e a riposo).

TLS ti proteggerà solo durante il trasferimento dei dati dal tuo client al server, a condizione che gli utenti stiano attenti alle avvertenze sui certificati (come mostrato dagli addetti alla sicurezza) o se utilizzi il blocco dei certificati (come suggerito da @ user3363866).

Yo sono rimasti con la parte client e server.

Se hai i requisiti per proteggere i dati sul client, dovresti utilizzare sistemi ben gestiti (in particolare l'applicazione di patch) e la crittografia completa del disco. Poiché menzioni i PIN delle carte di credito nel contesto di un cliente, ti invito ad approfondire i requisiti PCI-DSS perché probabilmente non ti incontrerai loro.

Quando si hash "qualcosa", si ottengono dati che con reverse engineering non possono restituire "qualcosa". Questo significa anche che se vuoi nascondere i dati sotto forma di, ad esempio, un numero di previdenza sociale degli Stati Uniti, sarà molto facile passare dall'hash all'SSN - provando tutti gli hash 10 ^ 9 (non lo farai nemmeno devi calcolarli, qualcuno lo ha già fatto per te ).

Finalmente sul server ti assicurerai che l'applicazione che gestisce i tuoi dati sia scritta correttamente e che i dati archiviati siano crittografati (o meno, dipende dalla tua valutazione del rischio).

In breve: sarebbe una buona idea tornare ai "ragazzi della sicurezza" e discutere di tutto questo.

Per quanto riguarda l'offuscamento di JS, non ha molto senso, se il browser può capirlo lo farà anche un hacker.

    
risposta data 30.07.2016 - 18:20
fonte