【读书笔记】iOS网络-保护网络传输

一,验证服务器通信。

二,HTTP认证。

手机银行应用有两种认证模式:标准验证与快速验证。标准验证只是提示用户输入用户名与密码,而快速验证则让用户注册设备,然后使用PIN进行验证,每次验证时无需用户名和密码。要想确保快速认证的安全性,如果用户选择在给定的认证请求中注册设备,那么服务器响应就需要包含一个额外的属性,即用户的证书。应用会存储这个证书,并在随后启动时检查,从而确定应该显示哪个认证视图。

1,HTTPBasic,HTTP Digest与NTLM认证。

2,客户端证书认证。

三, 使用哈希与加密确保消息的完整性。

既然应用已经验证在与正确的服务器通信并已被成功认证,那么用户就可以开始发出服务请求了。应用必须确保传输的数据在传输过程中是安全且被修改的。本节将会介绍能满足这个需求的技术,包括密码散列,消息认证码以及加密移除。

1,哈希,对于给定的数据块,密码哈希与接要会生成固定大小的位序列。这些哈希值可以简化数据块的比较与排序。哈希的常见使用场景包括追踪文件变更,下载校验和,数据混淆以及进行数据库存储,以及验证请求数据的完整性等。

2,消息认证码。消息认证码(MAC)是这样一种机制:可以检测到负载是否被修改并验证其真实性。实现方式是对进来的请求数据(或是预先设定好的请求数据的子集)生成哈希值,然后将哈希值与随负载一同发送的预先计算好的MAC进行对比。MAC类似于之前介绍的哈希函数,但却更加安全,这是因为它们总是与一个密钥配对。

1)对于开发者来说,将各种处理细节输出到日志中是种很常见的做法,不过绝不应改将生成的密钥打印到控制台,日志文件可以非常容易地从设备上获取,如果被攻击发现,那就是非常严重的安全问题了。

3,加密。

四,在设备上安全地存储认证信息。

既然能安全地与服务层进行通信,那就需要在设备上安全地存储信息。Apple提供了Keychain Services API来完成这项工作。

参考资料:《iOS网络高级编程-iPhone和iPad的企业应用开发》

 
 
上一篇:hihocode 1336 Matrix Sum 【二维树状数组】


下一篇:MySQL主从数据库同步延迟问题解决(转)