1

我一直在研究如何最好地在代码中存储加密密钥。许多人给出的答案和建议是不要这样做,因为它可以从代码中获得。例如... http://bit.ly/16wpVU

所以我的问题是,你做过这个吗?或者至少您已经完成了执行此操作所需的技术,但可能用于其他目的?它究竟是如何完成的,以便如果决定在代码中隐藏加密密钥,人们可以更好地为此做好准备?

谢谢何塞

4

1 回答 1

2

我曾经对我们的 Suite-B 密钥协商与 Microsoft 的协商进行兼容性测试,结果密钥与某些密码套件不匹配。

使用 WinDBG,我能够逐步完成反汇编,识别它们 DLL 中的关键入口点,找到各种关键组件的来源,并准确找出它们的代码与 rfc 的差异。(奇怪的是,结果证明 rfc 是错误的。)

您当然希望避免在代码中明文输入密钥。我建议使用其他一些数据的哈希作为您的密钥。

在那之后,我担心的是一个有调试器的人。

我敢肯定还有其他人花时间思考如何使事情变得不可调试,但我个人认为难以调试的是在不同上下文中发生的操作:每次执行都会提前一点的状态机、不同的进程、中断处理程序等。当您无法在源代码中插入调试中断时,很难在其中安装调试器。

于 2012-07-26T15:47:51.943 回答