HTTPS широко используется для обеспечения безопасности в Интернете. Он обеспечивает безопасность и целостность, но не аутентификацию. Чтобы клиент не разговаривал с человеком по середине, у нас есть цифровые сертификаты и PKI. Все это работает очень хорошо, за исключением ситуации, когда применяются следующие критерии:Согласование ключей HTTPS и туннелирование через HTTP с использованием Javascript
- Сервер и клиент не разделяет общую, доверенный корневой центр сертификации, поэтому они не могут подтвердить сертификаты друг друга
- обстоятельств (например. брандмауэр, разрешения и т. д.) не разрешают использование обычного протокола HTTPS
Вопрос: можем ли мы по-прежнему отправлять безопасные, аутентифицированные сообщения между клиентом и сервером, возможно, используя Javascript?
Что-то вдоль линий:
- Клиент посылает регулярные запрос HTTP на сервер
- сервер отвечает страницу, содержащую Javascript код
- Клиента Javascript асинхронно отправляет данные на сервер, используемый для переговоров
- Сервер запускает какой-то скрипт (например, PHP) для создания туннеля
- Клиент и сервер обмениваются данными через зашифрованный туннель
Я вижу, что можно отправлять сообщения с защитой и целостностью таким образом, но можно ли аутентифицироваться без использования PKI, возможно, используя тот факт, что сервер может динамически переписывать Javascript, отправленный на клиент?
Именно в этом суть проблемы, на мой вопрос, заключается в том, существует какой-то способ преодолеть эту проблему, используя тот факт, что сервер может вставлять какой-то секрет в документ, который он отправляет клиенту. – ose
Нет, нет, вы не можете аутентифицироваться без хотя бы некоторых знаний заранее. –