iOS之HTTPS

“保护用户隐私是任何一个想要长期发展的互联网公司的安身之本…所以任何一家大型互联网公司都不可能因为短期利益而忽视甚至出卖用户隐私“ –罗成互联网全站HTTPS的时代已经到来

目前全站HTTPS方案的网站还比较少,但相信在不久以后会有大的改变,我喜欢这句话“风险分析和设计安全对策是应用开发者的责任“

HTTPS的目的

HTTP存在:
  • 劫取窃听风险
  • 篡改风险
  • 冒充风险(pretending): 第三方冒充他人身份参与通信
SSL/TLS 协议正是为了解决这三大风险而设计,希望达到:
  • 信息加密传输 –> 非对称加密及密钥交换
  • 校验机制 -> 签名
  • 配备证书,防止身份被冒充

HTTPS简介

HTTPS协议,则是基于HTTP协议,在此基础上实现了SSL协议。连接HTTPS时,客户端会验证服务器端的证书,判断是否可以信任该服务器。验证失败的原因有多种。比如服务器端使用的是自建证书,而不是从CA颁发的证书,证书颁发机构缺失或者服务器是恶意的想要窃取用户数据。HTTPS在RFC 2818中进行了定义。由HTTP协议和TLS协议组成。通过TLS可以确保数据在传输过程中不会被篡改,客户端会对服务器端的证书进行验证。除此之外TLS也提供(可选的)服务器端对客户端的验证(不过这一块不在本文的讨论范围内)。

HTTPS请求

图片 from 图解HTTPS
这里写图片描述

证书

参考我的另一篇文章HTTPS系列之CA数字证书

公钥加密算法

参考我的另一篇文章HTTPS系列之RSA算法

iOS实现HTTPS

from HTTPS Server Trust Evaluation-Apple
在运行过程中可能会遇到以下错误“Domain=NSURLErrorDomain Code=-1202“该错误码是NSURLErrorServerCertificateUntrusted,表示Trust Evaluation Failed,即服务器证书验证失败,你可能上网查找让建议你禁用证书绕过证书验证。但其实是不建议这样做的,因为HTTPS证书是确保用户信息安全的一大保证,正确的解决策略应是从服务器端的角度解决证书问题。

Server Trust Evaluation 服务器证书验证

连接一个使用TLS协议的服务器时,服务器会发送证书进行验证。验证分为两步:
1. basic X.509 certificate trust evaluation
2. TLS-specific additions

其中X.509格式的证书有5个关键属性:
1. a public key 公钥
2. a digital signature 数字签名
3. information about the certificate itself(for example,the valid date range and so on)证书信息,比如证书的有效时间,使用的签名算法等
4. information about the subject.this is the entity that is identified by the certificate,In TLS the su

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值