您的位置:首页 > 其它

SSL V3.0协议(二)

2013-12-17 09:46 183 查看
(续上文)

5.6 握手协议

SSL握手协议是SSL记录层所定义的高层客户端之一,它用于协商会话的密钥属性。握手报文被提供给SSL记录层,在记录层中它们被封装为一个或者多个SSLPlaintext结构体,然后按照当前活动的会话状态进行处理和发送。
enum {
hello_request(0), client_hello(1), server_hello(2),
certificate(11), server_key_exchange (12),
certificate_request(13), server_hello_done(14),
certificate_verify(15), client_key_exchange(16),
finished(20), (255)
} HandshakeType;
struct {
HandshakeType msg_type; /* handshake type */
uint24 length; /* bytes in message */
select (HandshakeType) {
case hello_request: HelloRequest;
case client_hello: ClientHello;
case server_hello: ServerHello;
case certificate: Certificate;
case server_key_exchange: ServerKeyExchange;
case certificate_request: CertificateRequest;
case server_hello_done: ServerHelloDone;
case certificate_verify: CertificateVerify;
case client_key_exchange: ClientKeyExchange;
case finished: Finished;
} body;
} Handshake;

握手协议报文是按照它们被发送的顺序排列的,如果发送顺序不对会引发fatal错误。

5.6.1 Hello报文

hello阶段的报文被用于交换服务器端和客户端的安全能力,当新的会话开始时,CipherSpec的压缩、hash和加密算法都是NULL,当前的CipherSpec被用于重新协商。

5.6.1.1 Hello请求


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: