我正在构建一个与服务器通信的跨平台应用程序。安全非常重要。
是否有一个方案可以让我“信任”可执行文件是真的并且没有被篡改过,并且请求确实来自我签名的可执行文件而不是模仿者?看起来像是传统的中间人攻击。我该如何预防?
据我所知,我可以在Windows下使用受信任的CA签署可执行文件。这可确保可执行文件未在用户的计算机上被篡改。但是,目标病毒仍然可以用模仿者替换可执行文件(而不是修改它),Windows不会抱怨。
然后,我的真正可执行文件可以签署它对服务器发出的请求吗?我可以在服务器上验证这些请求吗?天真的解决方案是在签名的可执行文件中嵌入“私有证书”。但是,我怀疑即使从签名的可执行文件中提取此私有证书也是可能的。
最后,OSX和Linux中是否有可执行的签名机制?