Apache Thrift - 如何提供安全通信

问题描述 投票:1回答:1

我想保护Thrift服务器和客户端实例之间的通信。为此,我首先使用服务器端的密钥库和客户端的信任库启用SSL通信,如本文所述:https://chamibuddhika.wordpress.com/2011/10/03/securing-a-thrift-service/

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

我的问题是,应用这两者是否使我的沟通更安全?或者是否没有必要同时应用这两者并且应该只使用其中一种?

sockets ssl thrift thrift-protocol
1个回答
1
投票

有一个名为“纵深防御”的概念。这个想法是,即使一个人可能被打破,你还有一个防守。不利的一面是,你必须为它付出代价才能获得性能。

这里真正的问题是:我是否单独信任SSL / TLS,或者我是否绝对想要添加另一个(应用程序)级别的安全性,如果某些中间人设法进入我的SSL /那么这将成为另一个障碍TLS频道,即使这会花费我一些性能?

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

如果答案是肯定的,那就去做吧。对于REST,SOAP,XMLRPC,Avro,gRPC或着名的avian carriers,它将是相同的答案。

因此,如果你应该这样做,最终的,决定性的答案取决于你的优先事项。

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

© www.soinside.com 2019 - 2024. All rights reserved.