Рейтинг:0

Безопасно ли общаться с локальным API с помощью http, когда общедоступной конечной точкой является https?

флаг ng

Контекст

У меня есть настройка сервера, которая выглядит так:

  • Сервер Apache прослушивает пример.com;
  • Публичный порт 80 перенаправляется на 443;
  • Публичный порт 443 перенаправляется в проект Symfony;
  • На этой же машине есть локальный сервер API, написанный на Rust, который слушает http://127.0.0.1:8030 (нет поддержки SSL/TLS);
  • Локальный API может отвечать на некоторые конфиденциальные данные, такие как токены аутентификации JWT;
  • https://example.com/api является прокси для локального сервера API (ПроксиПасс и ПроксиПассРеверс, см. конфигурацию Apache ниже), чтобы:
    • предоставить API конечному пользователю с поддержкой SSL/TLS,
    • и иметь возможность отправлять ему запросы XHR javascript с общедоступного веб-сайта Symfony.

Запись: я сделал эту настройку с прокси для локального API, потому что у меня было много проблем с правилами CORS; но Это нет предмет моего вопроса (я думаю, есть гораздо лучшие настройки).

Вопрос

Можно ли считать эту настройку безопасной или стоит добавить поддержку SSL/TLS для локального API?

Конфигурация Apache, немного упрощенная

<VirtualHost *:80>
   ServerName example.com
   Redirect / https://example.com
</VirtualHost>

<VirtualHost *:443>
    ServerName example.com

    DirectoryIndex /index.php

    ProxyPass /api http://127.0.0.1:8030/
    ProxyPassReverse /api http://127.0.0.1:8030/

    SSLEngine on
    SSLProtocol -ALL +TLSv1.2 +TLSv1.3
    SSLCompression off
    SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
    SSLCACertificateFile /etc/letsencrypt/live/example.com/fullchain.pem

    DocumentRoot /var/www/html/symfony_project/public
    <Directory /var/www/html/symfony_project/public>
        AllowOverride All
        Require all granted
        Allow from All
        FallbackResource /index.php
    </Directory>

    ErrorLog /var/log/apache2/symfony_project_error.log
    CustomLog /var/log/apache2/symfony_project_access.log combined
</VirtualHost>
Рейтинг:0
флаг it

Зависит от разрешения на доступ к самому хосту.В случае, если система просто обрабатывает трафик http/https и ни один пользователь (кроме администраторов) не может войти в систему, я бы сказал ДА, это безопасный дизайн...

Вопрос в том, КТО и КОГДА потенциально может перехватывать конфиденциальные данные. Завершение SSL в любом случае выполняется на сервере, поэтому есть часть, где в любом случае существуют незащищенные данные (например, ОЗУ). Таким образом, до тех пор, пока система не будет ограничена в доступе и незащищенные данные не будут покидать систему (например, не передавать сетевую карту), данные будут в безопасности.

Уровень SSL в локальном соединении не принесет большой пользы, так как все ключи в любом случае находятся в системе. Ресурс, сэкономленный при расшифровке/шифровании локального трафика, можно использовать для большего количества подключений, которые может обработать система...

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.