Utilizzi strumenti per generare gruppi DH sicuri per te, quindi non li generi in modo completamente casuale. Questi strumenti li sottopongono a severi test che assicurano che non hanno proprietà che li rendono insicuri. I test sono così precisi che la probabilità che uno dei parametri scelti sia insicuro è eccezionalmente bassa. Esistono due tipi di generatori, chiamati 2 e 5. Il valore predefinito è 2, ma puoi leggere le differenze qui . La generazione va più o meno così:
- Il generatore di gruppi DH crea un elenco di candidati casuali. Sono tutti completamente casuali, presi dal pool di entropia del sistema in modo da poter essere sicuri che non siano selezionati maliziosamente.
- Il generatore mette ogni candidato attraverso numerosi test e scarta la maggior parte, lasciando solo alcuni che hanno proprietà speciali che li rendono sicuri per l'uso.
Ciò che il NIST ha fatto è usare il pi per il primo passo, perché ovviamente non ti fideresti di loro se ti dicessero che usavano la loro casualità, perché altrimenti potevano teoricamente nasconderlo. Questo in modo sicuro trasforma il primo passo in uno deterministico.
Ora, non devi preoccuparti di creare i gruppi come se stessi, perché il generatore viene entropicamente dall'entropia del tuo sistema. Questo stadio non è deterministico, il che rende gli attacchi di pre-computazione che indeboliscono la DH non più un problema.
La ragione per cui dovresti usare i tuoi gruppi DH è perché ti rende più sicuro dagli attacchi che coinvolgono il precalcolo. La ragione per cui non dovresti usare i tuoi gruppi DH è perché la loro generazione è pesante dal punto di vista computazionale e se stai usando un computer molto vecchio, potrebbe volerci molto tempo per crearli. Ma fintanto che li generi utilizzando openssl dhparam
, non dovrai preoccuparti di gruppi DH non validi.