Come fanno i certificati a fermare quest'uomo nell'attacco centrale?

1

Alice e Bob stanno cercando di impostare una conversazione sicura, ma a loro sconosciuto nel mezzo c'è Eve, che può intercettare e modificare tutti i pacchetti inviati tra loro.

La comunicazione è la seguente:

  1. Alice invia un saluto a Bob e include alcuni parametri (ad esempio, una chiave pubblica effimera Diffie-Hellman) A. Eve intercetta il messaggio e sostituisce A con E.

  2. Bob risponde con i parametri B e invia anche il suo certificato che contiene la sua chiave pubblica e il suo dominio. Eve lo intercetta. A questo punto Eve e Bob ricavano un EB segreto condiviso da E, B, e i loro dati privati associati (ad esempio, le chiavi private DH temporanee associate), che Alice non conosce.

  3. Eve inoltra il messaggio da (2) ad Alice, lasciando lo stesso il certificato (non essendo un CA, non può crearne uno) ma cambiando B a E. A questo punto Alice ed Eva ottengono un EA segreto condiviso da E, A e dati privati associati, che Bob non conosce.

  4. Alice verifica il certificato. Non è stato manomesso, quindi non viene generato alcun flag.

  5. Alice crittografa un messaggio utilizzando la chiave pubblica di Bob (dal certificato) e invia a Bob. Contiene l'EA segreta condivisa.

  6. Eve intercetta questo messaggio (che, ammettiamolo, non può decifrare) e lo scarta. Lei invece ne manda una nuova, cifrata con la sua chiave pubblica, contenente l'EB segreta condivisa. Bob guarda questo e corrisponde al segreto condiviso che si aspettava, e quindi considera la stretta di mano come un successo.

Da ora in poi Bob ed Eve hanno una conversazione usando il segreto condiviso EB, ed Eve e Alice hanno una conversazione usando l'EA segreta condivisa. Né Bob né Alice sanno che Eve sta ascoltando.

Presumibilmente, questo è inteso per essere impedito dal certificato, ma non capisco come.

    
posta Dallas 17.02.2015 - 13:30
fonte

2 risposte

8

Nessun sistema di sicurezza reale funziona come tu descrivi, proprio per questo motivo. Il certificato non viene utilizzato per crittografare il segreto condiviso per verificare che abbiano lo stesso segreto; sarebbe inutile (potreste anche avere un lato che genera il segreto e inviarlo crittografato con la chiave pubblica dell'altro lato). Quando il segreto condiviso viene generato utilizzando dati non presenti nel certificato, il ruolo del certificato è quello di firmare tali dati; una regola empirica è che non si dovrebbe mai accettare alcun input per il processo di generazione della chiave che non proviene da te e non è firmato da una chiave pubblica attendibile (con TLS le chiavi CA vengono precaricate in un browser, quindi sono attendibile, il certificato firmato da CA stabilisce quindi la fiducia nella chiave pubblica di Bob).

In questo caso, il modo effettivo con cui funziona la comunicazione è:

  1. Alice invia a Bob A. Eve la intercetta e la sostituisce con E.
  2. Bob restituisce un certificato, B e una firma per B che può essere verificata con il certificato. Il certificato è per una chiave di firma, non una chiave di crittografia (con RSA la differenza è solo quella per cui hai designato la chiave, ma ci sono algoritmi che sono solo di crittografia o di sola firma).
  3. Eve lo intercetta e sostituisce B con E. Tuttavia, non può firmare E con la chiave privata di Bob, quindi cambia il certificato e firma E con quello nuovo oppure lascia il certificato così com'è (ma non lo fa) t creare una nuova firma con esso, perché non può).
  4. Alice vede che il certificato non è firmato da una CA o che la verifica della firma fallisce (la firma non è una firma valida di E).
  5. Alice termina la comunicazione, perché sa che è stata manomessa.
risposta data 17.02.2015 - 19:56
fonte
4

Alice sends hello to Bob which contains a code A. Eve intercepts the message and instead puts a code E.

Quanto sopra non accadrà. prima che Alice invii qualcosa, Alice usa la chiave pubblica della CA (presente nel proprio archivio dei certificati) per verifica bob.com (Eve), la verifica non riesce e così Alice riceverà un avviso che dice che il certificato di Bob non è valido.

Se in qualche modo Alice ha aggiunto il certificato di Eve nell'archivio dei certificati attendibili di Alice, allora Alice è in grossi guai perché, quindi Alice non verificherà bob.com contro la chiave pubblica di una CA.

    
risposta data 17.02.2015 - 18:39
fonte

Leggi altre domande sui tag