文档章节

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
朝阳
私信 提问
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的源码好好跟了一下,初次观看,确实非常容易钻进去,搞得云里雾里,在大神的指导下,才勉强把整个逻辑走通。...

进击的欧阳
2018/05/06
0
0
Eclipse:Unsupported major.minor version 51.0 error

最近在做项目的时候,由于我们提供的 sdk 里面有依赖 OkHttp 和 OkIO,好像从 v2.0 开始,OkHttp 要求 Jdk 1.7。导致 sdk 不能在 JDK 1.6 环境里面运行,为了兼容,我找到了这两个 repo: ht...

Jerikc
2015/08/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

 tomcat启动问题

tomcat启动问题: 解决方法:tomcat bin目录下 新建setenv.sh文件 文件上加入 export CATALINA_OPTS='-Djava.awt.headless=true' 该方法对tomcat8以上有用...

west_coast
27分钟前
4
0
《从0开始学架构》学习笔记索引

一、架构设计相关概念及复杂度来源 二、架构设计三原则 三、架构设计流程 ... 完整课程(微信扫码):

whoru
41分钟前
2
0
新的尝试!ComponentOne WinForm 和 .NET Core 3.0

在微软 Build 2018 开发者大会上,.NET 团队公布了 .NET Core 的下一个主要版本 .NET Core 3.0 的规划蓝图:.NET Core 3将开始支持Windows桌面应用程序,包括Windows Form、Windows Present...

葡萄城技术团队
43分钟前
1
0
Try .NET & Github Gist

Try .NET Try .NET 是微软最近推出的在线 C# 运行环境,不用安装 Visual Studio 等,就可以直接上手写 C# 代码. 可以先进来写两行代码看看 https://try.dot.net/ 对于初学者/代码分享而言是一个...

taadis
44分钟前
23
0
PyCharm入门教程——掌握PyCharm键盘快捷键

PyCharm最新版本下载 JetBrains PyCharm是一种Python IDE,其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。此外,该IDE提供了一些高级功能,以用于Django框架下的专业Web...

电池盒
49分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部