Perché un risponditore di IKE dovrebbe cambiare "frequentemente" il segreto dei cookie?

4

IKEv2 ha il concetto di una modalità COOKIE , per tentare di prevenire l'esaurimento dello stato da alluvioni di iniziazione richieste da indirizzi IP inesistenti:

Two expected attacks against IKE are state and CPU exhaustion, where the target is flooded with session initiation requests from forged IP addresses. These attacks can be made less effective if a responder uses minimal CPU and commits no state to an SA until it knows the initiator can receive packets at the address from which it claims to be sending them.

Un iniziatore invia una richiesta a un risponditore; il risponditore costruisce un cookie utilizzando un segreto l'iniziatore non ha più dettagli dalla richiesta e lo invia di nuovo all'iniziatore. L'iniziatore quindi ripete la richiesta ma questa volta con il cookie allegato, dimostrando così che possono ricevere pacchetti inviati all'indirizzo IP di origine della richiesta.

La RFC raccomanda come si può costruire il cookie:

Cookie = <VersionIDofSecret> | Hash(Ni | IPi | SPIi | <secret>)

Dove Ni , IPi e SPIi sono valori non segreti che definiscono in modo univoco le richieste da un indirizzo IP.

La RFC prosegue dicendo che

The responder should change the value of <secret> frequently, especially if under attack.

Perché la RFC formula questa raccomandazione?

Strongswan implementa questo limitando il numero di utilizzi di un segreto a 10000 . Windows incorpora un valore temporale con una risoluzione di 150 secondi (vedere paragrafo 28) nel cookie.

Se il segreto è mai modificato, una volta che un utente malintenzionato ha visto una risposta per un determinato IP sorgente e parametri di richiesta, può quindi inviare spam al risponditore con richieste insieme a un cookie corretto. Quindi c'è sicuramente una buona ragione per cambiarlo ad un certo punto.

Ma (assumendo una buona funzione di hash) il cookie non fa trapelare informazioni utili sul segreto per l'attacker inondazione. Quindi, senza cambiare il segreto più spesso di, per esempio, ogni giorno al massimo, questo schema sembra fornire protezione contro l'obiettivo dichiarato (esaurimento dello stato da alluvioni di richieste da indirizzi IP al di fuori del controllo dell'attaccante). Un utente malintenzionato deve osservare una risposta dal risponditore a una richiesta da ciascun indirizzo IP da cui desidera inviare richieste prima che il risponditore mantenga uno stato per quella richiesta.

Quindi perché "frequentemente"?

(Una risposta legittima potrebbe essere "perché no?" - Mi sto solo chiedendo se c'è dell'altro.)

    
posta Michael 25.02.2013 - 22:29
fonte

1 risposta

6

Supponiamo che il "segreto" rimanga invariato per settimane. Come attaccante, potrei fare molte connessioni senza lo spoofing IP, distribuito su diverse settimane. Raccoglierei quindi milioni di "valori di cookie validi", ciascuno per un dato indirizzo IP di origine e parametri associati (i valori Ni , IPi e SPTi da RFC). Questa è la fase di preparazione.

Quindi, quando l'attacco dovrebbe effettivamente accadere, li ripeto tutti in massa , entro un intervallo di tempo di 5 minuti, con lo spoofing IP richiesto in modo che i valori del cookie corrispondano, costringendo il server ad allocare risorse per milioni di clienti. Ciò annegherà il server in modo abbastanza efficace.

Per costruzione, questo attacco è limitato al numero di cookie validi ("valido" nel senso di "sarà accettato dal server al momento dell'attacco") che il server potrebbe generare. Ogni cambio di segreto invalida i vecchi cookie. Cambiando spesso il segreto, la dimensione massima dell'insieme di valori di cookie attualmente validi viene mantenuta bassa, evitando l'attacco sopra descritto.

Ora, naturalmente, sostenendo che il segreto dovrebbe essere cambiato "più spesso" in caso di attacco è solo una danza sciamanica per propiziare gli spiriti di IT Sec. Allo stesso modo, quando vedo che una costruzione fatta in casa di "hash i dati con il segreto aggiunto" è descritta come "un buon modo", rabbrividisco e ringhio e versare lacrime di sangue. Non hanno sentito parlare di HMAC ? tu vuoi seguire i consigli crittografici di persone che non hanno mai sentito parlare di HMAC?

    
risposta data 25.02.2013 - 22:48
fonte

Leggi altre domande sui tag