什么是保护Cap'n Proto RPC网络流量的好方法?

时间:2015-10-13 21:46:18

标签: c++ stunnel capnproto

我想使用Cap'n Proto RPC通过办公室的桌面盒与云中的服务器进行通信。 Cap'n Proto不通过防火墙提供安全的网络连接。我更喜欢c ++,因为我有其他组件需要这个。

我看到有些人一直在关注nanomsg和其他直接连接到应用程序的传输,但我想知道stunnel或类似的东西是否令人满意。

根据常见问题解答,众所周知,stunnel应用程序可以在某些条件下提供TCP / IP流量的HTTPS封装:

  1. 协议是TCP,而不是UDP。
  2. 协议不使用多个连接,例如ftp。
  3. 协议不依赖于带外(OOB)数据,
  4. 远程站点不能使用特定于应用程序的协议,例如ssltelnet,其中SSL是协商选项,除了stunnel的protocol参数已经支持的那些协议。
  5. 似乎Cap'n Proto RPC可能满足这些条件。在这种情况下,我认为客户不会反对安装stunnel。有没有人试过这个或类似的东西?如果是这样,您的经历将不胜感激。如果有人知道更快/更轻的选择,它也会有所帮助。

    谢谢!

1 个答案:

答案 0 :(得分:1)

是的,Cap&#cu; n Proto的双方协议(目前唯一提供的协议)应该与stunnel配合使用,因为它是一个简单的基于TCP的传输。当然,您需要运行stunnel客户端和服务器,否则这应该很容易设置。您也可以使用SSH端口转发或VPN来实现类似的结果。

(请注意,stunnel本身与HTTPS本身无关,但通常用于实现HTTPS,因为HTTP也是一种简单的TCP协议,HTTPS是相同的协议,但在TLS上除外。在Cap' n Proto中case,Cap&#Prot; proto取代了HTTP。所以你想创建Cap' nProto-S,我想。)

另一个选择是直接基于OpenSSL,GnuTLS等TLS库实现kj::AsyncIoStream抽象接口.Cap' n Proto的RPC层将允许您提供任意实现kj::AsyncIoStream作为其传输(通过capnp/rpc-twoparty.h中的接口)。不幸的是,许多TLS库都有相当难看的接口,所以这可能很难做到。但是如果你确实写了一些东西,请把它归还给项目,因为这是我想要在基础库中的东西。

最终我们计划将一个官方加密传输添加到Cap&n; Proto,旨在直接支持多方介绍(Cap& Proto实际上还没有做到这一点,但我希望它会是当它准备就绪时的一个杀手级功能)。我预计这种支持将在2016年的某个时候出现,但不能做出任何承诺。

相关问题