Apache Thrift - как обеспечить безопасную связь - PullRequest
2 голосов
/ 01 апреля 2019

Я хочу защитить связь между сервером Thrift и экземплярами клиента. Для этого сначала я включил связь SSL с использованием хранилища ключей на стороне сервера и хранилища доверенных сертификатов на стороне клиента, как описано в этом посте: https://chamibuddhika.wordpress.com/2011/10/03/securing-a-thrift-service/

После этого я обернул свои транспортные экземпляры на клиенте и сервере классом TEncryptedFramedTransport.java, представленным в следующем сообщении SO: Симметричное шифрование (AES) в Apache Thrift . Это позволило симметричное шифрование сообщений, передаваемых через сокетное соединение.

Мой вопрос заключается в том, что применение обоих этих методов делает мое общение более безопасным? Или нет необходимости применять оба и следует использовать только один из них?

1 Ответ

1 голос
/ 03 апреля 2019

Существует понятие под названием «глубокоэшелонированная защита». Идея в том, что у вас все еще есть еще одна защита, даже если кто-то может сломаться. Недостатком, как всегда, является то, что вы должны платить за это производительностью.

Настоящий вопрос здесь заключается в следующем: доверяю ли я только SSL / TLS или я действительно хочу добавить еще один (прикладной) уровень безопасности, который служит еще одним препятствием, если кто-то посередине удается проникнуть внутрь мой канал SSL / TLS, даже если это будет стоить мне производительности?

Другим аспектом может быть то, что он может быть вынужден связываться по незащищенным каналам, т. Е. Когда нет доступного TLS. Помните, Thrift позволяет переключать транспорты по мере необходимости, а инфраструктура SSL / TLS доступна только в определенных случаях.

Если ответ положительный, сделайте это. Это был бы тот же ответ с REST, SOAP, XMLRPC, Avro, gRPC или известными птичьими перевозчиками .

Так что окончательный, решающий ответ, если вы должны это сделать, зависит от ваших приоритетов.

Также помните, что в вашем решении могут быть и другие векторы атак, которые, возможно, необходимо устранить.

...