Perché una chiave pubblica SSH si trova sul server e non con il client?


12

Non capisco bene la teoria alla base del mantenimento delle chiavi pubbliche sul server. Nell'analogia lockbox delle chiavi pubbliche / private, per sbloccare la casella di Alice, Alice tiene la chiave privata mentre la chiave pubblica è distribuita a Bob. Sembrerebbe che il server svolga il ruolo di lockbox, quindi perché detiene la chiave pubblica?

Risposte:


20

Tieni presente che il server ha una chiave privata e pubblica completamente separata dalla coppia di chiavi che generi come utente. La chiave privata per il server viene in genere archiviata con la configurazione del server e la chiave pubblica viene trasmessa dal server quando si tenta di connettersi. Il client confronta la chiave pubblica del server con il file known_hosts. Se usato correttamente, questo impedisce gli attacchi MITM.

Hai la chiave privata per il tuo account personale. Il server ha bisogno della tua chiave pubblica in modo che possa verificare che la tua chiave privata per l'account che stai tentando di utilizzare sia autorizzata.

Quindi usando il tuo esempio. Sia Bob che Alice hanno chiavi private e chiavi pubbliche. Le chiavi pubbliche che sono state condivise in precedenza o come parte della connessione vengono utilizzate per verificare che i dati crittografati dalle chiavi private siano legittimi. Se il client non ha la chiave pubblica o ha una chiave pubblica diversa, verrà visualizzato un avviso spaventoso. Se il server non ha la chiave pubblica del client, non ti sarà consentito l'accesso.


1
Aha! Questo ha molto più senso. Sapevo che esisteva un metodo per proteggersi dagli attacchi MITM, ma non sapevo che ci fosse un'altra coppia di chiavi :) Grazie per l'aiuto!
Connor Glosser,

5

Tu come utente sei tu a fornire le informazioni che sei tu quando esegui l'accesso. Quindi, per motivi di autorizzazione, hai bisogno della chiave privata perché il server chiederà a chiunque finga di essere te (tenta di accedere con il tuo nome) per dimostrarlo.

Il modo in cui funziona è che il server ti invia un po 'di testo, ti chiede di crittografarlo e decrittografarlo con la tua chiave pubblica. Solo la persona con la tua chiave privata può farlo.


1

Contiene la chiave pubblica per comodità. Altrimenti devi creare una PKI - qualcosa di simile alla CA SSL.

L'idea sarebbe quella di controllare l'impronta digitale della chiave pubblica quando il client ssh ti chiede di accettare la chiave del server remoto.


1

Direi che un'analogia migliore è che la chiave pubblica del server è il lockbox aperto con un latch che puoi chiudere (ma non aprire), solo il server può aprirlo. La vera domanda è se ti fidi della chiave pubblica (è davvero Alice's Box?), Ovunque tu la ottenga è pubblica per definizione, e questo è ciò che riguarda le PKI.


1

Una chiave pubblica è un numero molto grande, matematicamente derivato dalla tua chiave privata.

È derivato in modo tale che i due numeri siano collegati,

ma in modo che la chiave privata non possa essere scoperta da chiunque conosca solo la chiave pubblica. La chiave pubblica è ciò che invii ad altre parti, a cui desideri autenticarti o a cui desideri inviare messaggi crittografati. La chiave pubblica non è sensibile e non deve essere protetta. Può essere divulgato pubblicamente. babudilli98@gmail.com


1
Non credo ci sia nulla di nuovo in questa risposta rispetto alle altre risposte già fornite cinque anni fa.
Kasperd,
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.