Generazione salina per lo stream cypher

0

Scusa se questa è una domanda elementare ma non sono riuscito a trovare una risposta diretta.

Per la crittografia end-to-end dei messaggi che attendono temporaneamente su un server e in cui le dimensioni possono variare da pochi caratteri a una quantità molto maggiore di caratteri.

Sembra che OpenSSL AES-ctr sia una scelta ragionevole, ma non sono sicuro delle implicazioni del sale.

Se la passphrase è statica, il fatto che ci siano potenzialmente molti messaggi per lo stesso utente significa che il sale dovrebbe essere randomizzato per messaggio?

Se è così, OpenSSL è un modo abbastanza valido per generarlo?

    
posta jimb 20.12.2015 - 09:22
fonte

1 risposta

0

In generale: sì, dovrebbe. Il "sale" in ??? - CTR steram ciphers è in realtà l'IV / NONCE utilizzato per generare il flusso XOR. Come indicato dal nome (NONCE = Numero usato una volta), dovrebbe essere univoco e avere una quantità ragionevole di entropia.

In un codice di streaming non ci sono messaggi. Ciò significa che NONCE è teoricamente univoco per sessione / connessione. Ma se quella connessione rimane attiva per un periodo di tempo più lungo (diciamo diverse ore) e / o quantità maggiori di dati vengono trasferite con la stessa NONCE (ad esempio 100 MB e più) il codice stream può diventare sospetto per la criptoanalisi (a seconda di keysize, entropia degli algoritmi NONCE e Cipher in uso). La maggior parte dei protocolli SSL-like (incluso lo standard TLS) suggerisce di rigenerare il NONCE ogni X minuti o ogni Y byte trasferiti.

Ecco un esempio che considererei abbastanza sicuro per i dati sensibili:

  • AES-192 o AES-256 CTR
  • NONCE creato utilizzando un CSPRNG (vedi FIPS-140) con seme ad alta entropia (ad esempio / dev / random)
  • Lo stesso vale per i numeri casuali di Scambio chiavi
  • Ogni 2 ore o ogni 200 MB si scambiano una nuova chiave e una nuova NONCE.

In pratica, dovrai scegliere autonomamente questi parametri se non ti stai affidando a una connessione TLS standard.

openssl rand_bytes () è sufficiente per generare NONCE.

    
risposta data 20.12.2015 - 17:43
fonte

Leggi altre domande sui tag