手机授权系统问题

时间:2011-06-10 06:20:20

标签: iphone security mobile

我很难确定/解决问题。

我正在创建一个有两方的系统:用户想要执行和授权操作,需要确认此操作的第二方已获得授权。

问题是,只有想要执行操作的用户才会拥有iphone(在很多情况下),因此能够从我们的服务器获得授权。第二方无法访问互联网连接,也无法直接确认第一个用户的请求已获得授权。

所以,我的问题是......我可以使用哪种系统/项目来确保第二方能够确认我们的服务器是否授权第一方的移动电话操作?

到目前为止,我提出的所有想法都可能被一个聪明的黑客破坏,这个黑客只是复制了第二方希望看到的确认请求。类似的事情......为每个第二方提供一个独特的代码,需要在第一方的移动应用程序中输入才能收到确认。但聪明的用户可能只是创建一个模仿真实应用程序会做的黑客应用程序。显然,这将是一个问题,因为如果第二方认为该动作在实际上不被授权(由于黑客行为),他们就会失去金钱/时间等等......

这是一个可能使我的问题更清晰的图表: Diagram

非常感谢任何想法。

***编辑:我想补充一点 - 在某些情况下,派对2无法访问移动设备/计算机,所以我需要找出一些可以廉价部署但也可以执行以下角色的硬件:验证

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题是正确的;您有一个可信服务器,可以为第1方授权操作。也就是说,服务器可以决定是否允许第1方执行操作。您可以将此称为授权服务。然后,第1方需要证明他有权为第2方执行此操作。第2方无法直接联系授权服务部门以验证此声明。

对此的自然解决方案是让授权服务器向第1方发出数字签名的授权声明。该声明可以是描述第1方具有何种授权的xml。必须使用只有授权服务器知道的私钥对声明进行数字签名。第1方从服务器收到此声明并将声明发送给第2方。第2方使用授权服务器的公钥验证数字签名。如果数字签名是正确的,则第2方知道索赔有效以及第1方从授权服务器获得的自动化类型。

为此,您必须在授权服务器上生成密钥对,并将公钥分发给Party 2的每个实例。这只需要执行一次。公钥不是秘密,但非常重要的是它是正确的密钥,并且没有恶意的人可以用假密钥替换第2方的公钥。

您需要在第2方使用某种能够验证签名声明的设备。如果没有这个,我认为这种情况不可能解决。