基于这个问题,我在处理秘密充气城堡时担心以下问题:
- 加密(在内存转储或页面缓存的情况下)
- 钉在记忆中
- 标记为只读的能力(以防止任何进一步的修改)
- 通过不允许传入常量字符串来安全构造
- 优化编译器(参见链接文章re: ZeroMemory 宏中的注释),但它适用于 .NET 和 GIT 构建
问题
- Bouncy Castle 是否使用 .NET 中所需的结构来使其能够安全构建?(SecureString 或等效的直接操作)
- SecureString(或等效)的覆盖范围是否在库中需要的地方持续存在
- Bouncy Castle是否必须以某种方式编译以防止编译器优化生效?