cordova - Phonegap 内的安全登录

标签 cordova authentication security encryption-asymmetric

我正在创建一个 Phonegap 应用程序,它需要允许用户登录我们的中央身份验证服务。

我担心的是,由于手机上的文件是在本地加载的(通过 file://),因此不存在像 HTTPS 连接那样的安全性。如果我将用户名和密码传递到我们服务器上的 HTTPS 位置,即使响应是安全的,请求也不会安全。

我不想使用 ChildBrowser 插件进行登录,因为似乎没有任何类型的事件冒泡可以告诉我登录过程何时完成,而且并非所有平台都支持 ChildBrowser 插件。

看起来使用非对称加密用公钥加密用户名/密码组合并用私钥在服务器上解密可能是合理的。不过,我似乎无法让任何 javascript RSA 库与后端的 Java 很好地配合。

对于在 Phonegap 应用程序中保护用户密码的情况,非对称加密似乎合适吗?有更好的解决办法吗?

如何使用 Javascript -> Java 来实现这一点?我一直在客户端使用 ohdave.com/RSA 脚本,但 Java 不想使用 ohdave 生成​​的 key 重新创建 key 。

感谢任何帮助。

最佳答案

此后我了解到,通过 HTTPS 请求身份验证 Web 服务将启动握手,从而允许使用 SSL 证书对凭据进行加密。

至于将凭据存储在手机上,我的做法如下:

  1. 通过 SSL 发送凭据以登录 Web 服务,并在基本授权 header 中使用 Base64 编码。
  2. 成功的登录响应包括使用服务器上的 key 进行 AES 加密的凭据。
  3. AES 加密凭据存储在手机上。
  4. 通过在摘要授权 header 中通过 SSL 将加密凭据发送到登录 Web 服务来处理 future 的登录。

关于cordova - Phonegap 内的安全登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12959638/

相关文章:

php - PHP 和 Mysqli 中的登录错误脚本

java - 使用 java.net.Authenticator 注销

android - 应用程序在 Android 模拟器中是可调试的,即使在带有 debuggable=false 的发布 apk 中也是如此

cordova - 如何在 Cordova 中正确定义 Content-Security-Policy?

android - Cordova Android 状态栏和标题之间的空白

cordova - Cordova CTP3 工具在构建时连接 etimedout

javascript 源代码更改检测

javascript - 如何在本地保存羊驼json文件

authentication - 如何创建单点登录体验?

security - MD5 安全性好吗?