Version negotiation, Key negotiation, Authentication negotiation – H3C Technologies H3C S3100 Series Switches User Manual

Page 716

Advertising
background image

1-3

Version negotiation

z

The server opens port 22 to listen to connection requests from clients.

z

The client sends a TCP connection request to the server. After the TCP connection is established,

the server sends the first packet to the client, which includes a version identification string in the

format of “SSH-<primary protocol version number>.<secondary protocol version

number>-<software version number>”. The primary and secondary protocol version numbers

constitute the protocol version number, while the software version number is used for debugging.

z

The client receives and resolves the packet. If the protocol version of the server is lower but

supportable, the client uses the protocol version of the server; otherwise, the client uses its own

protocol version.

z

The client sends to the server a packet that contains the number of the protocol version it decides

to use. The server compares the version carried in the packet with that of its own to determine

whether it can cooperate with the client.

z

If the negotiation is successful, the server and the client go on to the key and algorithm negotiation.

If not, the server breaks the TCP connection.

All the packets above are transferred in plain text.

Key negotiation

z

The server and the client send algorithm negotiation packets to each other, which contain public

key algorithm lists supported by the server and the client, encrypted algorithm list, message

authentication code (MAC) algorithm list, and compressed algorithm list.

z

The server and the client calculate the final algorithm according to the algorithm lists supported.

z

The server and the client generate the session key and session ID based on the Diffie-Hellman (DH)

exchange algorithm and the host key pair.

z

Then, the server and the client get the same session key and use it for data encryption and

decryption to secure data communication.

Authentication negotiation

The negotiation steps are as follows:

z

The client sends an authentication request to the server. The authentication request contains

username, authentication type, and authentication-related information. For example, if the

authentication type is password, the content is the password.

z

The server starts to authenticate the user. If authentication fails, the server sends an authentication

failure message to the client, which contains the list of methods used for a new authentication

process.

z

The client selects an authentication type from the method list to perform authentication again.

z

The above process repeats until the authentication succeeds, or the connection is torn down when

the authentication times reach the upper limit.

SSH provides two authentication methods: password authentication and publickey authentication.

Advertising