使用加密私钥分发已编译的程序(C,比如说 - 绝对不是Java)是否安全?从可执行文件中可以推断出密钥?如果多个可执行文件的不同之处仅在于,在源中使用了不同的私钥,该怎么办?
我记得有一段时间回顾说,防病毒软件可以识别二进制可执行文件中的可疑模式,而且从汇编开始,似乎可以推断出密钥。
答案 0 :(得分:4)
每当你创建一个隐藏自己用户数据的方案时,问自己这个问题:这个方案可以用来防止未经授权的软件拷贝(即这可以阻止“盗版吗?”)如果答案是肯定的,那么问问自己这个问题:存在未经授权的软件副本吗?如果两者的答案都是肯定的,那么你的计划几乎肯定不起作用。
您不能同时为某人提供数据并将其隐藏起来。如果在用户计算机上运行的程序可以访问该机密,则用户也可以访问该机密。你可以对它进行模糊处理,但是如果它们可以运行调试器,那么在程序解读之后,它们总是可以将密钥从程序中拉出来。
最后一课是您可以授权用户(因为他们将密码存储在他们的大脑中)。您无法授权程序或通用设备(除了证明用户拥有它之外,您几乎不能授权专用设备。)
答案 1 :(得分:2)
不,这不安全。私钥应该保密“
答案 2 :(得分:0)
我们无法判断它是安全还是不安全,我们需要知道私钥的用途。根据此私钥的用例,它确实可以是安全的。