Consentitemi di fornire un'immagine di alto livello. Chiaramente, comprendi la necessità di comunicazioni sicure, che si tratti di SSH o HTTPS. Comunicazioni sicure significa che il canale è crittografato.
In generale, tutti gli algoritmi di crittografia rientrano in una delle due categorie:
- Crittografia simmetrica. Una chiave. La stessa chiave viene utilizzata per crittografare e decrittografare. Veloce. Per esempio. AES.
- Crittografia asimmetrica. Due chiavi O può essere usato per crittografare, ma solo l'altro può decifrare. Molto più lento degli algoritmi simmetrici. Per esempio. RSA.
La crittografia simmetrica è veloce e quindi adatta per le comunicazioni che coinvolgono molti dati tra due parti. Utilizza la stessa chiave per la crittografia e la decrittografia: questa chiave è analoga al tuo concetto di password molto lunga. Problema: come condividi la tua chiave / password in primo luogo? Si scopre che non è possibile utilizzare un canale sicuro che è costruito esclusivamente su un algoritmo di crittografia simmetrica senza trovare un modo per condividere prima la chiave / password.
È qui che entrano gli algoritmi asimmetrici, ma sono considerevolmente più lenti degli algoritmi simmetrici. Non è pratico trasmettere grandi quantità di dati, ma va bene se si trasmette o si scambia qualcosa di piccolo come una chiave / password di crittografia simmetrica. Fatto ciò, ora puoi utilizzare la crittografia simmetrica per le comunicazioni.
Una delle due chiavi per la crittografia asimmetrica è designata come chiave pubblica e l'altra come chiave privata. La chiave pubblica può essere distribuita a tutti, ma la chiave privata deve essere tenuta segreta.
You (has pub) Server (has prv + pub)
asym-encrypt(pub, sym-key/pwd) ----> asym-decrypt(prv, encrypted-data) => sym-key/pwd
pub = chiave pubblica, prv = chiave privata
In ogni caso questa spiegazione è una semplificazione di ciò che fa effettivamente SSH. Altre due cose da evidenziare:
-
Diffie Hellman è il tipico algoritmo asimmetrico di scambio di chiavi. Con Diffie Hellman non hai realmente bisogno di creare una chiave simmetrica. Entrambe le parti creano insieme la chiave simmetrica durante lo scambio di chiavi, che è una buona caratteristica di sicurezza. Vedi "Diffie-Hellman Key Exchange" in inglese semplice .
-
Nella mia spiegazione ho presupposto che hai trovato la chiave pubblica del server e che ritieni che sia quella corretta. Ma dovresti davvero stare attento a quali chiavi pubbliche ti fidi. Per fidarsi di una chiave pubblica, dovrebbe essere firmata digitalmente. Una chiave pubblica firmata è anche nota come certificato.
Si spera che questo chiarisca le domande sulla password lunga e sulle chiavi pubbliche e abbia abbastanza informazioni per poter approfondire in modo più significativo.