Come viene autenticata la chiave pubblica durante una sessione ssh

1

Quando si usa SSH, la mia chiave privata viene memorizzata sul mio computer in modo sicuro e la mia chiave pubblica viene data all'altra parte con cui desidero comunicare.

Capisco che le due chiavi siano matematicamente correlate e quindi ciò che è crittografato con la chiave pubblica può essere decifrato (solo) con la mia chiave privata.

Quando ho avviato una sessione SSH ora, comunicando con un server Linux, ho ricevuto un messaggio " Autenticazione con chiave pubblica" imported-openssh-key ""

Che cosa sta succedendo esattamente qui per autenticarlo? La mia ipotesi è che il server scrive semplicemente un messaggio noto a me, lo crittografa con la mia chiave pubblica. Poi lo decrittiamo al mio fianco con la mia chiave privata e rispedisco il messaggio al server in cui confronta il messaggio.

È così che funziona o c'è qualcosa di più matematicamente complicato dietro di esso?

    
posta Engineer999 14.12.2018 - 10:58
fonte

1 risposta

1

Che dire questa descrizione ?

  1. The client begins by sending an ID for the key pair it would like to authenticate with to the server.
  2. The server check's the authorized_keys file of the account that the client is attempting to log into for the key ID.
  3. If a public key with matching ID is found in the file, the server generates a random number and uses the public key to encrypt the number.
  4. The server sends the client this encrypted message.
  5. If the client actually has the associated private key, it will be able to decrypt the message using that key, revealing the original number.
  6. The client combines the decrypted number with the shared session key that is being used to encrypt the communication, and calculates the MD5 hash of this value.
  7. The client then sends this MD5 hash back to the server as an answer to the encrypted number message.
  8. The server uses the same shared session key and the original number that it sent to the client to calculate the MD5 value on its own. It compares its own calculation to the one that the client sent back. If these two values match, it proves that the client was in possession of the private key and the client is authenticated.
    
risposta data 14.12.2018 - 18:33
fonte

Leggi altre domande sui tag