繁体   English   中英

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

[英]Safest communication method between applications on same machine

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

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

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

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

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

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

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

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

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

所以我没有看到这一点。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM