This is a brief explanation of my understanding of the SSH1 protocol 
authentication.  I'm referring to the authentication that is done between 
the client and the Server prior to typing in the user password, or .rhosts 
authentication occurs.

Can someone provide us with a similar explanation for the SSH2 protocol 
authentication between the Server and the client ?

Explanation of the Authentication process when SSH1 protocol is used.:
1.      First a user types:    ssh servername.ca
In Unix\Linux the client computer reads the   ~user/.ssh/config    and the 
 /etc/ssh/ssh_config   files.
(Each client has a 1024 bit key to identify itself, and each Server uses a 
RSA key which 768 bits that is stored in memory and is regenerated by the 
Server every hour it is used or when the sshd daemon starts.)
2.      First the Server uses the RSA Cipher algorighm and sends:
Server Public Key  +   Client Public Key which is stored on the server 
/etc/ssh_known_hosts
(Client Public key was already on the Server since it was placed there 
during the very first                 connection to the Server.)
3.      Now the client check the Server Public Key against the one in it's own 
list of  ssh_known_hosts, and if
it's a match then we know it's the same Server.  (This prevents Spoofing.)
4.      The client then generates a 256 bit random number and encrypts this 
random number and the client's public key using the Server public key. 
 This encrypted number is then send to the server which only the Server can 
decrypt using it's private key.
5.      Then the Server sends this decrypted number, but encrypts it with the 
clients public key.  When the client receives the same decrypted number 
back, then it knows it's talking to the Server.
6.      Now both sides use this random number as a session key to encrypt all 
the communication during the connection.
7.      Once the host is authenticated, the user authenticates himself by 
exchanging an encrypted User ID and Password.  The .rhosts authentication 
is disabled by default on the Server, since it is insecure.  The Server can 
be configured using command line options which will override the config 
file.
After a connection is established the rest of the session is encrypted 
using the default cypher IDEA, which is very secure.

Thanks,

ARTHUR

Reply via email to