likelylee
4 月 1 日
加密数据如果你需要使用,可以有几种不同的方案:可以考虑同态加密,数据始终是密文形式存在;可以考虑 tpm 或者 tee 等安全环境,数据在操作系统侧保持密文,只在安全环境中进行解密和计算;最后就是常见用法,数据在磁盘等持久化保存场景下加密,但是使用过程需要读取到内存中解密,有操作系统负责明文数据的声明周期,比如进程隔离、用完的删除或者垃圾回收之类。
但是,在第三种场景下,只要内存中出现明文,那么一定是可以获取到的,最多只是用什么手段或者需要什么条件而已,比如你说了关 uac ,开管理员访问。
所以:
1. 如果你想证明 windows 是垃圾,那么在等同前提下,mac 或者 linux 开 root ,所有操作系统都是垃圾
2. 如果你想证明 bitwarden 是垃圾,那么 keepass 等也一样需要在内存中出现明文,攻击方一样可以通过内存 dump 的方式拿到,只是 dump 的时间点选好就行
3. 如果你要推广其他密码管理软件,只要不是在 tee 中运算或者直接调用 tpm 运算,那么都同 2
4. 如果你只是想在这一对前提条件下证明你是对的,那么你是对的
5. 如果你真的是想来学习的,那么请考虑至少从基本的安全原理入手,上边很多人都在说,安全防护不是一个单点的要求,是一个很多层或者遵循木桶原理的一个东西。甚至于有些时候需要对环境进行假设抽象才可以继续分析,否则的话直接上大记忆恢复术,什么防护都干不过啊...