IOS 网络知识整理

****.项目中网络层如何做安全处理?

1.判断API的调用请求是否来自于经过授权的APP。如若不是则拒绝请求访问

2.在数据请求的过程中进行URL加密处理:防止反编译,接口信息被静态分析。

3.数据传输加密:对客户端传输数据提供有效的加密方案,以防止网络接口的拦截。

如果可以尽量使用HTTPS,可以有效的避免接口数据在传输中被攻击。

最常见的两种网络协议

Http(HyperText Transfer Protocol)又称为超文本传输协议,是互联网上应用最为广泛的一种网络协议。Http是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求来获得数据。

HttpS可以理解为加密后的http协议,现在苹果正在大力限制开发者使用http协议,而强制要求使用https协议,不过因为https的使用需要每年支付一定的费用,所以目前大多数中国的互联网公司还以使用http为主。

HTTPS和HTTP的区别主要为以下四点:

一、https协议需要到ca申请证书,一般免费证书很少,需要交费。

二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

为什么选择http协议

简单快速,因为Http协议简单,所以HTTP服务器的程序规模小,因而通信速度很快

灵活

HTTP允许传输各种各样的数据

HTTP的基本通信过程(两大步骤)

请求:客户端向服务器索要数据

响应:服务器返回客户端相应的数据

Http最常用的请求方法

GET请求

从指定的服务器中获取数据

特点:

GET请求能够被缓存

GET请求会保存在浏览器的浏览记录中

以GET请求的URL能够保存为浏览器书签

GET请求有长度限制

GET请求不安全

POST请求

提交数据给指定的服务器处理

特点

POST请求不能被缓存下来

POST请求不会保存在浏览器浏览记录中

以POST请求的URL无法保存为浏览器书签

POST请求没有长度限制

相对于GET请求来说, POST请求更加安全

选择GET和POST的建议

如果需要大量数据,比如文件上传,只能用POST请求;

GET的安全性比POST要差些,如果包含机密\敏感信息,建议用POST

如果仅仅是索要数据,建议使用GET

如果是增加、修改、删除数据,建议使用POST

Http网络请求的结构

请求头

客户端发出的网络请求的“头”部分

请求头一般包含一些简单的配置信息,例如客户端信息,是GET请求还是POST请求等等。

请求体

客户端发出的网络请求的“身体”部分

具体要请求的内容的正文,以及一些提交给服务器的保密内容,例如用户名和密码

响应头

服务器返回的数据的配置信息,例如数据类型,响应结果,响应码等零碎的信息

在代码中一般表达为response这个变量

响应体

服务器返回的数据的具体内容(一般由服务器分段返回)

在代码中一般表达为data这个变量

HTTPS底层原理(SSL握手详解)

HTTP协议采用明文传输信息,存在信息窃听、信息篡改和信息劫持的风险,而协议TLS/SSL具有身份验证、信息加密和完整性校验的功能,可以避免此类问题发生。

HTTPS是在HTTP上建立SSL加密层,并对传输数据进行加密,是HTTP协议的安全版。HTTPS主要作用是:

1.对数据进行加密,并建立一个信息安全通道,来保证传输过程中的数据安全

2.对网站服务器进行真实身份认证

HTTPS协议的主要功能基本都依赖于TLS/SSL协议,TLS/SSL的功能实现主要依赖于三类基本算法:散列函数 Hash、对称加密和非对称加密,其利用非对称加密实现身份认证和密钥协商,对称加密算法采用协商的密钥对数据加密,基于散列函数验证信息的完整性。


结合三类算法的特点,TLS的基本工作方式是,客户端使用非对称加密与服务器进行通信,实现身份验证并协商对称加密使用的密钥, 然后对称加密算法采用协商密钥对信息以及信息摘要进行加密通信,不同的节点之间采用的对称密钥不同,从而可以保证信息只能通信双方获取。

SSL握手

首先明白网络各层的协议和作用,可以参考文章头部的链接。SSL握手是发生在TCP三次握手之后的

第一阶段:ClientHello

客户端发起请求,以明文传输请求信息,包含版本信息,加密套件候选列表,压缩算法候选列表,随机数random_C,扩展字段等信息。

第二阶段:ServerHello-ServerHelloDone

如上图可以看出这个阶段包含4个过程( 有的服务器是单条发送,有的是合并一起发送)。服务端返回协商的信息结果,包括选择使用的协议版本,选择的加密套件,选择的压缩算法、随机数random_S等,其中随机数用于后续的密钥协商。服务器也会配置并返回对应的证书链Certificate,用于身份验证与密钥交换。然后会发送ServerHelloDone信息用于通知服务器信息发送结束。

这里1和2的随机数现在客户端和服务端都有了,后续会用到

第三阶段:证书校验

客户端这边还需要对服务器返回的证书进行校验。只有证书验证通过后,才能进行后续的通信。(具体分析可参看后续的iOS证书验证过程)

第四阶段:ClientKeyExchange-Finished

服务器返回的证书验证合法后, 客户端计算产生随机数字Pre-master Key(预设主密钥),并用server证书中公钥加密,发送给服务器。同时客户端会根据已有的三个随机数根据相应的生成协商密钥(主密钥+两个随机数通过复杂算法生成真正的传输密钥)。客户端会通知服务器后续的通信都采用协商的通信密钥和加密算法进行加密通信。然后客户端发送Finished消息用于通知客户端信息发送结束。

第五阶段:服务器端生成协商密钥

服务器也会根据已有的三个随机数使用相应的算法生成协商密钥,会通知客户端后续的通信都采用协商的通信密钥和加密算法进行加密通信。然后发送Finished消息用于通知服务器信息发送结束。

第六阶段:握手结束

在握手阶段结束后,客户端和服务器数据传输开始使用协商密钥进行加密通信。

iOS应用安全之HTTP/HTTPS详解(AFNetworking配套策略) - Deft_MKJing的博客 - CSDN博客

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容

  • 致敬温家宝 你的一生只是为了圆一个梦 ——为了家家温饱而不辞劳碌, 才饮南僵的水, 又食北国的风, 一路的优,一脸...
    东风有力阅读 70评论 0 4
  • 第一章 阴河 我们村位于中国的极北之地,村里有一条大河,水深而黑,被夹在两座大山之间,终年照不进来阳光。 从古至今...
    烊吔阅读 814评论 0 1
  • 我相信在生活中,每个朋友都会有郁闷、心情烦躁、情绪不稳定的时候,好像看谁都不顺眼,做什么都觉得处处不顺心,胸口好像...
    嬴鹿卢阅读 3,115评论 6 4