同一机器上应用程序之间最安全的通信方法

时间:2010-05-11 14:13:53

标签: java c++ security ssl

同一台机器上的两个应用程序之间最安全的通信方法是什么,Java和带有Java服务器的C / C ++客户机都是这样。

SSL套接字是否足够安全,还是可以被“中间人”攻击破坏?

这里主要关注的是客户端如何信任本地服务器?

引入远程服务器会提高本地通信的安全性吗?如何实现?

5 个答案:

答案 0 :(得分:5)

您需要详细说明您的威胁模型。一般来说,任何能够物理访问您的硬件,动力和足够时间 的人都能够破坏任何东西。如果攻击者恰好是服务器上的管理员,则会增加一倍。

是的,代码中的任何内容都可以通过管理员访问权限读取。您可以尝试巧妙的技巧,如加密或混淆存储在二进制文件/ JAR文件中的密码,但这是一个障碍,而不是绝对障碍。

另一方面,另一方面,没有绝对的保密障碍,只是或多或少有效的障碍。无论您的衡量标准如何,无论您的加密和密钥管理的强度如何,只要有足够的时间和激励,任何事情都会产生。这让我们回到了第一点:你的威胁模型是什么(你希望防范什么攻击);您的受保护资产价值多少;谁和你信任什么?

答案 1 :(得分:1)

从什么安全?如果攻击者拥有root权限,他们可以在加密之前和解密之后破坏系统调用并监视内存缓冲区,而你无能为力是安全的。

如果攻击者没有root用户,即使您没有对其进行加密,他们也无法看到此信息。

所以我没有看到这一点。

答案 2 :(得分:1)

如果你的整个系统,包括它的秘密都在同一台机器上运行,那么不可理喻它本质上是不安全的。黑客可以看到系统的所有部分,并且通过足够的努力,可以解开您实施的任何保护或加密方案。

如果系统必须100%安全,那么系统的一部分需要是远程的,因此黑客无法进行压缩。

答案 3 :(得分:1)

我不得不说内存映射文件或共享内存区域是最安全的方法,Java和C ++(Win32Unix)都支持进程间通信。虽然你必须处理自己的同步,但它更复杂。完全绕过插座。

答案 4 :(得分:1)

管道应提供安全(和简单)的通信。是的,如果密码存储在二进制文件中,并且二进制文件的权限允许读取文件,黑客就能够检索密码。