Volley实现Https的单向认证

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: Https通信流程图实现Https的单向认证,首先需要生成一个公钥和私钥,并且拿公钥到CA机构进行签名。生成签名证书。证书里面包含数字签名和公钥。
img_d2ca6d5231883394e4c586939bef1102.png
Https通信流程图

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

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

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

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

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

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

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

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

img_b7c5767c220c0d0b23b7f71e47f01d5e.png
创建SSLSockectFactory

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

 对称加密和非对称加密:

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

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

目录
相关文章
|
6月前
|
运维 安全 Linux
CA认证与HTTPs原理介绍
CA认证与HTTPs原理介绍
180 2
|
6月前
|
存储 缓存 安全
https跳过SSL认证时是不是就是不加密的,相当于http?
https跳过SSL认证时是不是就是不加密的,相当于http?
331 0
|
6月前
|
JSON 安全 网络安全
超详细的用户认证、权限、安全原理详解(认证、权限、JWT、RFC 7235、HTTPS、HSTS、PC端、服务端、移动端、第三方认证等等)
超详细的用户认证、权限、安全原理详解(认证、权限、JWT、RFC 7235、HTTPS、HSTS、PC端、服务端、移动端、第三方认证等等)
1025 0
|
11月前
|
算法 安全 网络安全
【厨房测试系列】第一章 手撸压力机(四)- http证书认证的实现
我们知道通常https接口是通过ssl/tsl进行加密的,有时候我们的请求https接口需要进行验证,需要在客户端发送请求时,带上密钥对通过摘要算法计算出的摘要及明文进行加密,而服务端则通过密钥进行解密。
|
6月前
|
算法 安全 Java
Java【算法 04】HTTP的认证方式之DIGEST认证详细流程说明及举例
Java【算法 04】HTTP的认证方式之DIGEST认证详细流程说明及举例
593 0
|
安全 网络安全 数据安全/隐私保护
https单向认证与双向认证
https的单向认证与双向认证流程介绍。
767 1
|
安全 网络安全 数据安全/隐私保护
https跳过SSL认证时是不是就是不加密的,相当于http?
https跳过SSL认证时是不是就是不加密的,相当于http?
286 0
|
Java 应用服务中间件 网络安全
企业级Nginx实战-配置Https单向认证、双向认证
企业级Nginx实战-配置Https单向认证、双向认证
516 0
企业级Nginx实战-配置Https单向认证、双向认证
|
Kubernetes 数据安全/隐私保护 容器
【kubernetes】https CA 认证工作流程
【kubernetes】https CA 认证工作流程
177 0
|
安全 网络安全 API
实战小结 | 使用objection快速绕过SSL Pinning(https强认证)
实战小结 | 使用objection快速绕过SSL Pinning(https强认证)
2881 0