html - 离线安全 HTML 5 应用程序

标签 html security encryption offline

我在一家网络开发公司工作,负责在应用未连接到互联网时保护应用或任何其他内容,这意味着 HTTPS 上的标准登录协议(protocol)不会申请。

我工作的公司介绍了如何在互联网连接不佳的情况下申请“在路上”。出于每个人都能理解的原因,用户必须能够“锁定”应用程序并能够解锁。最好使用他们在线时用于登录的密码(他们获得一个安全 cookie,在与网络服务器在线时对他们进行身份验证)。

现在我需要一种方法来检查密码,而不会让黑客轻易地查看 websql/indexdb/local 存储并在那里找到它。将其存储为简单的哈希值很容易被黑客入侵。

我考虑过将其加盐存储,但它被黑客攻击只是时间问题,还考虑了对部分密码(如最后 4 个字符)和盐进行哈希处理。万一它确实出现彩虹,他们只是解锁应用程序而没有密码。

我似乎真的找不到好的和/或标准化的方法来保护离线 HTML5 应用程序。但是有没有类似的最佳实践?

另一个问题是离线存储中数据本身的安全性,只有应用程序才能读取它。我可以想出使数据“不可读”的方法,但我可以想出所有安全存储记录的方法,我也可以想出一种破解它的方法。因此,也欢迎在此领域提出任何建议。

最佳答案

就像 ovanwijk 建议的那样:我认为只存储(加盐的)散列就足够了。为了让用户解锁屏幕,他/她在密码短语中清除类型,它将被散列并且必须与存储散列相匹配。这可以用来加密数据。幸运的是,斯坦福为 JavaScript 提出了一个非常好的加密库:http://crypto.stanford.edu/sjcl

可悲的是,在浏览器中没有网站可以访问但其他人无法访问的安全位置。想一想:如果有一个地方你可以打开调试工具并注入(inject)一些代码来访问它。由于 JS 安全性只是一个研究问题,因此没有针对此问题的标准解决方案...

关于html - 离线安全 HTML 5 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23777683/

相关文章:

Html5 IndexedDB - 通过其键检索值

c - 从编码的哈希值中导出 Argon2 类型是否安全?

java - 试图了解 Java RSA key 大小

java - 无法从java中的 keystore 加载私钥

node.js - PyCrypto 和 Node.JS Crypto 库中的 AES 是否相同

javascript - 如何在其中保留 div 的文本,如果更大,则 div 向下扩展?

javascript - div 内的粘性元素在滚动上具有绝对位置

Swift 和 golang 编码 base64 给出不同的结果

java.security.AccessControlException : access denied (java.net.SocketPermission 127.0.0.1 :8081 connect, resolve) - 主要原因

html - 如何设置Qtextedit背景颜色?