苹果已经肯定,在iOS9中通讯机制采用HTTPS了。html
第一篇:http://www.cnblogs.com/ziyi--caolu/p/4742577.html算法
上一篇详细介绍了为何要对HTTP进行加密,以及对HTTP进行加密的两种主要手段。也穿插了,在我之前开发过程当中,对HTTP内容进行加密的知识。这一篇,主要是讲对通讯过程的加密,也就是所说的HTTPS了。安全
简单的说,其实 HTTPS = HTTP + 加密 + 认证 + 完整性保护服务器
为了统一解决上一篇中提到的HTTP各类安全问题,须要在HTTP上加入加密处理和认证机制,把加了加密和认证机制的HTTP称为HTTPS。加密
使用HTTPS通讯时,再也不是http:// 而是https://htm
A、身披SSL(Secure Socket Layer 安全套接层)的HTTP,即HTTPSblog
HTTPS并不是是应用层的一种新协议,只是HTTP通讯接口部分用SSL协议(TLS协议)代替而已。一般,HTTP直接和TCP通讯。当使用SSL时,则是HTTP先和SSL通讯,再由SSL和TCP通讯。在采用SSL以后,HTTP就拥有了HTTPS的加密、证书、完整性保护功能,SSL是独立于HTTP协议的,也就是说,不光是HTTP协议,其余运行在应用层的协议,都是可使用SSL的。接口
B、相互交换密钥的公开密钥加密技术开发
SSL采用的是一种叫作公开密钥加密的加密处理方式(近代的加密方法中加密算法是公开的,而密钥是保密的,加密和解密都要用到密钥,没有密钥,也就没法解密,但若是密钥被攻击者获得,那么加密也就失去了意义)。方法
一、共享密钥加密的困境
加密与解密使用的是同一个密钥的加密方式称之为共享密钥加密(对称密钥加密)。以这种方式加密时,必须将密钥也发给对方,一样的,若是能够确保密钥能够安全的到达,那么数据也是能够安全到达的。
二、使用两把密钥的公开密钥加密
公开密钥加密的方式很好的解决了共享密钥加密的问题。公开密钥加密使用一对非对称的密钥。一把为私钥(私有密钥),一把为公钥(公开密钥),其中私有密钥不能让任何人得知,而公开密钥则能够随意公布。
加密方式:
发送密文的那一端,使用对方的公开密钥进行加密处理,对方接收到被加密的信息后,使用私钥对此密文进行解密。
利用这种方式,不须要发送用来解密的私钥。从而解决了共享密钥加密存在的问题。
三、使用混合加密机制的HTTPS
HTTPS采用共享密钥加密和公开密钥加密的混合加密机制。若是为了实现密钥的安全,那么能够考虑仅使用公开密钥加密技术。(公开密钥加密比共享密钥加密处理速度要慢)
因此,应当充分利用二者的优点,将多种方法组合起来进行通讯:在交换密钥环节,使用公开密钥加密技术(好比说,从客户端到服务器,那么在这样一个安全的通讯中,客户端能够将共享密钥加密中的密钥用公开密钥加密中的公钥进行加密,发送给服务器,而后服务器使用公开密钥加密技术的私钥进行解密,就拿到了共享密钥加密技术中的私钥),以后创建通讯报文交换的阶段则可以使用共享密钥加密技术。