Apache Thrift-如何提供安全的通信

时间:2019-04-01 15:02:05

标签: sockets ssl thrift thrift-protocol

我想确保Thrift服务器与客户端实例之间的通信安全。为此,首先我在服务器端使用了密钥库,而在客户端使用了信任库来启用SSL通信,如这篇文章所述:https://chamibuddhika.wordpress.com/2011/10/03/securing-a-thrift-service/

然后,我使用下面的SO帖子:Symmetric encryption (AES) in Apache Thrift中提供的TEncryptedFramedTransport.java类将传输实例包装在客户端和服务器上。这样就可以对通过套接字连接传输的消息进行对称加密。

我的问题是,同时使用这两种方法是否会使我的通讯更加安全?还是没有必要同时使用这两种方法,而应仅使用其中之一?

1 个答案:

答案 0 :(得分:1)

有一个概念称为“纵深防御”。这样的想法是,即使有人可能被破坏,您仍然还有另一种防御。缺点是,与往常一样,您必须为性能付出代价。

这里的真正问题是:我是否仅信任SSL / TLS还是我绝对要添加另一个(应用程序)安全级别,如果某些中间人设法进入内部,这将成为另一个障碍我的SSL / TLS通道,即使那会降低我的性能?

另一方面可能是被迫跨不安全通道进行通信,即没有TLS可用时。请记住,Thrift允许根据需要切换传输,并且SSL / TLS基础结构仅在某些情况下可用。

如果答案为是,请这样做。对于REST,SOAP,XMLRPC,Avro,gRPC或著名的avian carriers,答案是相同的。

因此,如果要这样做,最终的决定性答案取决于您的优先级。

还请注意,您的解决方案中可能还需要解决其他攻击媒介。