我们的团队开发了一款基于IndexedDB
支持跨平台的混合应用程序。该应用程序现在具有聊天功能,我们希望存储聊天内容以供离线阅读。但根据经验,我们可以以纯文本形式存储聊天的元数据,但不能存储实际的聊天消息文本内容。因此,我们决定对它们进行加密。
问题:现在,当用户想要搜索包含任何特定单词的消息时,问题就出现了,它可以是任何语言或文本。
我们尝试研究Whatsapp
此功能的实现方式,并遇到了多篇文章,例如https://www.group-ib.com/blog/whatsapp-forensic-artifacts/和其他一些文章,但它显示了本机应用程序、sqlite
数据库(msgstore.db) 、 wa.db 等)在根文件夹中甚至没有一个字段被加密。虽然有一些数据库是加密的,msgstore.db.cryptxx
但它们大多是备份。
问题
我们是否应该假设 Whatsapp 仅在发送和接收时加密消息而不存储?
Whatsapp 是否以纯文本形式存储
IndexedDB
Web 消息?除了元数据之外我们找不到任何东西。如果 Whatsapp
sqlite
或 IndexedDB for web 对每条消息进行加密,那么它如何执行消息搜索?我们有什么选择?我们应该如何在 IndexedDB 中存储既可以加密又可以搜索的消息?
有一个与此相关的问题,但既没有正确的答案,也没有询问最终用户可以轻松查看的 IndexedDB。