Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在IPhone和服务器之间构建一个简单的授权方案?_Iphone_Security_Google App Engine_Architecture_Authorization - Fatal编程技术网

如何在IPhone和服务器之间构建一个简单的授权方案?

如何在IPhone和服务器之间构建一个简单的授权方案?,iphone,security,google-app-engine,architecture,authorization,Iphone,Security,Google App Engine,Architecture,Authorization,我正在开发一个iPhone应用程序,允许用户将照片上传到用Python编写的Google应用程序引擎后端 数据通过HTTP POST和GET在设备和服务器之间传输。最简单、最安全的方法是什么,以确保只有装有我的应用程序的iPhone才能获取数据?另外,我不希望用户输入凭据,它应该对她不可见 我可以在设备中嵌入一个密钥,并在服务器检查的每个请求中发送该密钥。但恶意用户可能会对应用程序进行反编译并获取密钥。有什么建议吗?只要您的设备或软件中存储有密钥,并且有人可以访问,它就会受到攻击。iOS的钥匙链

我正在开发一个iPhone应用程序,允许用户将照片上传到用Python编写的Google应用程序引擎后端

数据通过HTTP POST和GET在设备和服务器之间传输。最简单、最安全的方法是什么,以确保只有装有我的应用程序的iPhone才能获取数据?另外,我不希望用户输入凭据,它应该对她不可见


我可以在设备中嵌入一个密钥,并在服务器检查的每个请求中发送该密钥。但恶意用户可能会对应用程序进行反编译并获取密钥。有什么建议吗?

只要您的设备或软件中存储有密钥,并且有人可以访问,它就会受到攻击。iOS的钥匙链通常是存储您想要保护的东西的有用方式。然而,它仍然受到攻击。与所有需要的安全性一样,您需要提出一个适合您的应用程序的模型


还请注意,如果您打算将加密用于授权以外的用途,则应熟悉加密导出限制。

由于您要求用户不输入任何形式的密码,因此您的选项受到严重限制。正如您所注意到的,应用程序中的任何共享密钥都可以由某人通过二进制提取等方式提取出来。实际上,您无法阻止一个真正专注的破解者发现秘密,然后将其提交给服务器

有一些方法不是无懈可击的,但这可能会使大规模滥用您的服务变得更加困难。一个例子可能是每月(或两周,或其他任何时间)发布包含新共享秘密的应用程序更新。很明显,您的web服务在每个时间段都必须期望新的共享机密,以及接受现有机密

如果您的数据非常敏感,您可能希望停止使用HTTPS进行窃听;但正如Nick所说,如果除了身份验证之外,您还使用HTTPS进行任何操作,那么在提交应用程序时,您将面临额外的困难