使用Alamofire在iOS上使用证书固定的网络安全
在当今的现代世界中,我们与移动设备的连接比以往任何时候都多。 我们通过应用程序保留和共享我们的数据。 但是,当我们在星巴克使用不安全的wifi进行工作时,如果这些敏感数据暴露了怎么办?
作为开发人员,我们应注意用户的隐私及其数据。 在本文中,我想谈谈SSL,以及我们如何通过SSL固定使我们的应用程序更安全。
什么是SSL?
SSL或安全套接字层是一种协议,该协议通过Netscape Communications在1999年设计的网络提供加密的通信。当您使用浏览器检查电子邮件或从Medium阅读文章时,如果在网站上看到“ https”前缀,您可能会假设您使用SSL / TLS进行通信。 在SSL连接中,客户端和服务器端都必须具有安全证书,并且它们将在发送数据之前对数据进行加密。 只有拥有正确安全证书的人员才能解密这些响应。
SSL如何运作?
- 客户端连接到服务器,并要求服务器标识自己
- 服务器发送其公钥和证书。
- 该证书已由客户端控制(无论是否经验丰富,已被吊销)。
- 如果此证书有效,则客户端将创建一个加密的对称会话密钥,并将其发送到服务器。
- 服务器使用其私钥解密此对称会话密钥,并使用会话密钥将客户端发送到确认(ACK)以启动加密的会话。
- 从现在开始,此会话发送的所有数据将被严格终止。
为什么要使用SSL固定?
SSL固定将帮助我们避免中间人攻击。 使用已固定到应用程序的证书,我们可以确保我们已连接到正确的服务器。 当服务器使用公钥发送其证书时,我们将了解我们不会被某人欺骗。
使用Alamofire进行SSL固定:
我通常使用Alamofire,我必须说我真的很高兴。 Github上最受好评的项目之一,可以提供完美的帮助。
- Alamofire与自签证书/ ServerTrustPolicy
- Alamofire分段上传后错误在Swift中
- 使用Alamofire 5和Codable在Swift 4中编写网络层:第2部分:使用Codable执行请求和解析
- 使用Alamofire将JSON数据的嵌套数组显示到tableview
- 将对象追加到variables
- 使用Alamofire和multipart / form-data
- Alamofire Image:在af_setImageWithURL()之后从AutoPurgingImageCache获取图像
- 如何比较JSON APIdate与FSCalendar和在tableview中显示事件?
- 如何从Alamofire错误得到底层错误?