Qual è la differenza tra le chiavi RSA, DSA ed ECDSA utilizzate da ssh?


13

Nella mia /etc/ssh/directory, posso vedere tre che ho tre diversi tipi di chiavi SSH:

-rw------- 1 root root    607 Oct  4 22:43 ssh_host_dsa_key
-rw-r--r-- 1 root root    623 Oct  4 22:43 ssh_host_dsa_key.pub
-rw------- 1 root root    241 Oct  4 22:43 ssh_host_ecdsa_key
-rw-r--r-- 1 root root    194 Oct  4 22:43 ssh_host_ecdsa_key.pub
-rw------- 1 root root   1602 Oct  4 22:43 ssh_host_rsa_key
-rw-r--r-- 1 root root    378 Oct  4 22:43 ssh_host_rsa_key.pub

Quali sono le differenze tra le chiavi RSA, DSA ed ECDSA di ssh e ho bisogno di tutte e tre?

Risposte:


9

Sono chiavi generate utilizzando diversi algoritmi di crittografia. È possibile scegliere di utilizzare diverse forme di crittografia quando si utilizza SSH, in qualche modo simile alla possibilità di scegliere diversi metodi di crittografia per WiFi (WPA2, WPA, WEP, ecc.).

SSH utilizza la crittografia a chiave pubblica, il che significa che quando ci si collega a un server SSH trasmette una chiave pubblica che è possibile utilizzare per crittografare ulteriore traffico da inviare a quel server. Se il server è configurato per utilizzare RSA, sarà una chiave generata dall'algoritmo RSA.

Il computer invia la propria chiave RSA pubblica dal file della chiave elencato nella domanda. Il server ha bisogno di questa chiave per riconnetterti e rispondere.

Tutte e tre le chiavi esistono sul tuo computer perché qualsiasi dato server SSH a cui ti stai connettendo potrebbe essere configurato per utilizzare uno di questi algoritmi. Il computer restituirà una chiave univoca corrispondente al tipo utilizzato dal server, la chiave è stata generata sul computer dallo stesso algoritmo.

Ecco alcune altre risorse:

/security/5096/rsa-vs-dsa-for-ssh-authentication-keys

http://en.wikipedia.org/wiki/Public-key_cryptography

http://en.wikipedia.org/wiki/RSA_(algorithm)

http://en.wikipedia.org/wiki/Digital_Signature_Algorithm

http://en.wikipedia.org/wiki/Elliptic_Curve_DSA


2
Hai brevemente parlato del motivo per cui tutti e tre sono presenti, lo scopo di una chiave ssh e cosa hanno in comune le chiavi: le chiavi usano algoritmi di crittografia. Di cosa non hai parlato qual è la differenza tra le chiavi RSA, DSA ed ECDSA.
Enkouyami,

6

Ne hai bisogno?
No, il tuo server SSH ne ha bisogno solo uno e il client deve supportare solo quel tipo di chiave per le connessioni SSH.


RSA, DSA, ECDSA, EdDSA e Ed25519 sono tutti utilizzati per la firma digitale, ma solo RSA può essere utilizzato anche per la crittografia.

RSA ( Rivest – Shamir – Adleman ) è uno dei primi cryptosystems a chiave pubblica ed è ampiamente utilizzato per la trasmissione sicura dei dati. La sicurezza si basa sulla fattorizzazione a numeri interi , quindi non è mai necessario un RNG sicuro (generatore di numeri casuali). Rispetto a DSA, RSA è più veloce per la convalida della firma ma più lento per la generazione.

DSA ( Digital Signature Algorithm ) è uno standard federale di elaborazione delle informazioni per le firme digitali. La sua sicurezza si basa su un discreto problema logaritmico . Rispetto a RSA, DSA è più veloce per la generazione della firma ma più lento per la convalida. La sicurezza può essere rotta se si utilizzano generatori di numeri errati .

L'ECDSA ( algoritmo di firma digitale a curva ellittica ) è un'implementazione della curva ellittica di DSA (algoritmo di firma digitale). La crittografia a curva ellittica è in grado di fornire lo stesso livello di sicurezza di RSA con una chiave più piccola. Condivide inoltre lo svantaggio di DSA di essere sensibile a RNG difettosi.

EdDSA ( algoritmo di firma digitale della curva di Edwards ) è uno schema di firma digitale che utilizza una variante della firma di Schnorr basata su curve Twisted Edwards . La creazione della firma è deterministica in EdDSA e la sua sicurezza si basa sull'intrattabilità di alcuni problemi di logaritmo discreto, quindi è più sicura di DSA ed ECDSA che richiedono casualità di alta qualità per ogni firma.

Ed25519 , è lo schema di firma EdDSA, ma utilizzando SHA-512/256 e Curve25519 ; è una curva ellittica sicura che offre una sicurezza migliore rispetto a DSA, ECDSA e EdDSA, oltre a prestazioni migliori (non umanamente evidente).


Altre note Le
chiavi RSA sono le più utilizzate e quindi sembrano essere le migliori supportate.

ECDSA, (introdotto in OpenSSH v5.7 ), è computazionalmente più leggero di DSA, ma la differenza non è evidente se non si dispone di una macchina con una potenza di elaborazione molto bassa.

A partire da OpenSSH 7.0 , SSH non supporta più le chiavi DSA (ssh-dss) per impostazione predefinita. Una chiave DSA utilizzata per funzionare ovunque, secondo lo standard SSH (RFC 4251 e successivi).

Ed25519 è stato introdotto in openSSH 6.5 .


1
Quella è EdDSA o ECDSA ?
Muru,

@muru È ECDSA. Aggiornerò la risposta con le informazioni su entrambi e risolverò il collegamento.
Enkouyami,

Quello che non sono riuscito a trovare è stato quando EdDSA è stato introdotto in OpenSSH.
Enkouyami,

Un computer quantistico può distruggerli tutti?
Kjeld Flarup,

@KjeldFlarup, Sì; in base alle risposte e ai commenti su security.stackexchange.com/questions/211587/… , un computer quantistico potrebbe romperli tutti.
Enkouyami,
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.