什么';用Python在内存中存储秘密信息的最佳实践是什么?

什么';用Python在内存中存储秘密信息的最佳实践是什么?,python,python-3.x,security,encryption,passwords,Python,Python 3.x,Security,Encryption,Passwords,所以问题是,我有一些秘密(TOTP/HOTP键),我的程序需要一致地使用它们,但我不希望内存转储仅仅显示它们。我说的是普通人,他们的电脑可能会被恶意软件破坏 如果考虑使用随机字节密钥在内存中使用某种对称加密算法对这些字符串进行加密,那么可能比仅读取内存(AES-CBC等)更困难,这将需要在内存中查找随机密钥,然后在内存中查找可使用此密钥解密的数据 也许我可以把这个键分成多个变量来让它变得更难 好吧,我不是一个安全专家,我的问题是对那些以前遇到过这种问题的人来说:在内存中存储秘密信息的最佳实践是什

所以问题是,我有一些秘密(TOTP/HOTP键),我的程序需要一致地使用它们,但我不希望内存转储仅仅显示它们。我说的是普通人,他们的电脑可能会被恶意软件破坏

如果考虑使用随机字节密钥在内存中使用某种对称加密算法对这些字符串进行加密,那么可能比仅读取内存(AES-CBC等)更困难,这将需要在内存中查找随机密钥,然后在内存中查找可使用此密钥解密的数据

也许我可以把这个键分成多个变量来让它变得更难


好吧,我不是一个安全专家,我的问题是对那些以前遇到过这种问题的人来说:在内存中存储秘密信息的最佳实践是什么?我的担心是合理的还是偏执的,所有的程序都只是把密码放在内存中?

投票人:请建议如何更好地回答这个问题。正如有根据的猜测:我想这是偏执狂。我不得不处理这样一个案例:我正在开发的应用程序非常受欢迎,可以专门攻击,以找到用于加密模糊协议握手的秘密构建讲相同协议的克隆。我们尝试的任何混淆都会在几周或几个月内被破解。因此,答案是提出一个不依赖于此的更好的设计,同时添加一些模糊处理,每两个月更改一次密钥、模糊处理机制和握手(并迫使世界更新),同时让客户不再依赖旧的设计。更改模糊处理方案可以帮助解决一些问题,但是盲目地评估整个系统可能会浪费精力,你可能花在了特征、错误修复或者攻击一个实际上被攻击的攻击向量上。不,只要涉及到任何边界,就不可能掩盖这个。ctypes只是根据您的描述猜测您最可能拥有的最简单边界。真正的攻击者会知道你的程序做什么,为什么以及它可能会与哪些库或服务器通信,或者他不想攻击它,所以他不必胡乱猜测。