作家
登录

HTTPS 原理浅析及其在 Android 中的使用

作者: 来源: 2017-05-24 11:02:22 阅读 我要评论

本文起首分析HTTP协定在安然性上的不足,进而阐述HTTPS实现安然通信的关键技巧点和道理。然后经由过程抓包分析HTTPS协定的握手以及通信过程。最后总结一下本身在开辟过程中碰到的HTTPS相干的问题,并给出当前衔目中对HTTPS问题的体系解决筹划,以供总结和分享。

1.HTTP协定的不足

HTTP1.x在传输数据时,所有传输的内容都是明文,客户端和办事器端都无法验证对方的身份,存在的问题如下:

  • 通信应用明文(不加密),内容可能会被窃听;
  • 不验证通信方的身份,有可能遭受假装;
  • 无法证实报文的完全性,所以有可能已遭修改;

  其拭魅这些问题不仅在HTTP上出现,其他未加密的协定中也会存在这类问题。

  按TCP/IP协定族的工作机制,互联网上的任何角落都存在通信内容被窃听的风险。而HTTP协定本身不具备加密的功能,所传输的都是明文。即使已经经由过加密处理的通信,也会被窥视到通信内容,这点和未加密的通信是雷同的。只是说如不雅通信经由加密,就有可能让人无法破解报文信息的含义,但加密处理后的报文信息本身照样会被看到的。

(2) 不验证通信方的身份可能遭受假装

在HTTP协定通信时,因为不存在确认通信方的处理步调,是以任何人都可以提议请求。别的,办事器只要接收到请求,不管对方是谁都邑返回一个响应。是以不确认通信方,存在以下隐患:

  • 无法肯定请求发送至目标的Web办事器是否是按真实意图返回响应的那台办事器。有可能是已假装的 Web 办事器;
  • 无法肯定响应返回到的客户端是否是按真实意图接收响应的那个客户端。有可能是已假装的客户端;
  • 无法肯定正在通信的对方是否具备拜访权限。因为某些Web办事器上保存侧重要的信息,只想发给特定用户通信的权限;
  • 无法剖断请求是来自何方、出自谁手;
  • 即使是无意义的请求也会照单全收,无法阻拦海量请求下的DoS进击;

(3) 无法证实报文完全性,可能已遭修改

所谓完全性是指信息的精确度。若无法证实其完全性,平日也就意味着无法断定信息是否精确。HTTP协定无法证实通信的报文完全性,在请求或响应送出之后直到对方接收之前的┞封段时光内,即使请求或响应的内容遭到修改,也没有办法获悉。

比如,大年夜某个Web网站下载内容,是无法肯定客户端下载的文件和办事器上存放的文件是否前后一致的。文件内容在传输途中可能已经被修改为其他的内容。即使内容真的已改变,作为接收方的客户端也是发觉不到的。像如许,请求或响应在传输途中,遭进击者拦出场修改内容的进击称为中心人进击(Man-in-the-Middle attack,MITM)。

3.HTTPS协定道理

因为上述的几个问题,须要一种可以或许供给如下功能的HTTP安然技巧:

(1) 加密技巧

(1) 办事器认证(客户端知道它们是在与真正的而不是捏造的办事器通话);

(2) 客户端认证(办事器知道它们是在与真正的而不是捏造的客户端通话);

(3) 完全性(客户端和办事器的数据不会被修改);

(4) 加密(客户端和办事器的对话是私密的,无需担心被窃听);

(5) 效力(一个运行的足够快的算法,以便低端的客户端和办事器应用);

2.HTTPS的关键技巧

在如许的需求背景下,HTTPS技巧出生了。HTTPS协定的重要功能根本都依附于TLS/SSL协定,供给了身份验证、信息加密和完全性校验的功能,可以解决HTTP存在的安然问题。本节就重点商量一下HTTPS协定的几个关键技巧点。

加密算法一般分为两种:

对称加密:加密与解密的密钥雷同。以DES算法为代表;

非对称加密:加密与解密的密钥不雷同。以RSA算法为代表;

对称加密强度异常高,一般破解不了,但存在一个很大年夜的问题就是无法安然地生成和保管密钥,假如客户端和办事器之间每次会话都应用固定的、雷同的密钥加密和解密,肯定存在很大年夜的安然隐患。

  1. struct {  
  2. Signature handshake_messages_signature;  
  3. } CertificateVerify; 

在非对称密钥交换算法出现以前,对称加密一个很大年夜的问题就是不知道若何安然生成和保管密钥。非对称密钥交换过程重要就是为懂得决这个问题,任务钥的生成和应用加倍安然。但同时也是HTTPS机能和速度严重降低的“祸首祸首”。

HTTPS采取对称加密和非对称加密两者并用的混淆加密机制,在交换密钥环节应用非对称加密方法,之后的建立通信交换报文阶段则应用对称加密方法。

(2) 身份验证--证实公开密钥精确性的证书

非对称加密最大年夜的一个问题,就是无法证实公钥本身就是货真价实的公钥。比如,正预备和某台办事器建立公开密钥加密方法下的通信时,若何证实收到的公开密钥就是本来预想的那台办事器发行的公开密钥。或许在公开密钥传输途中,真正的公开密钥已经被进击者调换掉落了。

如不雅不验证公钥的靠得住性,至少会存在如下的两个问题:中心人进击和信息狡赖。

(2) 自定义HostnameVerifier,在握手时代,如不雅URL的主机名和办事器的标识主机名不匹配,则验证机制可以回调此接口的实现法度榜样来肯定是否应当许可此连接。可以经由过程自定义HostnameVerifier实现一个白名单的功能。

 1/8    1 2 3 4 5 6 下一页 尾页

  推荐阅读

  国务院力促政务信息系统整合 政务云爆发在即

涉及体系范围之广泛尚属初次:本次整合共享涵盖了大年夜中心到处所的各个部分,纳入整合共享范畴的┞服务信息体系包含由当局投资扶植、当局与社会企业结合扶植、当局向社会购大班事或须要当局资金运行保护的,用于支>>>详细阅读


本文标题:HTTPS 原理浅析及其在 Android 中的使用

地址:http://www.17bianji.com/lsqh/35390.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)