SSL 双向认证握手过程
客户端的浏览器向服务器传送客户端 SSL 协议的版本号,加密算法的种类,产生的随机数,
以及其他服务器和客户端之间通讯所需要的各种信息。
struct {
ProtocolVersion client_version; // SSL 协议版本号
Random random; // 客户端产生的随机数
SessionID session_id; // 会话标志符
CipherSuite cipher_suites<0..216-1>; // 客户端支持的加密算法套件
CompressionMethod compression_methods<0..28 -1>; // 客户端支持的数据压缩算法
} ClientHello;
服务器向客户端传送 SSL 协议的版本号,加密算法的种类,随机数以及其他相关信息,同
时服务器还将向客户端传送自己的证书。
struct {
ProtocolVersion server_version; // SSL 协议版本号
Random random; // 服务器端产生的随机数
SessionID session_id; // 会话标志符
CipherSuite cipher_suite; // 服务器端所支持的加密算法套件
CompressionMethod compression_method; // 服务器端所支持的数据压缩算法
} ServerHello;
opaque ASN.1Cert<1..2 24 -1>;
struct {
ASN.1Cert certificate_list<1..224-1>; // X509.3 证书链,在此,只有服务器端的证书。
} Certificate;
客户利用服务器传过来的信息验证服务器的合法性,服务器的合法性包括:证书是否过期
发行服务器证书的 CA 是否可靠,发行者证书的公钥能否正确解开服务器证书的“发行者的
评论12
最新资源