Я прочитал, а именно на Rackspace, что не следует использовать завершение SSL для конфиденциальной информации (выполните поиск на странице "Прекращение SSL-соединения не должно использоваться"). Во-первых, почему это так? Во-вторых, в чем вообще ценность SSL, если вы не можете доверять безопасной транспортировке данных?
Я предполагаю, что по первому вопросу кто-то может просто добавить X-Forwarded-For
заголовок с URL-адресом HTTPS, если бы они знали прямой IP-адрес сервера, полностью обходя балансировщик нагрузки и входя в порт 80. Я мог бы преодолеть это с помощью iptables (разрешить только порт 80 из балансировщика нагрузки), верно?
Примечания: Мои серверы находятся в той же частной сети, что и балансировщик нагрузки (относительно примечания «Каковы проблемы безопасности?» В этой статье Rackspace).
Они говорят вам, что если вы решите, чтобы конечная точка SSL на вашем конце находилась в балансировщике нагрузки (а не на сервере, на который маршрутизатор балансировщика нагрузки), то вы должны знать, что независимо от того, насколько безопасными были данные на пути к балансировщику нагрузки, чем после того, как он покидает балансировщик нагрузки, он становится ясным. В частном центре обработки данных нередки случаи, когда обработка SSL выгружается на балансировщики нагрузки или специализированное оборудование, а затем внутренний канал (тот, который ранее был обернут в SSL) продолжается на обычных веб-серверах для обслуживания.
Они предупреждают, что если ваши облачные серверы не находятся в том же центре обработки данных, что и ваш балансировщик нагрузки, то, если вы развернете сеанс ssl в балансировщике нагрузки, трафик от них к веб-серверам будет прозрачным и маршрутизироваться через общедоступную сеть.
Что касается ваших предположений о вещах X-forwarded-for, вы неправильно поняли, что они означают. Они говорят, что если ваша веб-служба хочет убедиться, что клиенты используют SSL, но вы удаляете оболочку SSL в балансировщике нагрузки, они могут заставить балансировщик нагрузки прикрепить дополнительный заголовок для вашего веб-сервера, чтобы вы знали, что клиент DID использовал SSL, даже если ваш веб-сервер сообщит, что SSL не используется.
надеюсь, что это поможет вам
Упомянутый вами документ для стойки немного неясен, но я считаю, что цель заключается в следующем:
Вам нужна конфиденциальная информация, использующая SSL в максимально возможной степени. (от клиента до вашей базы данных)
Если вы включите завершение SSL на уровне балансировщика нагрузки, безопасность остановится на этом. (конфиденциальные данные будут передаваться в виде открытого текста между уровнем балансировщика нагрузки и уровнем приложения.)
Я считаю, что это цель документации. Вам следует избегать любой передачи конфиденциальных данных в незашифрованном виде.
Да, вы можете находиться в одной и той же «частной сети», но ваши клиенты будут лучше обслуживаться за счет сквозного зашифрованного трафика.
Удачи.