prevenire l'attacco di riflessione

2

Stavo leggendo la soluzione all'attacco di riflessione e ho una certa confusione su come Alice avrebbe saputo che Bob è un bugiardo e non è davvero Bob.

1. Alice initiates a connection to Bob
2. Bob challenges Alice by sending a nonce. B -> A: N
3. Alice responds by sending back her identifier and the nonce encrypted using the shared key Kab. A -> B: {A, N}Kab
4. Bob decrypts the message, makes sure its from Alice and not a message he had sent in the past by finding A in it and not B and if the nonce is the same as the one he sent in his challenge then he accepts the message.

Il punto 4 è dove mi perdo. Quindi, Bob può usare la chiave per decifrare e recuperare "A". Innanzitutto cosa vuol dire nella notazione quando un nome di mittenti appare nel messaggio? Se abbiamo A- > B: {A} o solo A- > B: A cosa significa A dopo: mean?

Nella parte 4 sembra che stia dicendo che una volta che Bob decifra il messaggio, può "verificare come" verificare se il mittente fosse davvero quella persona. Non capisco il "qualche come". Nell'implementazione sarebbe A essere l'indirizzo IP di una macchina, e dato che un nodo sa sempre chi si connette ad esso, sarà in grado di decifrare a 8.8.8.8 e sapere che il mittente effettivo era 8.8.4.4?

    
posta Celeritas 06.10.2015 - 05:23
fonte

2 risposte

2

A - > B: {A, N} Kab significa che A invia a B un messaggio contenente A e N e crittografato con una chiave segreta condivisa da A e B.

So Bob can use the key to decrypt and retrieve "A".

No, Bob usa la chiave per decifrare la risposta e recuperare il nonce N e l'identificatore A. Da questo, Bob sa che la risposta

  • contiene il nonce N Bob inviato in precedenza;
  • contiene l'identificativo A di Alice e quindi è stato inviato da Alice, e non è un replay di un Bob nonce inviato nel passato;
  • è crittografato con la chiave segreta condivisa, quindi deve provenire da Alice, che è l'unica parte, oltre a Bob, a conoscere la chiave segreta.
risposta data 06.10.2015 - 11:52
fonte
0

Devo dire che la spiegazione di Wikipedia mi confonde molto.

The responder sends its identifier within the response so, if it receives a response that has its identifier in it, it can reject it.

Sulla base del quarto passo, presumo che intendessero:

The responder sends its identifier within the response so, if the challenger receives a response that has its identifier in it, it can reject it.

Che aggiunge una nozione di proprietà della risposta. Ora, questo è il modo in cui capisco il problema e la soluzione:

Dimentica la crittografia e gli indirizzi IP e pensa a un caso reale. Sei in classe e, anche se sei un bastardo pigro, ti senti fortunato e vuoi rispondere a una domanda complicata (sfida), solo per nerd. Supponiamo che la domanda sia sempre diversa (nonce). La tua insegnante ti fa la domanda ma (come previsto), tu non conosci la risposta ma vuoi comunque essere carina, quindi chiedi al ragazzo nerd dietro di te (risponditore), dicendo che la domanda era per lui. Supponiamo che nessuno se ne accorga (puoi urlare: guarda fuori Diffie-Hellman fuori dalla finestra !!).

Scegli la risposta e la dici ad alta voce per il tuo insegnante come il tuo. È corretto e tu salvi il giorno. Qual è uno dei problemi qui?:

Knowing the answer, you can easily announce it as yours since it is not bound to a person.

La prima linea di difesa sarebbe quella di avere le chiavi condivise tra i nerd e l'insegnante (i bambini stupidi parlano chiaro) e farli cifrare i loro messaggi. Solo i ragazzi intelligenti sarebbero in grado di crittografare una risposta (nonce). Tuttavia, sorge un altro problema:

You are clever enough to ask the question to the nerd kid and get the jibber jabber from him (encrypted answer) and replay it to your teacher (here replay does not mean replay attack, you are just saying what the kid said previously).

L'insegnante accetta la soluzione perché, anche se solo i bambini intelligenti possono rispondere e crittografare, non c'è modo che lei possa dire se la risposta è stata davvero tua. Ci dovrebbe essere un modo per lei di scoprire:

Introduzione, identificatori: ogni risposta è crittografata con il nome del bambino e il problema è risolto. Nel mondo reale, è possibile per una persona convalidarlo facilmente: l'insegnante riceve una risposta da te, ma l'identificativo viene dal bambino che porta a una mancata corrispondenza.

Nel mondo IT, un modo sarebbe, come hai detto, usare gli indirizzi IP. Se l'attaccante invia un messaggio con l'IP di un altro pc, non funzionerà. Certo, potrebbe falsificare la fonte per la corrispondenza, ma non è possibile stabilire una connessione. Questo potrebbe funzionare se l'applicazione fosse un semplice esecutore di comandi: l'attaccante invia il comando autodistruggerlo e l'altro pc distruggerebbe se stesso senza richiedere ACK o ulteriori scambi di messaggi.

Stai al sicuro;)

    
risposta data 06.10.2015 - 14:01
fonte

Leggi altre domande sui tag