首页 > 代码库 > SSL单向、双向认证的过程

SSL单向、双向认证的过程

在昨天的面试过程中谈单之前开发使用的EJBCA,对于认证这块我不是很了解内部的过程,晚上回来看了下  大致如下:

认证就是发消息的客户端和服务端之间相互认证确认的过程,又分为单向和双向认证:大概是下面这样的过程

一、单向认证:
        1、客户端向服务器发送消息,服务器接到消息后,用服务器端的密钥库中的私钥对数据进行加密,然后把加密后的数据和服务器端的公钥一起发送到客户端;

2、客户端用服务器发送来的公钥对数据进行解密,然后在客户端使用服务器发送过来的公钥对数据加密传给服务器端,服务器用私钥对数据进行解密,这就完成了客户端和服务器之间通信的安全问题,但是单向认证没有验证客户端的合法性。


二、双向认证:
1、客户端向服务器发送消息,首先把消息用客户端证书加密然后连同时把客户端证书一起发送到服务器端
2、服务器接到消息后用首先用客户端证书把消息解密,然后用服务器私钥把消息加密,把服务器证书和消息一起发送到客户端
3、客户端用发来的服务器证书对消息进行解密,然后用服务器的证书对消息加密,然后在用客户端的证书对消息在进行一次加密,连同加密消息和客户端证书一起发送到服务器端,
4、服务器端首先用客户端传来的证书对消息进行解密,确保消息是这个客户发来的,然后用服务器端的私钥对消息在进行解密这个便得到了明文数据。

SSL单向、双向认证的过程