django服务器和iPhone应用程序之间的安全通信

And*_*res 9 security iphone django https lighttpd

我正在编写一个iPhone应用程序,当用户与服务器进行交互时,需要向服务器发送一小段信息(每个字符串,每个字符串不超过128个,并且这种情况不会经常发生).我希望这些信息保密,所以我想某种加密或安全连接是必要的.

我的问题是关于服务器端的事情.iPhone应用程序必须与之通信的服务器是用django编写的,并且正在lighttpd上运行.这样做最合适的方式(或标准方式是什么)是什么.我在想https,我知道在iPhone上我可以使用ASIHTTPRequest来做POST请求,但我不知道它在服务器端需要什么.我需要证书吗?数据是如何加密/保护的?有没有任何django模块可以帮助解决这个问题?我是否必须做一些配置lighttpd的事情?

像xml-rpc或json-rpc这样的东西会更简单吗?是否有可能确保此类通信?会出现什么级别?

任何帮助将非常感激.

Dou*_*ris 4

使用 xml-rpc 或 json-rpc 只是将数据封装成易于传输的形式的方法。您的 iPhone 应用程序可以使用其中一种格式转换 Objective C 数据,而您的 Django 服务器应用程序可以将数据转换回 Python 对象。

这些都与安全无关

创建 HTTPS (SSL) 连接会对客户端 (iPhone) 和服务器 (Django) 之间的所有通信进行加密。您将需要获得服务器端的证书。这向客户端表明服务器就是它所声称的服务器。您沿着这条路径的下一个研究方向应该是如何配置 lighttpd 来处理 SSL 流量。一旦 lighttpd 协商 SSL 通信,您的 Django 应用程序将像处理非安全流量一样运行。

这是您最好的选择。

如果出于某种原因您不想使用 SSL,那么您可以为通信两端找到强大的加密库。iPhone 应用程序可以加密数据,通过 HTTP 连接发送数据,而 Django 应用程序可以解密它。例如,pycrypto Python 库实现了强加密密码,例如AESBlowfish。您也许能够找到用 Objective C 编写的这些密码之一的实现。

您是否注意到这变得越来越复杂?

使用 SSL。这是基于 HTTP 的通信实现安全性的方式。