Qual è la differenza tra id_rsa.pub e id_dsa.pub?


Risposte:


64

id_rsa.pube id_dsa.pubsono le chiavi pubbliche per id_rsae id_dsa.

Se lo stai chiedendo in relazione a SSH, id_rsaè una chiave RSA e può essere utilizzata con il protocollo SSH 1 o 2, mentre id_dsaè una chiave DSA e può essere utilizzata solo con il protocollo SSH 2. Entrambi sono molto sicuri, ma sembra che DSA lo sia lo standard in questi giorni (supponendo che tutti i client / server supportino SSH 2).

Aggiornamento: da quando è stato scritto, i DSA si sono dimostrati insicuri. Maggiori informazioni disponibili nella risposta di seguito.


Non sono d'accordo con questo. Oggi (e, anche se in misura minore, anche nel 2010, quando questo è stato pubblicato), 1024 bit (la dimensione della chiave più grande disponibile per DSA) è considerato troppo debole. Pertanto, RSA è l'opzione migliore. Per quanto riguarda SSH v1: dieci anni fa non lo consideravo sicuro.
Adam Katz

3
@AdamKatz DSA supporta il supporto di chiavi a 2048 bit e 3072 bit dal 2009 (secondo FIPS 186-3 ). La maggior parte dei client / server ssh supporta chiavi DSA più grandi, inclusi OpenSSH e PuTTY. La maggior parte dei generatori di chiavi supporta anche chiavi DSA più grandi, ma ssh-keygen di OpenSSH ancora non lo fa (anche se sia ssh che sshd lo fanno). Per Linux, puoi generare chiavi DSA più grandi utilizzando OpenSSL come descritto in questo post del blog .
Mike Pelley,

1
Interessante! Non lo sapevo, e questo sicuramente aiuta a livellare il campo tra i due (anche se la mancanza di supporto OpenSSH è piuttosto dannosa). Tuttavia, non direi che DSA è lo standard (ora o nel 2010), mentre RSA lo è assolutamente (e stiamo passando a sistemi di curve ellittiche come Ed25519).
Adam Katz

46

SSH utilizza coppie di chiavi pubbliche / private , così id_rsacome la tua chiave privata RSA (basata su numeri primi), che è più sicura della tua chiave privata id_dsa DSA (basata su esponenti). Tenere le chiavi private di sicurezza e condividere la vostra id_rsa.pube id_dsa.puble chiavi pubbliche in senso lato.

DSA è insicuro

DSA ha un parametro indovinabile se il generatore di numeri casuali del tuo computer è scadente, che rivelerà la tua chiave segreta. ECDSA (aggiornamento della curva ellittica di DSA) è altrettanto vulnerabile . Anche con buoni numeri casuali, DSA ha altri problemi di forzaPDF (questi si trovano anche in Diffie-Hellman ).

OpenSSH crea chiavi a 1024 bit non sicure ( soluzione alternativa ) e ora disabilita DSA per impostazione predefinita .

Utilizzare Ed25519 quando possibile

La crittografia a curva ellittica offre una maggiore complessità con chiavi di dimensioni inferiori. Ed25519 (basato sulla complessità delle curve ellittiche modellate dal piano ) è l'implementazione preferita a causa della sua presunta mancanza di ingerenza (documenti trapelati mostrano che la NSA statunitense indebolisce gli standard crittografici ).

Sfortunatamente, Ed25519 è ancora piuttosto nuovo e richiede OpenSSH 6.5 o GnuPG 2.1 (vedi l' elenco completo ).

Usa RSA con 4096 bit quando Ed25519 non è disponibile

Le dimensioni della chiave RSA di 4096 bit dovrebbero avere una complessità paragonabile a Ed25519.

Ed25519 è ancora preferito a RSA a causa della preoccupazione che RSA possa essere vulnerabile alle stesse preoccupazioni di forza di DSA, sebbene l'applicazione di tale exploit a RSA dovrebbe essere considerevolmente più difficile.


2
Solo una correzione: DSA supporta chiavi a 2048 bit e 3072 bit dal 2009 (secondo FIPS 186-3 ). Maggiori informazioni nel mio commento sopra.
Mike Pelley,

2
Infosec SE ha una bella risposta a questa domanda che va più in profondità. Cita un discorso di Black Hat del 2013 che suggerisce che DSA non è più sicuro, anche con chiavi di dimensioni maggiori.
Adam Katz

2
Ho aggiornato questa risposta per essere più completa sui problemi con i DSA. Ora è più dettagliata della (altrettanto valida) risposta di Infosec SE. Ci sono ancora più dettagli quando passi il mouse su alcuni dei link.
Adam Katz

1
Questo post mi ha insegnato così tanto, ha bisogno di molti più voti positivi.
liljoshu


1

rsa è considerato più sicuro.

Non più (maggio 2020, dieci anni dopo), con OpenSSH 8.2 , come riportato da Julio

Avviso di ritiro futuro

È ora possibile 1 eseguire attacchi con prefisso scelto contro l'algoritmo hash SHA-1 per meno di $ 50.000 USD.
Per questo motivo, disattiveremo l'algoritmo di firma della chiave pubblica "ssh-rsa" che dipende da SHA-1 per impostazione predefinita in una versione del prossimo futuro .

(Vedi " SHA-1 is a Shambles: First Chosen-Prefix Collision su SHA-1 e Application to the PGP Web of Trust " Leurent, G e Peyrin, T (2020))

Questo algoritmo è purtroppo ancora ampiamente utilizzato nonostante l'esistenza di alternative migliori, essendo l'unico algoritmo di firma della chiave pubblica rimanente specificato dalle RFC SSH originali.

Le alternative migliori includono:

  • Gli algoritmi di firma RFC8332 RSA SHA-2 rsa-sha2-256 / 512.
    Questi algoritmi hanno il vantaggio di utilizzare lo stesso tipo di chiave di " ssh-rsa", ma utilizzano algoritmi hash SHA-2 sicuri.
    Questi sono stati supportati da OpenSSH 7.2 e sono già usati per impostazione predefinita se il client e il server li supportano.

  • L'algoritmo di firma ssh-ed25519.
    È stato supportato in OpenSSH dalla versione 6.5.

  • Gli algoritmi ECDSA RFC5656: ecdsa-sha2-nistp256 / 384/521.
    Questi sono stati supportati da OpenSSH dalla versione 5.7.

Per verificare se un server utilizza l'algoritmo di chiave pubblica ssh-rsa debole per l'autenticazione dell'host, prova a connetterti ad esso dopo aver rimosso l' ssh-rsaalgoritmo dall'elenco consentito di ssh (1):

ssh -oHostKeyAlgorithms=-ssh-rsa user@host

Se la verifica della chiave host non riesce e non sono disponibili altri tipi di chiave host supportati, è necessario aggiornare il software del server su quell'host.

Una versione futura di OpenSSH consentirà UpdateHostKeysper impostazione predefinita al client di migrare automaticamente verso algoritmi migliori.
Gli utenti possono considerare l'abilitazione manuale di questa opzione .


-8

Uno utilizza DSA e uno utilizza RSA .


supponendo che tu stia usando solo i nomi predefiniti (che logicamente sembra), theatrus lo ha colpito proprio sulla testa.
David Larrabee

Non hai risposto alla parte reale della domanda: che è più sicura. Downvoting poiché questa era la risposta più alta. Non è necessario che lo sia.
akauppi
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.