我正在创建一个 Phonegap 应用程序,它需要允许用户登录我们的中央身份验证服务。
我担心的是,由于手机上的文件是在本地加载的(通过 file://),因此不存在像 HTTPS 连接那样的安全性。如果我将用户名和密码传递到我们服务器上的 HTTPS 位置,即使响应是安全的,请求也不会安全。
我不想使用 ChildBrowser 插件进行登录,因为似乎没有任何类型的事件冒泡可以告诉我登录过程何时完成,而且并非所有平台都支持 ChildBrowser 插件。
看起来使用非对称加密用公钥加密用户名/密码组合并用私钥在服务器上解密可能是合理的。不过,我似乎无法让任何 javascript RSA 库与后端的 Java 很好地配合。
对于在 Phonegap 应用程序中保护用户密码的情况,非对称加密似乎合适吗?有更好的解决办法吗?
如何使用 Javascript -> Java 来实现这一点?我一直在客户端使用 ohdave.com/RSA 脚本,但 Java 不想使用 ohdave 生成的 key 重新创建 key 。
感谢任何帮助。
最佳答案
此后我了解到,通过 HTTPS 请求身份验证 Web 服务将启动握手,从而允许使用 SSL 证书对凭据进行加密。
至于将凭据存储在手机上,我的做法如下:
- 通过 SSL 发送凭据以登录 Web 服务,并在基本授权 header 中使用 Base64 编码。
- 成功的登录响应包括使用服务器上的 key 进行 AES 加密的凭据。
- AES 加密凭据存储在手机上。
- 通过在摘要授权 header 中通过 SSL 将加密凭据发送到登录 Web 服务来处理 future 的登录。
关于cordova - Phonegap 内的安全登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12959638/