我应该如何通过数据中心之间的服务间通信来保护SOA?

时间:2010-02-12 04:25:26

标签: architecture encryption ipc soa vpn

对于我的宠物项目,我决定采用基于服务的架构(是的流行语SOA),因为我可以独立于其他服务扩展每个服务,在地理位置上分配它们比其他服务更多地使用它们等。

诀窍是某些服务需要彼此私下通信(并与最终用户公开)。这些服务将位于不同的数据中心,它们之间没有任何内置的私有管道(我认为SoftLayer就是这样)。

如果由于加密导致通信有点慢,我很少关心。我主要关心的是MITM攻击和窃听。也就是说,我希望服务能够确信他们正在与朋友服务而不是一些冒名顶替者。

我看到的这种跨服务通信的选项是:

  • 使用TLS的HTTP
  • 使用TLS的TCP / IP(某些自定义协议)
  • Spread Toolkit(此处不确定加密)
  • 通过SSH隧道的HTTP或自定义TCP / IP
  • 在数据中心之间创建VPN
  • 客户证书?相互验证证书?

显然我脑子里有很多笨蛋。救命啊!

你怎么看?你以前做过这个吗?你有什么经历?什么“效果很好”?

如果您选择VPN,您建议使用哪个VPN系统? OpenVPN的?如何使用此类VPN系统处理临时网络分区?他们自动愈合/重新连接吗?

我认为VPN解决方案将加密所有连接,但我只想加密一些连接。那么也许SSH隧道是有序的。

感谢您的建议。

1 个答案:

答案 0 :(得分:2)

除非你的数据中心之间有更多的流量,除了你的服务之间的交流之外,真的不需要设置和维护安全的传输基础设施,如VPN或SSH隧道,这可能会花费更多,实际上会引起更多头痛。

我建议使用SSL sockets,这样您就不必担心下层安全隧道处于活动状态,如果您通过服务与其他数据中心通信,则会通过安全连接。在每个数据中心的互联网网关(路由器)之间使用IPsec隧道模式之类的东西在数据中心之间添加VPN也可能是值得的,以增加额外的安全性以及对流量和寻址的更多控制。 p>