技术支持中心>证书相关>SSL认证—单向认证与双向认证讲解

  • SSL认证—单向认证与双向认证讲解

    SSL认证过程

         目前SSL证书认证分为单向认证域双向认证,单向认证只要求站点部署了ssl证书,任何用户都可以去访问(IP被限制除外等),只是服务端提供了身份认证。而双向认证则是需要是服务端需要客户端提供身份认证,只能是服务端允许的客户能去访问,安全性相对于要高一些。

    一般Web应用都是采用单向认证的,因为用户数目广泛,且无需做在通讯层做用户身份验证,一般都在应用逻辑层来保证用户的合法登入。但如果是企业应用对接,情况就不一样,可能会要求对客户端做身份验证。这时就需要做双向认证。

    SSL单向认证

           客户端向服务端发送SSL协议版本号、加密算法种类、随机数等信息。服务端给客户端返回SSL协议版本号、加密算法种类、随机数等信息,同时也返回服务器端的证书,即公钥证书客户端使用服务端返回的信息验证服务器的合法性,包括:

    证书是否过期

    发型服务器证书的CA是否可靠

    返回的公钥是否能正确解开返回证书中的数字签名

    服务器证书上的域名是否和服务器的实际域名相匹配

    验证通过后,将继续进行通信,否则,终止通信

           客户端向服务端发送自己所能支持的对称加密方案,供服务器端进行选择服务器端在客户端提供的加密方案中选择加密程度最高的加密方式。服务器将选择好的加密方案通过明文方式返回给客户端客户端接收到服务端返回的加密方式后,使用该加密方式生成产生随机码,用作通信过程中对称加密的密钥,使用服务端返回的公钥进行加密,将加密后的随机码发送至服务器服务器收到客户端返回的加密信息后,使用自己的私钥进行解密,获取对称加密密钥。

    在接下来的会话中,服务器和客户端将会使用该密码进行对称加密,保证通信过程中信息的安全。

    SSL双向认证过程

    ① 浏览器发送一个连接请求给安全服务器。

    ② 服务器将自己的证书,以及同证书相关的信息发送给客户浏览器。

    ③ 客户浏览器检查服务器送过来的证书是否是由自己信赖的 CA 中心所签发的。如果是,就继续执行协议;如果不是,客户浏览器就给客户一个警告消息:警告客户这个证书不是可以信赖的,询问客户是否需要继续。

    ④ 接着客户浏览器比较证书里的消息,例如域名和公钥,与服务器刚刚发送的相关消息是否一致,如果是一致的,客户浏览器认可这个服务器的合法身份。

    ⑤ 服务器要求客户发送客户自己的证书。收到后,服务器验证客户的证书,如果没有通过验证,拒绝连接;如果通过验证,服务器获得用户的公钥。

    ⑥ 客户浏览器告诉服务器自己所能够支持的通讯对称密码方案。

    ⑦ 服务器从客户发送过来的密码方案中,选择一种加密程度最高的密码方案,用客户的公钥加过密后通知浏览器。

    ⑧ 浏览器针对这个密码方案,选择一个通话密钥,接着用服务器的公钥加过密后发送给服务器。

    ⑨ 服务器接收到浏览器送过来的消息,用自己的私钥解密,获得通话密钥。
  • 在线咨询