回答
如果只有你的客户和你的服务器,你可以(也应该)使用SSL无需购买任何东西。您控制服务器和客户端,因此每个应只信任一个属于另一个的证书,并且您不需要CA用于此目的。
这是高层次的方法。创建一个自签名服务器SSL证书并部署到您的Web服务器上。为此,您可以使用Android SDK附带的keytool。然后创建一个自签名客户端,并将其作为资源部署在您的应用程序中的一个自定义密钥库中(keytool也会生成这个)。将服务器配置为需要客户端SSL身份验证,并仅接受您生成的客户端证书。配置客户端使用该客户端证书来标识自身,并且只接受您在服务器上安装的那一部分服务器端证书。
这是一个比这里保证的更长的答案。我建议分步实施,因为网上有资源介绍如何处理Android中的自签名SSL证书,包括服务器和客户端。在O'Reilly出版的书中有一个完整的步骤,Application Security for the Android Platform。
你通常存储在sometype。这时候的密钥库证书/私钥(密钥库,如果你使用的是Android)和密钥库将被加密。该加密基于密码,因此您需要(1)将密码存储在客户端的某处,或(2)在启动客户端应用程序时询问用户密码。你需要做什么取决于你的用例。如果(2)可以接受,那么你已经保护了你的凭证免受逆向工程,因为它将被加密并且密码将不会被存储在任何地方(但用户需要每次都键入)。如果你做了(1),那么有人能够逆向工程你的客户端,获取密码,获得密钥库,解密私钥和证书,并创建另一个能够连接到服务器的客户端。
没有什么可以做,以防止这种情况;你可以更难地对你的代码进行逆向工程(通过混淆等),但是你不能让它变得不可能。您需要确定您尝试采用这些方法缓解的风险是多少,以及需要做多少工作才能缓解风险。
我想这将与正确的身份验证工作。我只是stumpled后的第一篇文章是这样的一个: Securing communication from android to a web service 希望它可以帮助=)
不幸的是,我们需要这样做,因为我们要实现的功能不应该使用认证。 – pyeleven 2012-02-24 14:57:11
如果你是绝对肯定这个Web服务将只需要通过授权的应用程序/设备访问,与客户端的SSL证书去并将服务器上的访问限制为只有拥有授权证书的客户端。这具有在任何时候都强制使用SSL的特性,所以您不喜欢通过公开频道授权的秘密。下面是Apache的一个快速指导,但你可以使用nginx的太:
此证书是否可以被其他应用程序复制?该应用程序是否可以利用该服务? – pyeleven 2012-02-24 14:56:28
- 1. 确保WCF服务安全,只能通过Silverlight应用程序调用
- 2. 如何确保服务器 - 服务器应用程序中的通信安全?
- 3. 从Silverlight应用程序安全调用SharePoint Web服务吗?
- 4. 确保Windows服务应用程序的安全
- 5. 访问Web服务时的Android应用程序安全性
- 6. 确保Web服务的安全.Net
- 7. 确保Web服务的安全
- 8. 安全WCF服务,以便只有我的“客户”可以调用它
- 9. 仅适用于Silverlight应用程序的Web服务安全性?
- 10. Web应用程序安全
- 11. Web应用程序安全
- 12. 通过代理Web服务重复Web服务调用 - 性能
- 13. 应用程序调用Web服务
- 14. 如何安全的Web服务只从Android应用程序来服务器,而无需登录
- 15. 确保用于移动设备的Web服务的安全
- 16. 通过Web应用程序安排SSIS
- 17. 如何将桌面应用程序安全到Web服务调用
- 18. Win-app调用web服务与调用相同服务的web应用程序
- 19. 用于与Android应用程序通信的Web服务平台
- 20. 确保通过指定程序集调用程序集
- 21. 使用KSOAP从android应用程序调用asmx Web服务
- 22. Android应用程序web服务黑客
- 23. 通过Active Directory为Web应用程序提供安全性
- 24. 从phonegap应用程序到web服务的Ajax调用期间的安全数据没有cookie安全
- 25. 从Android应用程序调用Web服务返回空对象
- 26. Web应用程序:只与服务器授权通信
- 27. 如何创建一个可以通过Web应用程序调用的基于Scala的服务守护程序?
- 28. 的Java Web应用服务安全和不安全的资源
- 29. 通过Rails应用程序使用Rails Web服务
- 30. 调用特定的Web服务上-didSelectRowAtIndexPath
怎么样的东西[this](http://www.javaranch.com/journal/200603/WSSecurity.html)? – loscuropresagio 2012-02-24 13:56:08