要明确问题:以下提案是否被视为“安全”? (即不会带来任何重大的安全风险)。
我没有看到任何明确的理由为什么下面的提案会被认为是完全不安全的(例如,'甚至不打扰',这似乎是对'本地存储'和'安全'在标题中)。从根本上说,它基于这样一个前提:您可以访问内存中的敏感数据和缓存,也可以访问它们。
我有一个Web应用程序,其中包括服务器端Web服务和在浏览器中运行的javascript,它们调用这些Web服务(通过HTTPS安全地,这不是问题),并在网页中显示数据。假设它是一个显示您的电子邮件的电子邮件应用程序 - 即它是您不想与他人共享的敏感数据。
现阶段要注意几点:
到目前为止,它是一个标准的Web应用程序,我假设任何阅读都会觉得这被认为是“可接受的安全”。
问题是:每次用户访问网站时,他们的浏览器都需要下载所有(电子邮件)信息,其中大部分信息都是相同的。如果不是每次都要求服务器提供所有信息,它可能会将数据缓存在浏览器中并检查缓存,这不是很好。请记住,这不是“离线”访问:浏览器仍然安全地与服务器通信,但它可能使用存储在浏览器端缓存中的数据,而不是从服务器中检索所有数据。
以下是提案:
这意味着一旦页面消失(或者很快就会消失),浏览器或任何具有任何访问级别的人解密缓存内容的能力就是本地存储已经消失。为了做到这一点,他们需要密钥:如果他们有密钥,他们就可以访问数据本身(在浏览器/ javascript内存中)。
当用户稍后返回该站点时,他们需要再次通过服务器进行身份验证,以便通过Web服务检索数据。
有什么想法?
为了它的价值,请记住我读过:
(所以我至少知道关于javascript +本地存储+安全性的担忧)
答案 0 :(得分:0)
安全和加密是一个环境,在这个环境中,细节确实很重要,并且要注意您已经非常模糊。实施很容易出错。如果这是在商业应用程序中,并且数据足够敏感,请考虑专业帮助。
但是,如果您要尝试,请确保您使用安全加密密码来加密您的数据,否则您将打开特定于您的加密方法的攻击。 记住默认设置是为了简单而不是安全。 (例如,分组密码中的ECB模式)
我绝不会建议使用不同的加密密钥加密2个相同的文本。 考虑隔行扫描随机文本,使它们不是一致的
以下是一些像您这样的系统通常容易受到攻击的攻击:
您还需要确保此加密密钥不易受到XSS和其他标准互联网攻击的攻击。</ p>