美文网首页
移动应用的HTTPS

移动应用的HTTPS

作者: ZfRee | 来源:发表于2019-06-09 22:42 被阅读0次

    项目中一直在使用HTTPS做C/S结构的网络通信,本文当做HTTPS的一个简要总结.
    Apple更加注重网络传输安全了,从iOS9开始我们的App就已经默认开启ATS(App Transport Security),当然ATS是可以手动关闭的。关于:ATS

    一、HTTP的隐患

    • 使用http通信是明文的,相当于裸奔,内容随便被窃听.(被抓包工具或嗅探工具爬数据)
    • 数据传输时没有验证通信方的身份,身份可能是其他人伪装的.(不确认通信方.服务器被DoS攻击)
    • 无法证明交互报文的完整性,请求或者响应报文可能被篡改.(MITM中间人攻击)

    二、HTTPS (HTTP Secure)

    HTTPS是披着SSL外壳的HTTP
    HTTPS不是应用层的新协议,只是在HTTP的接口部分使用SSL(Secure Socket Layer)或TSL(Transport Layer Security)协议.因为TSL是以SSL为原型开发的协议,所以有时会统一称为SSL.

    HTTP + SSL = HTTPS.

    HTTPS是使用对称加密(AES)和非对称(RSA)加密两者并用的混合加密机制.
    1.先使用非对称加密的方式安全的交换稍后将要使用的对称秘钥.
    2.在确保安全交换了对称秘钥的前提下,使用对称秘钥加密进行网络通信.

    数字证书认证机构(CA,Certificate Authority)是客户端(Client)和服务器(Server)双方都信任的第三方机构.

    • 服务器和数字证书认证机构之间
      1.服务器把自己的公开秘钥登录给CA.
      2.CA用CA的私钥对我们服务器的公开秘钥进行数字签名并颁发公钥证书.
    • 客户端和服务器之间 (协商秘钥)
      1.客户端和服务器进行通信,客户端拿到公钥证书后,使用CA的公开秘钥,验证公钥证书的数字签名,来确认服务器公开秘钥的真实性.(CA的公开秘钥早已内置于我们的机器)
      2.一旦验证通过,客户端使用公钥证书内的公钥对报文进行加密后发送给服务器.
      3.服务器用私有秘钥对报文进行解密.

    对CA感兴趣的同学可以看看这个CA 机构是如何保护自己私钥的?

    三、HTTPS的慢

    • 通信变慢
      和HTTP相比,SSL通信要消耗网络资源,网络负载会变慢2-100倍.除去和传输层TCP的连接,发送HTTP的请求/响应外,还要进行SSL通信,所以整体的通讯量的增加不可避免.
    • 硬件资源的消耗
      SSL要进行服务器和客户端双方的加密及解密运算,所以会消耗CPU和内存等硬件资源.

    相关文章

      网友评论

          本文标题:移动应用的HTTPS

          本文链接:https://www.haomeiwen.com/subject/qqquzqtx.html