2012-04-01 71 views
3

我有一个想用谷歌Chrome/Chromium扩展程序进行通信的“本地”程序(采用Java)。通信包含敏感信息,不应该由运行它们的用户(以及当然的根)访问。我的Google Chrome浏览器扩展程序与Linux上的本机程序之间的用户专用连接

我应该选择哪种技术用于此通信通道?有没有解决方案?

编辑: 当然,我可以打开一个TCP/IP端口连接到本地主机上,但不会是由具有相同主机上的其他帐户的用户访问吗?有没有技术来避免这种副作用?

我们可以从Google Chrome扩展程序访问unix域套接字吗?

+0

p2p爱好者注意:我需要浏览器和我的p2p应用程序的本地节点之间的通信通道。他们都应该在同一台主机上运行。 – Vincent 2012-04-01 21:57:02

回答

0

我选择的解决方案是让服务器套接字在回送接口(/ 127.0.0.1)上侦听,并将共享密钥用作api密钥。

原因是我没有意识到,在我的情况下,每个应用程序连接到我的节点必须是验证 ..因为每个应用程序以不同的方式处理,具有不同的访问权限。

0

您可以在更高级别通过与证书等进行安全的SSL通信来解决此问题......如果某人没有证书,则连接被终止。而且,您将从加密中受益。

+0

如果我要进行加密而不是隔离,我需要验证连接的Chrome扩展,并且我不希望通过同一用户帐户运行的程序之间的通信进行身份验证。原因是为了使用户更容易安装/设置过程。 – Vincent 2012-04-01 21:54:42

+0

你打算如何通过'隔离'来达到你正在寻找的安全级别?为了实现隔离,你需要控制,并且一个普通的unix用户永远不会达到连接的unix控制级别以满足你的需求。而且我们也不能保证这样我们也会保持水密。 P2P不会解决您的问题,除非您在其上使用安全通信。但是,那么,为什么要在第一个地方使用P2P ... – JVerstry 2012-04-01 22:02:45

+0

我正在考虑Unix域套接字..即基于文件系统的套接字。隔离我的意思是通过1个基于Unix的主机的访问权限。我已经在我的f2f网络的节点之间使用加密。 – Vincent 2012-04-01 22:07:16

1

假设您已经熟悉TCP,如果您使用localhost/127.0.0.1进行通信,那么对于其他计算机而言,它将不可见/可用。

+0

确实如此,但问题是来自同一主机上其他帐户的用户仍然可以连接。我可能会将其用于我的原型,但这不是最终解决方案。 – Vincent 2012-04-02 20:29:26

+1

在unix平台上,你可能可以使用unix域套接字,这将允许你找出谁连接,但是否这是由java支持或不,我不知道。当然,你可以在任何协议的基础上构建自己的认证,但是对于你想要做的事情来说这可能是矫枉过正的。 – 2012-04-02 20:53:55

+0

@MariusKjeldahl此外,其他用户在运行时无法运行该程序。 – 2013-07-04 16:15:03

相关问题