我应该如何使用客户端JavaScript加密大文件
How should I encrypt large files using clientside JavaScript?
我正在为文件传输协议进行客户端加密(因此即使服务器也不知道文件是什么)。我目前的方法是将文件导入浏览器文件系统,将文件分成1mb的块,将每个块存储在内存中,使用AES加密每个块,然后将所有块连接起来并上传。这可以防止内存过载,但是效率很低。有更好的方法吗?在浏览器文件系统中加密整个文件的方法?谢谢!
在没有创建可信的威胁模型之前,不应该使用加密或任何其他加密原语。您打算通过使用基于JavaScript的加密来防止对应用程序的哪些威胁?如果威胁来自网络上的某个人,那么我们有很棒的工具来防止基于网络的攻击——我们称之为HTTPS与TLS,它是免费使用的——而JavaScript是无法替代的。
一些实验性的"端到端"(e2e)聊天应用程序使用基于JavaScript的加密。但是这种"承诺不达到峰值"的加密实际上并不能保护客户端免受服务器的攻击——恶意的JavaScript可以访问这些密钥,而服务器选择不读取它们——这不是安全。
基于JavaScript的加密无法阻止任何本地攻击(或RCE)或跨域攻击(XSS) - HTTPS也无法阻止这些攻击。由于缺乏可信的威胁参与者,所以加密从来不由客户端执行,而是通常由应用服务器或后端数据库执行,以加密静态的敏感字段。这是因为后端可以对不受信任的客户端保密。如果你想更好地理解开发人员是如何编写安全应用程序的,可以考虑阅读OWASP Top 10("JavaScript加密"不包括)
相关文章:
- 客户端PGP文件加密
- 用javascript(Phonegap应用程序)加密文件
- SJCL加密导致文件大小错误
- 加密-js - 读取和解密文件
- 节点.js使用 AES 加密大文件
- 使用SJCL客户端加密文件
- 如何从我的web应用程序中的Java脚本文件中获得加密的密码
- CryptoJS解密C#DES加密文件失败
- JavaScript:使用openpgp.js解密GnuPG加密文件的内容
- 使用HTML5文件API存储/检索文件中的加密文本
- 使用JavaScript解码PKCS12文件并从中获得加密私钥的最佳方法
- 我可以加密一个javascript文件,仍然让它在客户端上运行吗?
- 自动下载加密文件
- 我应该如何使用客户端JavaScript加密大文件
- 加密的Flash容器文件中的内容比普通的HTML/Javascript更安全吗?
- Javascript加密文件上传
- 客户端(javascript)文件上传加密
- 从javascript访问IndexedDB作为文件进行加密
- 使用node.js通过HTTP将文件加密为字符串
- 如何加密文件下载路径