文档章节

OkHttp完全解析(五)HTTPS

k
 kim366
发布于 2016/05/13 19:08
字数 643
阅读 14
收藏 0

OkHttp试图平衡连个相互竞争的问题:

   尽可能多的主机连接: 包括运行最新版boringssl的高级主机和运行老版OpenSSL的陈旧主机。

   连接的安全性: 通过证书进行远程web服务器验证和通过强加密保证数据交换的私密性。

当与一个HTTPS服务器进行协商时, OkHttp需要知道应当提供哪个版本的TLS和加密路线。一个想要使连接最大化的客户端可能包含陈旧的TLS版本,以及设计弱化的加密套件。一个想要使安全性更高的严格客户端则被限制使用最新版的TLS和最强的加密套件。

   # MODERN_TLS 是一种连接到现代HTTPS服务器的安全配置。

   # COMPATIBLE_TLS 是一种连接到安全但是不实时的HTTPS服务的安全配置。

   # CLEARTEXT 是一种使用在http://URL中的安全配置。

默认情况下,OkHttp会尝试一个MODERN_TLS连接,如果不可行,则转换到COMPATIBLE_TLS连接。 在特定连接类型中的TLS版本和加密套件会相互转换。例如,在OkHttp2.2中,因为POODLE攻击,OkHttp放弃了对SSL3.0的支持, 在OkHttp2.3中,放弃了对RC4的支持。所以,跟你桌面浏览器一样而言,保持最新版的OkHttp是确保安全的最佳方式。

也可以通过一个自定义的TLS版本集合和加密套件,创建自定义的连接设置。例如,这个配置被限制使用三个相对安全性较高的加密套件。缺点是只支持Android 5.0+和同样的web服务器。


6.1 证书锁定

默认请情况下,OkHttp信任主平台的证书授权。这种策略可以使连接最大化,但是受患于授权机构的攻击,比如 2011 DigiNotar attack。 同时也假设你的HTTPS服务器被同一个授权机构签约。


可以使用CertificatePinner限制哪个认证中心被信任。证书锁定可以增加安全性,但是限制了你的服务器团队更新他们TLS证书的能力。在没有服务器TLS 管理员允许的情况下,不要使用证书锁定。


6.2 自定义信任的证书

   完整的代码实例展示了如何通过你自己的设置替换主平台的证书授权。跟上面一样,在没有服务器TLS管理员守护的情况下,不要使用自定义证书。

 

 

本文转载自:http://blog.csdn.net/oyangyujun/article/details/50039301

共有 人打赏支持
k
粉丝 1
博文 129
码字总数 0
作品 0
朝阳
手写Android网络访问框架OkHttp(简易版)

开篇废话 趁着周末两天的时间,跟着大神的脚步,把我们经常使用的网络框架OkHttp的源码好好跟了一下,初次观看,确实非常容易钻进去,搞得云里雾里,在大神的指导下,才勉强把整个逻辑走通。...

进击的欧阳
05/06
0
0
Android中流行的第三方库资源收集

1、GSON GSON是将JSON解析成POJO的Java库。GSON也可以将POJO解析成JSON。 2、OkHttp OKHttp是Android版Http客户端。非常高效,支持SPDY、连接池、GZIP和 HTTP 缓存。默认情况下,OKHttp会自动...

jdroid
2014/05/02
0
0
OkHttp 文档翻译之 Calls

Calls Http client 的工作是接收请求和生成响应。这个在原理上很简答的问题,在实现时变得很棘手。 Requests 每个 Http request 包含一个 URL,一个方法(例如 :GET or Post),和 Headers ...

黑泥卡
08/21
0
0
OkHttp 3.11.0 发布,轻量的 Java 网络请求框架

OkHttp 3.11.0 已发布,OkHttp 是一个轻量的 Java 网络请求框架。 本次更新内容如下: OkHttp's new okhttp-tls submodule tames HTTPS and TLS. OkHttp now supports prior knowledge clear......

淡漠悠然
07/15
0
0
说说在 Android 中如何发送 HTTP 请求

客户端会向服务器发出一条 HTTP 请求,服务器收到请求后会返回一些数据给客户端,然后客户端再对这些数据进行解析与处理。 1 HttpURLConnection 可以使用 HttpURLConnection(官方推荐) 来发...

deniro
06/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

VS code编辑器安装 php7.2 NTS 版本 Xdebug

本文使用的是 phpstudy 一键安装包(windows32位) php 版本是 php7.2 NTS 1、在 phpstudy 面板中开启 phpdebug 扩展 // 其他选项菜单-> php 扩展与设置-> php 扩展 2、官方下载 Xdebug // ...

削个椰子皮_给个梨
19分钟前
1
0
Swagger中配置了@ApiModelProperty的allowableValues属性但不显示的问题

现在用Swagger来生成API文档的例子已经非常多了,今天碰到开发同事问了一个问题,帮着看了一下,主要还是配置方法的问题,所以记录一下。如果您也碰到了同样的问题,希望本文对您有用。 问题...

程序猿DD
50分钟前
2
0
sql 命令

show variables like '%general%'; show variables like '%log_output%'; show variables like '%quer%'; show global status like '%slow%';...

JavaSon712
57分钟前
2
0
Django修改默认数据库引擎

Django默认数据库引擎为sqlite3,除了sqlite3,还支持postgresql、mysql、oracle 配置如下:其中postgresql_psycopg2为postgresql的适配器。 'django.db.backends.postgresql' 'django.db.bac......

MichaelShu
今天
0
0
动画源码解析

目录介绍 1.Animation和Animator区别 2.Animation运行原理和源码分析 2.1 基本属性介绍 2.2 如何计算动画数据 2.3 什么是动画更新函数 2.4 动画数据如何存储 2.5 Animation的调用 3.Animator...

潇湘剑雨
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部