我需要建立从iPhone应用程序到客户服务器的HTTPS 2向SSL连接。但是,我看不到将客户端证书交付到应用程序的任何安全方法(这是一个电子银行应用程序,因此安全性确实是一个问题)。从我到目前为止发现,该应用程序能够访问证书的唯一方法就是向其提供与应用程序本身的捆绑,或者揭露可以从中获取的URL(带有SSL客户端证书的iPhone应用程序).

问题是,这两种方法都没有阻止某些第三方获得证书,如果被认为是一种风险,则消除了对2条SSL的需求(因为任何人都可以拥有客户端证书)。

整个安全协议应该看起来像这样:
-https 2-way SSL验证应用程序
-OTP(令牌)用户注册(此步骤生成的客户端键对)
- SOAP / WSS XML签名(由前面生成的键签名的请求)

关于如何建立第一层安全性(HTTPS)有什么想法吗?

有帮助吗?

解决方案

好的,回答我自己的问题...

事实证明,安全性没有固定的测量范围。只要制动系统的价格显着高于人们将获得的奖品,就可以满足安全要求。

在我的情况下,我们正在谈论电子银行系统,但每月限制略低(几千美元)。正如我在问题中提到的那样,HTTPS上方将有另一层安全性,该安全性将具有WSS XML签名。注册用户并接受他的公钥的过程也可以通过多个步骤完成。在第一步中,用户将他的电话号码与我的客户以某种方式检索到的COD一起发送。然后,通过确认代码将SMS发送给用户。用户将确认代码输入到OTP计算器中,该计算器将产生可以识别用户的OTP代码。然后,将公共密钥与OTP代码一起发送到服务器。从这里开始,每个请求都将由公共密钥的私人对应物签署,以前发送给服务器。

因此,整个过程的最大弱点是某人反向工程师的应用程序并检索用于SLL的客户端证书。唯一的问题是有人可能会观察用户的交易。但是,为了让某人进行交易,他需要用户的私钥,该密钥会生成,加密并存储在钥匙扣中。制动此安全水平的价格很高。

我们还将考虑如何在更高级别上保护用户的数据(例如,使用WSS加密),但是从一开始,我就可以使用当前的解决方案。

有意见吗?

问候

其他提示

https并没有真正的这种方式工作。简而言之,您可以连接到安全的服务器上,该服务器由众所周知的权威签署。

如果您为此使用苹果(iPhone)类,他们只会接受“好”证书。好的,我的意思是苹果认为可以接受的。如果您不使用它们(SDK中有其他选择),则无法连接(在您拥有“企业”开发人员许可证的情况下,我不能说100%确定性,因为我对此许可的看法还不够,可以肯定)

要继续,请使用您与正确签名的网站的HTTPS连接,然后使用内置的用户名/密码来建立某种登录名,或者根据iPhone的唯一ID(例如)(例如)(例如)使用该连接来挑战/响应。

请注意,这意味着您的应用程序必须在(每个连接/每个X连接/每个月/应用程序指定的间隔)上查询新证书,以使其保持最新状态。然后,您可以使用这些证书连接到更安全的服务器。

编辑

查看 帖子 - 可能有更多有关您要做什么的信息

/编辑

edit2

请注意,该请求是iPhone,而不是OSX -App Store批准是一个问题

/edit2

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top