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请求
相关文章推荐
- TreeView连接数据库详解(ASP.NET)
- boost 之 智能指针
- js中!!的作用
- 通过查看mysql 配置参数、状态来优化你的mysql
- JavaScript常用语句总结---来自W3School
- Flex 发送邮件、打开新窗口
- 【linux草鞋应用编程系列】_6_ 重定向和VT100编程
- cocoachina论坛源码推荐(12.16)
- javascript中parentNode,childNodes,children的应用详解
- MVC添加控制器时提示无法检索“MyContosoUniversity.Models.Student”的元数据
- 图像旋转算法
- 类iOS7风格边栏菜单 AndroidResideMenu
- 【转】2013年中国IT业10大公司
- serviceStack
- Android屏幕尺寸适配注意事项
- VS2010编译openssl-1.0.1e
- Ubuntu 下建立WiFi热点的方法
- c# 缓存
- Prof UIS相关
- Android Dribbble风格边栏菜单实现