假设我想部署一个简单的静态网站(没有后端服务器),只有输入密码后才能看到一些受保护的页面。
我可以编写一个硬编码的咸散密码,并用它加密受保护的数据,但是用户仍然可以遍历缩小的JS包,并找到执行密码检查的块,该块必须包含哈希密码或原始密码+散列算法(否则它如何检查密码的正确性或解密内容?)我可以通过在WebAssembly中执行密码检查来改进这一点,但是使用一些时间和知识也可以被解压缩和破解。
在我看来,从根本上说,在任何情况下,如果密码检查或受保护的内容存在于客户端的机器上,就不可能有任何真正的安全,而不仅仅是通过混淆来保证安全性。不过,我想问一下,对于任何具有开放源代码规范的受密码保护的文件和.docx / .zip / .pdf这样的读取器,情况是否也是如此?当我搜索破解这些文件的方法时,似乎大多数解决方案都是蛮力的,这表明它不是微不足道的。
我还看到了像StatiCrypt和PageCrypt这样的包,我想知道它们是否很容易破解,如果不是,它们是如何工作的呢?
TLDR -在使用后端身份验证的网站上,用户在提供正确的密码之前不能访问密码检查代码或受保护的数据。但是,如果数据位于客户端(例如静态站点或受密码保护的文件),那么用户可以完全访问加密的数据以及检查密码和解密数据的代码,那么这是否只需要通过不确定的方式来保证安全性呢?
发布于 2022-07-18 17:59:10
我认为你把两个不同的概念混为一谈:
在(1)中,用户输入密码,系统检查用户输入的密码是否是身份验证所需的“正确”密码。
在(2)中,用户输入密码,然后系统尝试使用从该密码派生的密钥解密一些密码文本。如果密码不正确,则解密失败,或解密导致无意义的输出。
解密.docx / .zip / .pdf文件的程序正在执行(2),而不是(1)。StatiCrypt和PageCrypt也是如此。
https://security.stackexchange.com/questions/263455
复制相似问题