Quale lunghezza della chiave RSA devo utilizzare per i miei certificati SSL?


95

Sono in procinto di creare un CSR e mi chiedo quale sia probabilmente la lunghezza migliore per la mia chiave RSA.

Ovviamente 384 è probabilmente troppo debole e 16384 è probabilmente troppo lento.

Esiste un consenso sulla lunghezza della chiave da utilizzare, a seconda della durata del certificato?

Modifica: come la maggior parte delle persone, voglio che la mia chiave sia ragionevolmente forte. Non sono preoccupato che la NSA possa rompere la mia chiave nel 2019. Voglio solo sapere qual è la migliore pratica quando si pianifica di fare affari normali (ad esempio un sito di e-commerce)

Risposte:


102

A partire dal 2020, le chiavi RSA dovrebbero essere 2048 bit.

1024 bit

  • I certificati RSA a 1024 bit sono obsoleti e non accettati dai browser.
  • Firefox ha smesso di accettare certificati RSA a 1024 bit nel 2014.
  • Le autorità di certificazione hanno smesso di fornire certificati RSA a 1024 bit nel 2014 o prima. Vedi avviso GlobalSign o Comodo .
  • Le chiavi a 1024 bit sono state deprecate perché potevano essere violate con un piccolo datacenter (migliaia di CPU o centinaia di GPU, forse in pochi mesi). Può sembrare molto, ma era alla portata di qualsiasi grande organizzazione o governo.

2048 bit

  • I certificati RSA a 2048 bit sono attualmente la norma in uso accettata.
  • Baseline predefinita fornita da CA e utilizzata dal software.
  • Alla fine sarà anche rotto. Non so quando, ma potrebbero volerci decenni.
  • Raddoppiare le dimensioni richiede molti molti ordini di grandezza in più per la potenza di calcolo. Vedi la domanda quanto è più forte RSA 2048 rispetto a 1024 .

4096 bit

  • I certificati RSA a 4096 bit sono il passaggio successivo
  • Ampiamente disponibile e supportato. Tutte le principali CA possono fornire RSA a 2048 e 4096 bit, inclusa la crittografia .
  • Il costo computazionale non è lineare con la dimensione della chiave. 4096 non è due volte più lento del 2048, è forse 10 volte più lento da elaborare. Non aggiornare ciecamente i certificati a 4096 bit senza considerare l'impatto sulle prestazioni .
  • Il "web" rimane in gran parte sui certificati a 2048 bit perché non può sostenere il costo dell'hardware per 4096 bit. Considera grandi attori come Google, CloudFlare, NetFlix con immenso traffico e ingombro hardware.

3072 bit

  • 3072 bit non sono una cosa. Vai direttamente a 4096 bit.
  • È del tutto possibile eseguire la crittografia a 3072 bit, è solo che nessun software lo implementa, lo supporta e lo pubblicizza ufficialmente.
  • Storicamente, intorno al 2010-2015 c'è stato un tentativo di lanciare 3072 per casi d'uso in cui il costo di calcolo aggiuntivo di 4096 non è l'ideale. È svanito ma ci sono ancora alcuni vecchi articoli che diffondono i meriti del (più veloce) 3072.

Extra

  • L'RSA è stato descritto pubblicamente per la prima volta nel 1977 ed è ancora forte quasi 50 anni dopo. Devi solo aumentare il numero di bit per stare al passo con computer più veloci.
  • Esiste un altro metodo per la crittografia a chiave pubblica basata su curve ellittiche, vedere ECDSA (1992).
  • C'è un'enorme disconnessione tra la capacità di un utente e quella di un attaccante. Un server Web o un client mobile dispone di una CPU (a bassa potenza). Un utente malintenzionato può avere un intero datacenter, per riferimento un datacenter AWS di nuova costruzione ospita circa 60.000 server.
  • È incredibile che un singolo dispositivo mobile possa calcolare alcuni calcoli in pochi secondi ... che milioni di computer non potrebbero sognare di indovinare in una vita.

13
Le differenze ("256 bit funzionerà per sempre" da un lato e "1024 bit già schifo" dall'altro) sono dovute alle differenze tra algoritmi simmetrici e asimmetrici e ai tipi di chiavi utilizzati in ciascuno. Con qualsiasi dato "livello di sicurezza equivalente", vedrai numeri grezzi molto diversi per le lunghezze delle chiavi in ​​simmetrica rispetto a asimmetrica.
Ti Strga

1
A partire da settembre 2015, sembra che l'industria si sia mossa per non accettare meno di 2048 bit CSR. Vedi sotto le risposte e l' articolo di supporto di Comodo
angularsen

2
@anjdreas, sebbene sia vero che il 2048 è il minimo indispensabile, starò molto attento a citare i punti degli articoli di CA.
Pacerier

Il collegamento di RSA Labs è ora un 404, btw
jocull

1
nota: ha riscritto completamente la risposta dopo 11 anni, con raccomandazioni e riferimenti aggiornati. i commenti qui sopra stavano commentando le revisioni precedenti.
user5994461

12

Poiché molti clienti richiedono la conformità con gli standard crittografici NIST, utilizzo la guida nella pubblicazione speciale NIST 800-57, Raccomandazione per la gestione delle chiavi Parte 1, §5.6. La maggior parte delle nostre applicazioni si adattano bene a 112 "bit" di sicurezza, quindi ciò corrisponde a triple-DES (o un piccolo aumento fino a 128 bit AES) per cifrari simmetrici e una chiave a 2048 bit per RSA. Vedere la tabella 2 per un'equivalenza approssimativa.

Valido o no, essere in grado di rimandarli a una pubblicazione del NIST aiuta i clienti a sentirsi meglio riguardo alla sicurezza (se si preoccupano di chiedere).


L'articolo menzionato in questa risposta è stato rivisto in Raccomandazione per la gestione delle chiavi: Parte 1: Generale (Revisione 3) . La revisione attuale è luglio 2012
AaA

Vedo che la pagina del NIST è stata rimossa e sostituita con un messaggio: "A causa della mancanza di finanziamenti governativi, csrc.nist.gov e tutte le attività online associate non saranno disponibili fino a nuovo avviso."
wu-lee

C'è questa pagina che confronta alcuni consigli sulla lunghezza delle chiavi keylength.com/en/compare
wu-lee


7

Il prossimo agosto, Microsoft distribuirà una patch per Server 2003/2008, Win7 ecc .. che richiederà l'uso di una chiave RSA minima di 1024 bit. Quindi potresti anche iniziare a fare di questo il tuo standard "minimo indispensabile".


6

Per i certificati SSL utilizzati sui siti Web, è importante notare questo testo dal sito Web Thawte.com (aggiornato al 22/07/2014):

Gli standard di settore stabiliti dal Forum Autorità di certificazione / Browser (CA / B) richiedono che i certificati emessi dopo il 1 ° gennaio 2014 DEVONO avere una lunghezza della chiave di almeno 2048 bit.


Mouais, Facebook ha ancora 256 chiavi di lunghezza => b3.ms/XmWn0e1BMYOk
Thomas Decaux

Per chiarire che Facebook non utilizza RSA, utilizza ECDHE_ECDSA, quindi la lunghezza della chiave più piccola.
Michael

5

Avevo bisogno di creare diversi nuovi certificati SSL e non ero soddisfatto delle risposte precedenti perché sembravano vaghe o obsolete, quindi ho fatto un po 'di ricerca. In conclusione, la risposta selezionata è l'uso corretto "chiavi a 2048 bit ... più a lungo non ha senso" .

L'aumento della lunghezza in bit a 4096 aggiunge un carico potenzialmente significativo al tuo server (a seconda del carico esistente) offrendo fondamentalmente un aggiornamento di sicurezza insignificante

Se ti trovi in ​​una situazione in cui hai bisogno di una chiave più lunga di 2048 bit non hai bisogno di una lunghezza di bit maggiore, hai bisogno di un nuovo algoritmo


1

Penso che 4096 vada bene per RSA

Controlla questo collegamento

La fine della firma SHA-1 non è una novità, ma Google ha accelerato il processo di cromo. Nelle prossime settimane dovresti controllare i loro certificati SSL.

Questo può essere utile


1
Potresti postare anche dei link in lingua inglese, per favore? Il mio tedesco è piuttosto debole.
Wai Ha Lee

De juro, le chiavi RSA possono essere lunghe solo 1024, 2048 o 3072 bit (secondo PKCS # 1 2.2 e FIPS 186-4).
aprile

Flame ha mostrato che gli attaccanti attaccheranno l'hash invece che il modulo più grande. Se utilizzi SHA-1, puoi anche utilizzare un modulo a 1024 bit poiché l'hash e il modulo forniscono una sicurezza equivalente. Il modulo a 1024 bit renderà le operazioni più veloci rispetto al più grande modulo a 4096.
jww

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.