Passa al contenuto principale

9.5. Pre-Shared Key Recommendations (Raccomandazioni per le chiavi pre-condivise)

9.5. Raccomandazioni per le chiavi pre-condivise

Nelle modalità PSK e AuthPSK, il PSK DEVE avere almeno 32 byte di entropia e DOVREBBE essere di lunghezza Nh byte o più. È consentito l'uso di un PSK più lungo di 32 byte ma più corto di Nh byte.

HPKE è specificato per utilizzare HKDF come funzione di derivazione delle chiavi. HKDF non è progettato per rallentare gli attacchi a dizionario (vedere [RFC5869]). Pertanto, il meccanismo PSK di HPKE non è adatto per l'uso con una password a bassa entropia come PSK: In scenari in cui l'avversario conosce il segreto condiviso KEM shared_secret e ha accesso a un oracolo che distingue tra un PSK buono e uno sbagliato, può eseguire attacchi di recupero del PSK. Questo oracolo può essere l'operazione di decifratura su un testo cifrato HPKE catturato o qualsiasi altro comportamento del destinatario che sia osservabilmente diverso quando si utilizza un PSK sbagliato. L'avversario conosce il segreto condiviso KEM shared_secret se conosce tutte le chiavi private KEM di un partecipante. Nella modalità PSK, questo è banalmente il caso se l'avversario agisce come mittente.

Per recuperare un PSK a entropia inferiore, un attaccante in questo scenario può banalmente eseguire un attacco a dizionario. Dato un insieme S di valori PSK possibili, l'attaccante genera un testo cifrato HPKE per ogni valore in S e sottomette i testi cifrati risultanti all'oracolo per apprendere quale PSK viene utilizzato dal destinatario. Inoltre, poiché HPKE utilizza schemi AEAD che non sono key-committing, un attaccante può montare un attacco di oracolo di partizionamento [LGR20] che può recuperare il PSK da un insieme di S valori PSK possibili, con |S| = m*k, in circa m + log k query all'oracolo utilizzando testi cifrati di lunghezza proporzionale a k, la lunghezza massima del messaggio in blocchi. (L'applicazione dell'algoritmo multi-collisione da [LGR20] richiede un piccolo adattamento dell'algoritmo in cui il nonce appropriato viene calcolato per ogni chiave candidata. Questa modifica aggiunge una chiamata a HKDF per chiave. Il numero di query dell'oracolo di partizionamento rimane invariato.) Di conseguenza, il PSK deve quindi essere scelto con entropia sufficiente in modo che m + log k sia proibitivo per gli attaccanti (ad es., 2^128). Le specifiche future possono definire nuovi algoritmi AEAD che siano key-committing.