Volley实现Https的单向认证

作者: JasmineBen | 来源:发表于2018-05-10 19:00 被阅读0次
Https通信流程图

实现Https的单向认证,首先需要生成一个公钥和私钥,并且拿公钥到CA机构进行签名。生成签名证书。证书里面包含数字签名和公钥。然后客户端需要将公钥证书预埋在自己的APK中。在建立SSL连接的流程如下:

1、客户端发送ClientHello给服务器开始SSL通信,报文中包含了客户端支持的SSL版本、加密组件列表等

2、服务器可进行SSL通信时,会以ServerHello作为响应。报文包括了SSL版本、选择的某个加密组件。

3、服务器发送Certificate报文给客户端,报文中包含公开秘钥证书

4、客户端收到证书后验证其有效性(验证签名机构是否值得信任、服务器是否可信任),然后取出其公钥。

5、客户端用取出的公钥加密一个密码串发给服务器

6、服务器拿到加密的密码串后,使用私钥进行解密,获取明文密码串,之后双方的数据加密就使用这个密码串。

在Volley里面可以使用如下代码进行实现:

创建SSLSockectFactory

然后将这个SSLSockectFactory传给Volley即可。

 对称加密和非对称加密:

非对称:在客户端访问https服务器的时候,服务器会把公钥证书发送给客户端,客户端会使用自己的证书进行比对,如果确认证书一致,客户端会生成一个随机数,这个随机数是后序通信加密的秘钥,客户端用证书中的公钥加密这个随机数,然后发送给服务器,服务器使用证书的私钥进行解密,获取客户端的随机数,这个过程就是非对称加解密。

对称:在服务器获取到客户端发送的随机数后,后续的通信就使用这个随机数进行加密解密,由于这个随机数只有客户端和服务器知道,所以这时对称加密是安全高效的。

相关文章

  • Volley实现Https的单向认证

    实现Https的单向认证,首先需要生成一个公钥和私钥,并且拿公钥到CA机构进行签名。生成签名证书。证书里面包含数字...

  • Android实现HTTPS单向认证

    现在大部分APP内部都做有检查更新功能,如果用HTTP很容易被开发商劫持,所以我们来看一下Android 用HTT...

  • HTTPS单向认证

    http://www.youdzone.com/signature.htmlhttp://www.ruanyife...

  • 实现tomcat的https单向认证及双向认证

    前言 单向认证只需站点部署了ssl证书就行,任何用户都可以去访问(IP被限制除外等),只是服务端提供了身份认证 一...

  • Https 单向认证 双向认证

    一、Http HyperText Transfer Protocol,超文本传输协议,是互联网上使用最广泛的一种协...

  • HTTPS 单向认证、双向认证

    1.是谁配置单向还是双向?由服务器容器配置 单向认证流程:1.客户端say hello 服务端2.服务端将证书、公...

  • HTTPS认证

    目录:1、https认证原理简介2、单向认证、双向认证 1、https认证原理简介 (转自lanp74的博客) H...

  • HTTPS单向认证和双向认证

    一、HTTP HyperText Transfer Protocol,超文本传输协议,是互联网上使用最广泛的一种协...

  • Https单向认证和双向认证

    一、Http HyperText Transfer Protocol,超文本传输协议,是互联网上使用最广泛的一种协...

  • https单向认证和双向认证

    一、http 超文本传输协议,是互联网上使用最广泛的一种协议,所有WWW文件必须遵循的标准。HTTP协议传输的数据...

网友评论

    本文标题:Volley实现Https的单向认证

    本文链接:https://www.haomeiwen.com/subject/vpetdftx.html