我开发了安全敏感的App。我不得不使用基于TEA的算法来加密/解密数据以与服务器通信并遵循服务器协议。我使用AsyncSocket进行了使用CFNetwork
API的传输级别通信。我注意到TEA
算法不是很安全,可以轻松入侵。此外,AsyncSocket
库并未在任何地方使用Apple的Security Framework。我打算重写传输层并重新定义客户端 - 服务器安全协议。我一直在研究应该使用哪种安全算法进行数据保护,这种算法没有或只有最小的性能影响且难以破解。此外,我正在浏览安全框架,但找不到任何使用此框架实现传输层的示例。有人可以帮我这个吗?我应该遵循什么来编码安全传输层? 我可以针对我的应用检查哪些安全措施?
答案 0 :(得分:1)
如@CodesInChaos所述,您应该使用TLS。您绝对不应该设计或实现新的传输协议。
CFNetwork支持TLS这一事实并不意味着您正在使用它。你需要积极地使用它。您的服务器需要您的客户端信任的证书,并且需要协商TLS会话。通常,如果您只使用HTTPS和标准NSURLConnection
例程,那么您将获得免费所需的大部分内容。但是,如果您在CFNetwork
中手动构建它,则需要确保正确配置它。我的建议是尽可能使用HTTPS。它很简单,可以解决各种各样的问题。
也就是说,仅仅因为传输安全并不意味着您的应用程序“足够安全”。特别是,您的服务器仍然需要能够处理通过安全传输进行通信的恶意客户端。您需要正确验证用户身份,并且需要优雅地处理恶意数据。当数据到达您的服务器时,您需要安全存储。您可能需要在客户端上加密数据。确保系统超越传输系统有很多方面。