文档章节

OkHttp完全解析(五)HTTPS

k
 kim366
发布于 2016/05/13 19:08
字数 643
阅读 19
收藏 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
朝阳
私信 提问
OKHttp源码分析1 - 框架

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013510838/article/details/52424637 1 OKHttp介绍 网络库一直是Android APP开发中至关重要的库,关系到加载...

谢杨易
2016/09/03
0
0
Android技能树 — 网络小结之 OkHttp超超超超超超超详细解析

前言: 本文也做了一次标题党,哈哈,其实写的还是很水,各位原谅我O(∩_∩)O。 介于自己的网络方面知识烂的一塌糊涂,所以准备写相关网络的文章,但是考虑全部写在一篇太长了,所以分开写,...

青蛙要fly
2018/11/13
0
0
OkHttp 3.x 源码解析之Interceptor 拦截器

Tamic / 开发者技术前线 OkHttp拦截器原理解析 在进行下文前,先说明一点,本文面向的是对Okhttp有一定基础的读者,Okhttp基础使用请阅读我的其他OKhttp+Retrofit+RxJava基础用法的文章: OK...

2018/10/28
0
0
Android开发之OkHttp介绍

要论时下最火的网络请求框架,当属OkHttp了。自从Android4.4开始,google已经开始将源码中的HttpURLConnection替换为OkHttp,而在Android6.0之后的SDK中google更是移除了对于HttpClient的支持...

#Temptation
08/26
0
0
手写Android网络访问框架OkHttp(简易版)

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

进击的欧阳
2018/05/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

好程序员大数据教程Scala系列之样例类_Option_偏函数

  好程序员大数据教程Scala系列之样例类_Option_偏函数,在Scala中Option类型样例类用来表示可能存在或也可能不存在的值(Option的子类有Some和None)。Some包装了某个值,None表示没有值。 ...

好程序员官网
22分钟前
3
0
zk中ServerCnxnFactory连接管理工厂

作为ServerCnxn的工厂抽象类 属性 ZOOKEEPER_SERVER_CNXN_FACTORY zookeeper.serverCnxnFactory secure 在ServerCnxnFactory中SSL是否启用 sessionMap session管理配置中信息(sessionId,Ser......

writeademo
23分钟前
3
0
【代码审计01】几种常见的漏洞种类以及代码审计工具

前言 代码审计是在经过黑盒测试完毕,也就是检查应用的基本功能是否符合产品业务需求下进行的。需要有一定的编码基础以及对漏洞形成原理的基本认知,通过工具或者经验检测代码中可能出现的b...

北桥苏
25分钟前
4
0
重磅发布 | 全球首个云原生应用标准定义与架构模型 OAM 正式开源

作者: OAM 项目负责人 导读:2019 年 10 月 17 日,阿里巴巴合伙人、阿里云智能基础产品事业部总经理蒋江伟(花名:小邪)在 Qcon 上海重磅宣布,阿里云与微软联合推出开放应用模型 Open A...

阿里巴巴云原生
26分钟前
3
0
【进阶之定义函数】一个查询树结构数据的集合

1、基本定义 delimiter 自定义符号  -- 如果函数体只有一条语句, begin和end可以省略, 同时delimiter也可以省略create function 函数名(形参列表) returns 返回类型  -- 注意是retru...

卯金刀GG
33分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部