https://www.cnblogs.com/piyeyong/archive/2010/07/02/1770208.html
SSL建立握手连接目的:
- 身份的验证,client与server确认对方是相连接的,而不是第三方冒充的,通过证书实现
- client和server交换session key,用于连接后数据的传输加密和hash校验
简单的SSL握手连接过程(仅server端交换证书给client):
- client发送ClientHello,指定版本,随机数(RN),所有支持的密码套件(CipherSuits)
- server回应ServerHello,指定版本,RN,选择CipherSuites,会话ID(session ID)
- server发送Certificate
- Server发送ServerHelloDone
- Client发送ClientKeyExchange,用于Server交换session key
- Client发送ChangeCipherSpec,指示Server从现在开始发送的消息都是加密过的。
- Client发送Finished,包含了前面所有握手消息的hash,可以让server验证握手过程是否被第三方篡改
- Server发送ChangeCipherSpec,指示了Client从现在开始发送的消息都是加密过的
- Server发送Finished,包含了前面所有的握手消息的hash,可以让clinet验证握手过程是否有被第三方篡改,并且证明择机是Certificate密钥的拥有者。