SSL协议应用 一个使用WEB客户机和服务器的范例
WEB客户机通过连接到一个支持SSL的服务器,启动一次SSL会话。支持SSL的典型WEB服务器在一个与标准HTTP请求(默认为端口80)不同的端口(默认为443)上接受SSL连接请求。当客户机连接到这个端口上时,它将启动一次建立SSL会话的握手。当握手完成之后,通信内容被加密,并且执行消息完整性检查,直到SSL会话过期。SSL创建一个会话,在此期间,握手必须只发生过一次。
步骤1:SSL客户机连接到SSL服务器,并要求服务器验证它自身的身份。
步骤2:服务器通过发送它的数字证书证明其身份。这个交换还可以包括整个证书链,直到某个根证书权威机构(CA)。通过检查有效日期并确认证书包含有可信任CA的数字签名,来验证证书。
步骤3:服务器发出一个请求,对客户端的证书进行验证。但是,因为缺乏公钥体系结构,当今的大多数服务器不进行客户端认证。
步骤4:协商用于加密的消息加密算法和用于完整性检查的哈希函数。通常由客户机提供它支持的所有算法列表,然后由服务器选择最强健的加密算法。
步骤5:客户机和服务器通过下列步骤生成会话密钥:a.客户机生成一个随机数,并使用服务器的公钥(从服务器的证书中获得)对它加密,发送到服务器上。b.服务器用更加随机的数据(从客户机的密钥可用时则使用客户机密钥;否则以明文方式发送数据)响应。c.使用哈希函数,从随机数据生成密钥。