我一直在研究如何最好地在代码中存储加密密钥。许多人给出的答案和建议是不要这样做,因为它可以从代码中获得。例如...... http://bit.ly/16wpVU。
所以我的问题是,你有没有这样做过?或者至少你已经完成了这项工作所需的技术,但可能用于其他目的?它是如何完成的,以便如果决定在代码中隐藏加密密钥,那么人们可以更好地为它做好准备吗?
感谢 何
答案 0 :(得分:2)
我曾经对我们的Suite-B密钥协商进行兼容性测试,而且微软的密钥与某些密码套件不匹配。
使用WinDBG,我能够逐步完成反汇编,识别其DLL中的关键入口点,找到各种关键组件的来源,并确定其代码与rfc的确切位置。 (奇怪的是,事实证明rfc出错了。)
您当然希望避免将密钥放在代码中。我建议使用其他一些数据的哈希作为你的密钥。
在那之后,我担心的是一个有调试器的人。
我确信还有其他人花时间考虑如何使事情变得不可判,但我个人认为难以调试的是在不同环境中发生的行为:状态机每次执行都会有所提升,不同的进程当你无法在源代码中插入调试中断时,很难在那里安装调试器。