php7 - ssl encrypt php



PHP: Mcrypt-quale modalità? (1)

mcrypt implementa effettivamente più modalità di quelle elencate , puoi usare i nomi delle stringhe per accedervi:

  • cbc - Modalità CBC
  • cfb - modalità CFB a 8 bit;
  • ncfb - modalità CFB a blocchi;
  • nofb - modalità OFB (non ofb );
  • ctr - modalità CTR .

Le modalità differiscono nei dettagli di implementazione, quindi la loro idoneità dipende dai dati e dall'ambiente.

Imbottitura :

  • La modalità CBC crittografa solo i blocchi completi, quindi mcrypt il testo in chiaro con zero byte a meno che non si implementi il ​​proprio riempimento.

  • Le modalità CFB , OFB e CTR crittografano i messaggi di qualsiasi lunghezza.

Vettore di inizializzazione :

  • Le modalità CBC e CFB richiedono un IV casuale (non utilizzare MCRYPT_RAND ).

  • La modalità OFB richiede semplicemente un IV univoco (ad es. Un contatore globale, forse la chiave primaria del database se le righe non vengono mai modificate o cancellate).

  • Il CTR richiede che ciascun blocco contatore sia univoco (non solo l'IV del messaggio, che è il primo blocco contatore, ma il resto, costituito dall'incremento del blocco contatore di 1 per ciascun blocco del messaggio).

Maggiori informazioni nelle raccomandazioni NIST .

Esistono differenze nelle prestazioni che non dovrebbero essere importanti in PHP, ad esempio se la crittografia o la decrittografia possono essere parallelizzate e quante iterazioni di cifratura vengono utilizzate per blocco (di solito una, ma 16 in modalità CFB a 8 bit).

Ci sono differenze nella malleabilità che dovrebbero essere irrilevanti perché applicherete un MAC .

E potrebbero esserci delle differenze nella loro sicurezza, ma per questo dovresti consultare un crittografo .

Ho testato le varie modalità disponibili nella funzione mcrypt di PHP. ECB è la modalità utilizzata nella maggior parte delle esercitazioni, ma non è raccomandata sia dalla pagina collegata che da alcuni utenti , quindi ritengo che CBC o CFB dovrebbero fare il trucco.

La documentazione di PHP non è troppo mcrypt nella sua comparazione delle diverse modalità disponibili per mcrypt e si riferisce invece al libro di "Applied Cryptography by Schneier" , che non sono troppo entusiasta di acquistare per il momento.

Quindi quale dei mcrypt - mcrypt voglio usare e perché?





mcrypt