Нужно ли настраивать SSL на внешнем балансировщике нагрузки, если вы его используете?
Используя Elastic Load Balancer, достаточно легко настроить SSL на внешнем балансировщике нагрузки и обслуживать запросы как http для приложения.
При запуске одного сервера также можно настроить SSL на веб-сервере (Tomcat) или в приложении (Spring).
При работе с балансировщиком нагрузки необходимо ли тянуть SSL до уровня балансировщика нагрузки? Есть ли элемент состояния в соединении SSL, который будет потерян при пересылке еще зашифрованного трафика?
3 ответа
Я боюсь, что ответ будет "это зависит". У меня была возможность немного покопаться в этом, когда я работал с безопасностью интернет-банкинга. Это было пару лет назад, поэтому вполне возможно, что кто-то еще придумает что-то, что я забыл или что изменилось за эти годы.
Недостатки прекращения SSL на балансировщике нагрузки
Во-первых, это может привести к потере состояния - если у вас запущено приложение, для сохранения которого требуются заголовки SSL. Если это так, вы, скорее всего, потеряете эту информацию (хотя вы можете настроить балансировщики нагрузки для ее пересылки каким-либо образом). Одним из примеров может быть, если вы используете клиентские сертификаты для аутентификации.
Во-вторых, как говорит Баззе, это делает ваш трафик уязвимым для прослушивания в локальной сети. Насколько это опасно, конечно, зависит от того, как выглядит ваша сеть, а также от того, какой это трафик.
преимущества
Вы уменьшаете нагрузку на свои веб-серверы, поскольку им больше не нужно тратить свои ресурсы на дешифрование и шифрование.
Когда вы изменяете конфигурацию своего веб-сервера, вы можете выполнить простую перезагрузку apache, не вводя пароль ключа SSL. Это означает, что вы можете автоматизировать его, включив непрерывное развертывание и devops и все модные слова. (Обратной стороной этого является то, что изменение конфигурации LB может потребовать от вас ввода пароля, но, как правило, это то, что вы делаете не так часто, как возиться с настройкой apache...)
Устранение неполадок с веб-сервером и приложением стало намного проще, поскольку теперь вы можете напрямую отслеживать / проверять входящий трафик.
У вас меньше мест для устранения ошибок / дыр в безопасности. Обычно намного проще изменить настройки SSL на одном LB, чем на большом количестве веб-серверов, особенно если этими серверами управляет множество разных людей из разных отделов.
Аудит SSL также намного проще, когда есть только одно место для аудита.
Намного проще отслеживать, какие сертификаты используются и когда их нужно обновлять, когда они все в одном месте. У вас больше нет проблемы с тем, что Боб заказал сертификат и поместил свой личный адрес электронной почты в систему для напоминаний, а затем уволился или был уволен, чтобы напоминание отскочило, а сертификат истек, и внезапно у вас появилось много расстроенных людей, требующих, чтобы это исправить прямо сейчас! (Не то, чтобы это когда-либо случалось везде, где я работал! Кашель)
Заключение
Будет ли хорошей идеей закончить в LB или нет, будет зависеть от того, насколько вы цените различные преимущества и недостатки. Как правило, я бы сказал, что, если нет веских оснований поступить иначе, вы захотите устранить сложность как можно раньше - на границе сети, если это разумно с точки зрения безопасности и удобства использования, или как можно скорее после этого. возможный.
Пара дополнительных мыслей: 1. Если вы ищете соответствие PCI, вам нужно будет зашифровать "данные в пути", чтобы вам пришлось либо передавать зашифрованный трафик в ваше приложение, либо повторно шифровать между LB и вашим сервером приложений.
- Расшифровка в LB снимает нагрузку обработки с сервера приложений, и это является основной причиной для прекращения SSL в LB.
Я бы сказал, что прекращение трафика SSL на уровне балансировщика нагрузки или сервера зависит от того, в порядке ли у вас незашифрованный трафик между двумя или нет. В большинстве случаев трафик, идущий от балансировщика нагрузки к серверу (-ам), проходит внутри частной сети, где вам не нужно заботиться о прослушивании и атаках типа "человек посередине" (по сравнению с трафиком, проходящим через общедоступный интернет).
Оставив завершение на ELB также избавляет вас от дополнительной работы по прекращению трафика самостоятельно.
Здесь вы можете прочитать больше об этом: /questions/415139/kakaya-samaya-bezopasnaya-sistema-parolej-onlajn/415156#415156