Uno dei modi in cui le chiavi RSA vengono costantemente acquisite è quando vengono generate senza sufficiente entropia. Dan Kaminsky fa riferimento a uno studio che ha rilevato che 1 su 200 chiavi RSA sono state generate male e queste erano quelle che sono stati trovati , per non parlare dei milioni di altri che non sono stati trovati.
Quindi, è necessario un RNG buono e correttamente seminato durante la generazione di chiavi rapide RSA per GPG, SSL, SSH, ecc. ovunque si verifichi la generazione di chiavi RSA.
Phuctor è uno strumento online che cerca le coppie di chiavi RSA PGP e li tiene in considerazione. Sorprendentemente, hanno persino preso in considerazione una chiave RSA 4096bit nel set strong che è stato generato male con il primo fattore essendo il numero 231 (3 * 77). (Secondo Polynomial, hanno preso in considerazione solo una sottochiave corrotta, che non dovrebbe avere alcun impatto sul mondo reale.)
Quando sto generando keypair RSA pubblici / privati per SSL, SSH, GPG, ecc., c'è uno strumento offline che posso usare per determinare quanto sono difficili e quanto grandi sono i numeri primi? Posso stimare la difficoltà computazionale nel fattorizzare questo data la coppia di chiavi RSA, così posso determinare se sono state generate correttamente?
Ovviamente, utilizzo un computer desktop sicuro per la generazione di coppie di chiavi (e facoltativamente /dev/random
), poiché l'RNG di Linux è seminato da "attività mouse e tastiera, operazioni di I / O su disco e interrupt specifici" ( origine, PDF ) che le macchine virtuali spesso non hanno. Mentre questo dovrebbe essere sufficiente, mi piace capire i metodi sottostanti e vorrei testare le mie coppie di chiavi per garantire la sicurezza.