FirefoxOS是否足够安全,可以在indexeddb或localstorage中存储密码?

时间:2015-01-09 21:13:50

标签: security authentication credentials firefox-os

据我所知,目前还没有标准方法可以在FirefoxOS中保存凭据。 AccountManager之类的东西就像android一样。所以每个应用程序都必须自己保存凭据。这意味着您必须回退到localstorage或indexeddb之类的东西。

我不确定是否有更好的方法来处理这个问题。我有一个应用程序,我想保存用户/密码,以便在couchdb服务器上更容易reauth。


我目前的解决方案是创建一个仅在本地使用的PouchDB数据库和一个可以与couchdb服务器同步的PouchDB数据库。另外,理论上我可以将change事件绑定到本地私有数据库以侦听密码更改以使用不同的凭据重新进行身份验证。当cookie过期时,我可以重复使用凭据再次登录并重试失败的请求。

1 个答案:

答案 0 :(得分:2)

localStorage和IndexedDB中的数据未加密,因此如果设备被盗并且分析了文件,则可以检索凭据。

如果您不担心设备被盗并且检索到凭据,那么您在PouchDB中存储的计划听起来不错。 Firefox OS上的Web应用程序通过设计沙盒化,无法访问其他应用程序的存储数据。

但是,如果凭据是敏感的:

“足够安全”与存储的内容和已知的威胁级别有关。例如,如果您将密码存储在设备上的高度敏感数据中,该设备的数据被盗的可能性非为零,那么“足够安全”与您为Web应用程序存储凭据的情况非常不同。用户不会认为设备上的敏感信息不会因为该数据而被盗。

如果服务非常敏感且威胁很大,我建议您根本不在本地存储凭据,并放弃该用户体验功能,而使用双因素身份验证。

如果数据敏感且必须存储在本地,则可以使用本地解锁代码或密码存储在本地存储设施中加密的服务凭据。有关如何使用WebCrypto API执行此操作的说明,幻灯片和代码示例,请访问https://timtaubert.de/blog/2014/10/keeping-secrets-with-javascript/

WebCrypto API非常新,因此请检查您要定位的Firefox OS设备/版本上附带的Gecko版本的API的可用性。