我想为用户提供加密我的移动应用程序存储的所有文件的选项。它应该以某种方式完成,因此即使服务器也不能解密它们 - 只有用户本身。
它应该像Mega一样调用它:
设计安全性(“如果没有您,我们无法访问您的数据 能够找到“)
换句话说,像WhatsApp和所有其他聊天应用程序现在声明使用“端到端加密”只是只有一个端点是客户端。
如何为移动应用实施此功能?优选地,使用Ionic / Cordova / Angular的混合应用程序。 据我所知,加密/解密必须完全在客户端运行? 但困难的部分是如何确保只有客户端可以解密文件?
如果有人能指出我正确的方向,那就太棒了!
更新 我找到了关于Mega如何做到这一点的简短摘要:
因为所有数据都在CLIENT(浏览器,应用程序等)中加密,所以 你只向加密的加密数据发送。 Mega没有你的 密码或原始文件,只有加密的文件。他们没有 甚至知道文件的名称...数据用你的数据解密 帐户密码,因此您可以访问您的数据 与您的用户登录后通过电话并通过。
https://www.reddit.com/r/MEGA/comments/2xkyt0/if_mega_does_not_hold_the_encryption_keys_to_my/
据我所知,Mega必须在客户端的某个地方存储用户的密码?
更新2: Mega提供了一种更改密码的方法:https://mega.nz/help/client/webclient/accounts-pro-accounts/how-do-i-change-my-password
怎么可能?如果密码更改,是否应该丢失所有已上传的文件?或者在密码更改时在客户端重新计算所有文件密码...