La tua comprensione è corretta. A parità di tutte le altre cose, non importa; ma ci sono le rughe.
Un vantaggio nel generarli sul server in questione è che riduce al minimo la possibilità che la chiave venga compromessa durante il trasporto. Finché si utilizza un computer sicuro per generarli e un metodo sicuro (immune agli attacchi MITM) per spostarli sul server, si eviterà. Non dimenticare di cancellarli in modo sicuro sul sistema di generazione, a meno che tu non abbia intenzionalmente intenzione di conservare copie e che tu sia protetto di conseguenza.
Un vantaggio nel generare su una macchina separata: di solito, questo sarà il tuo desktop. Il pool di entropia su una macchina desktop è quasi sempre più profondo che su un server non presidiato, perché il desktop ha una grande fonte di casualità collegata tramite i cavi della tastiera e del mouse (cioè tu!). La carenza di entropia può far sì che la generazione della chiave impieghi molto tempo o causare invece l'uso /dev/urandom
dell'output PRNG, a seconda di quanto sia paranoico lo strumento di generazione e ciò può portare a chiavi più deboli; le macchine desktop tendono a non avere questo problema.
Modifica successiva : in seguito a una discussione altrove qui collegata, sono stati sollevati due punti. In primo luogo, si potrebbe andare per una via di mezzo, generando l' entropia sul desktop con, ad esempio dd if=/dev/random bs=1k count=10 of=/tmp/entropy.dat
, la copia che al server remoto, e l'alimentazione al vostro processo di generazione delle chiavi direttamente o approfondendo pool di entropia del server remoto. Non ho ancora trovato il modo di fare il primo, e fare il secondo richiede generalmente un privilegio di esercitare, che - se il canale tra te e il server remoto non è sicuro, che è piuttosto il punto dell'intera obiezione - è anche insicuro.
In secondo luogo, la stimabile mjg59 solleva il problema dei moduli di sicurezza hardware, ovvero dei dispositivi in cui vengono inserite o all'interno delle quali si creano, chiavi private e che quindi eseguono operazioni chiave senza mai rilasciare la chiave. Questo è un punto eccellente, ma al di fuori dell'ambito di questa domanda.
Ma il risultato più generale del thread - che dovresti avere un preciso modello di minaccia e scegliere le tue risposte in modo appropriato - è un buon risultato. Il mio modello di minaccia è che i miei canali di comunicazione sono sicuri ma i miei endpoint sono sotto attacco intelligente. Ciò significa che genererò localmente chiavi di sicurezza SSL entropicamente forti e le distribuirò. Se si scopre che il mio modello non è preciso e le mie comunicazioni risultano vulnerabili, saprò immediatamente di presumere che tutte le mie chiavi SSL siano compromesse. Se il modello di minaccia è diverso, è necessario personalizzare le proprie pratiche di conseguenza.