In che modo SSL protegge da attacchi a livello di rete sull'integrità?

2

Vorrei sapere se esiste un modo per dimostrare come un utente malintenzionato può attaccare l'integrità di un sito Web a causa di una connessione non crittografata e in che modo SSL lo eviterà.

Per quanto riguarda la riservatezza, il seguente esempio spiega: Quando viene effettuata una connessione non crittografata a un sito Web, un utente malintenzionato utilizza uno sniffer di pacchetti come wireshark per annusare connessioni wireless non crittografate e ottenere password inviate sulla rete wifi non crittografata. Con SSL, i dati (e quindi le password) sarebbero crittografati.

Quale sarebbe un esempio simile, ma per i dati integrità ?

    
posta user30849 15.09.2013 - 14:44
fonte

3 risposte

2

Se l'integrità non è stata mantenuta, un utente malintenzionato potrebbe modificare le pagine Web in transito e, ad esempio, modificare il codice Javascript contenuto in queste pagine. La crittografia, di per sé, non impedisce le alterazioni relativamente precise, a condizione che l'autore dell'attacco abbia qualche idea su quali siano i dati crittografati. Nella maggior parte dei contesti Web, l'utente malintenzionato può anche registrarsi come utente normale, in modo da poter visualizzare la struttura delle pagine Web ottenute dagli utenti normali.

Quando la connessione utilizza RC4 , viene generato un flusso pseudocasuale dipendente dalla chiave e XORed, bit a bit, con i dati da crittografare. Pertanto, se l'utente malintenzionato "indovina" che un determinato byte è la crittografia di una "A" (codice ASCII 0x41) e vuole renderlo la crittografia di una "m" (codice ASCII 0x6D), allora deve solo eseguire XOR byte crittografato con 0x2C (che è lo XOR di 0x41 con 0x6D) per ottenere un altro byte crittografato che, dopo la decrittazione, produrrà un 'm' invece di un 'A'. Nient'altro potrebbe essere influenzato; quindi, con la crittografia RC4, le alterazioni chirurgiche sono facili.

Con un codice a blocchi in modalità CBC , le cose sono meno facili per l'attaccante ma può ancora commettere un male: se vuole modificare un byte specifico, può farlo, ma questo manipolerà il blocco precedente. In particolare, con un codice a blocchi, i dati sono una sequenza di blocchi di 8 o 16 byte (a seconda del codice: 8 byte per 3DES, 16 byte per AES). L'attaccante può modificare a piacimento un blocco, con precisione chirurgica, a condizione che conosca il valore iniziale di quel blocco e non si preoccupi di cambiare il blocco precedente in qualche ciarpame casuale incontrollabile.

Facciamo un esempio. Supponiamo che un sito Web abbia una pagina di accesso, con un modulo HTML, che assomigli a questa:

<form action="https://www.example.com/authenticate.php">
Login: <input type="text" name="login" /><br />
Password: <input type="password" name="password" /></br />
<input type="submit" name="Submit" />
</form>

So che è brutto; è solo un esempio. Quando l'utente fa clic sul pulsante "invia", il browser invia una richiesta POST alla pagina https://www.example.com/authenticate.php .

Supponiamo ora che questa pagina sia crittografata con CBC con 3DES (blocchi da 8 byte) e che sia "." di ".com" sembra essere all'inizio di un blocco. L'utente malintenzionato può quindi XOR gli 8 byte crittografati precedenti (i byte corrispondenti a .example ) con quanto segue:

 00 01 0E 09 01 07 0D 5B

Sul browser della vittima, il modulo verrà decrittografato come:

<form action="https://www########.bad.fx/henticate.php">
Login: <input type="text" name="login" /><br />
Password: <input type="password" name="password" /></br />
<input type="submit" name="Submit" />
</form>

Dove "########" saranno alcuni byte casuali. A condizione che nessuno di essi sia uno zero o un doppio preventivo (le probabilità che ciò accada siano bassi), il browser li considererà come parte dell'URL di destinazione. Il dominio bad.fx è controllato dall'attaccante (il TLD "fx" in realtà non esiste, sentiti libero di sostituirlo con il tuo preferito "TLD for Evil people"); il DNS dell'aggressore reindirizza allegramente tutte richieste per qualsiasi .bad.fx all'indirizzo IP del suo server; e l'attaccante ha acquistato (completamente legalmente) un certificato con caratteri jolly per "* .bad.fx". Quando l'utente inserisce la sua password, il suo browser si connette al sito Web controllato dagli aggressori, fa il protocollo SSL, è perfettamente contento del certificato dell'attaccante (supponendo che nessuno dei '#' sia un punto, di nuovo, è probabile), e invia la password.

Fortunatamente , SSL include una strong protezione dell'integrità, che impedisce tali attacchi. Con crittografie stream come RC4 e cifrari a blocchi in modalità CBC, la protezione dell'integrità utilizza HMAC ; le versioni più recenti di TLS possono anche utilizzare cifrari a blocchi nella modalità GCM , che integra una protezione dell'integrità altrettanto buona. Se l'attaccante ha tentato una delle acrobazie descritte sopra, il client (browser Web) rileverà l'alterazione e protesta e rifiuterà di utilizzare la pagina decrittografata. Vedi lo standard , sezione 6.2.3.

    
risposta data 15.09.2013 - 15:50
fonte
0

Ho scritto un post sul blog sull'integrità dei dati e sul perché caricare i moduli di accesso su HTTP e quindi utilizzare un POST su HTTPS è un rischio per la sicurezza.

Poiché il modulo di accesso viene caricato su HTTP, è vulnerabile a modifiche da parte di un uomo nel mezzo. Nell'esempio, mostro come posso modificare l'azione del modulo per rubare le credenziali di un utente e quindi reindirizzarle sul sito di destinazione. Poiché il modulo viene caricato su HTTP, non puoi essere sicuro dell'integrità del modulo.

Sentiti libero di dare un'occhiata al mio blog: link

    
risposta data 16.09.2013 - 09:13
fonte
0

Un semplice esempio di integrità dei dati sarebbe che se un utente malintenzionato è in grado di intercettare i tuoi dati (attacco MITM), lui / lei sarà in grado di cambiarli al volo e inviare dati modificati come da te. diciamo che sei connesso alla tua banca e invii una richiesta per trasferire un po 'di importo X su un account Y. L'utente malintenzionato cambierà il comando che hai inviato (attacco all'integrità) e effettuerà la transazione dell'ammontare X su un altro account e non sull'account Si intendeva.

    
risposta data 16.09.2013 - 10:17
fonte

Leggi altre domande sui tag