使用Alamofire在iOS上使用证书固定的网络安全

在当今的现代世界中,我们与移动设备的连接比以往任何时候都多。 我们通过应用程序保留和共享我们的数据。 但是,当我们在星巴克使用不安全的wifi进行工作时,如果这些敏感数据暴露了怎么办?

作为开发人员,我们应注意用户的隐私及其数据。 在本文中,我想谈谈SSL,以及我们如何通过SSL固定使我们的应用程序更安全。

什么是SSL?

SSL或安全套接字层是一种协议,该协议通过Netscape Communications在1999年设计的网络提供加密的通信。当您使用浏览器检查电子邮件或从Medium阅读文章时,如果在网站上看到“ https”前缀,您可能会假设您使用SSL / TLS进行通信。 在SSL连接中,客户端和服务器端都必须具有安全证书,并且它们将在发送数据之前对数据进行加密。 只有拥有正确安全证书的人员才能解密这些响应。

SSL如何运作?

  1. 客户端连接到服务器,并要求服务器标识自己
  2. 服务器发送其公钥和证书。
  3. 该证书已由客户端控制(无论是否经验丰富,已被吊销)。
  4. 如果此证书有效,则客户端将创建一个加密的对称会话密钥,并将其发送到服务器。
  5. 服务器使用其私钥解密此对称会话密钥,并使用会话密钥将客户端发送到确认(ACK)以启动加密的会话。
  6. 从现在开始,此会话发送的所有数据将被严格终止。

为什么要使用SSL固定?

SSL固定将帮助我们避免中间人攻击。 使用已固定到应用程序的证书,我们可以确保我们已连接到正确的服务器。 当服务器使用公钥发送其证书时,我们将了解我们不会被某人欺骗。

使用Alamofire进行SSL固定:

我通常使用Alamofire,我必须说我真的很高兴。 Github上最受好评的项目之一,可以提供完美的帮助。