2013-04-15 3 views
0

HTTPS широко используется для обеспечения безопасности в Интернете. Он обеспечивает безопасность и целостность, но не аутентификацию. Чтобы клиент не разговаривал с человеком по середине, у нас есть цифровые сертификаты и PKI. Все это работает очень хорошо, за исключением ситуации, когда применяются следующие критерии:Согласование ключей HTTPS и туннелирование через HTTP с использованием Javascript

  • Сервер и клиент не разделяет общую, доверенный корневой центр сертификации, поэтому они не могут подтвердить сертификаты друг друга
  • обстоятельств (например. брандмауэр, разрешения и т. д.) не разрешают использование обычного протокола HTTPS

Вопрос: можем ли мы по-прежнему отправлять безопасные, аутентифицированные сообщения между клиентом и сервером, возможно, используя Javascript?

Что-то вдоль линий:

  1. Клиент посылает регулярные запрос HTTP на сервер
  2. сервер отвечает страницу, содержащую Javascript код
  3. Клиента Javascript асинхронно отправляет данные на сервер, используемый для переговоров
  4. Сервер запускает какой-то скрипт (например, PHP) для создания туннеля
  5. Клиент и сервер обмениваются данными через зашифрованный туннель

Я вижу, что можно отправлять сообщения с защитой и целостностью таким образом, но можно ли аутентифицироваться без использования PKI, возможно, используя тот факт, что сервер может динамически переписывать Javascript, отправленный на клиент?

ответ

1

На вашем этапе 2 проблема - Server responds with page containing Javascript code: Как вы знаете, что кто-то, сидящий на проводе, не модифицирует этот Javascript, поскольку он передается в виде открытого текста? В основном, когда X хочет аутентифицировать Y, X должен знать что-то о Y. Это может быть общедоступная информация, такая как открытый ключ/сертификат или общий секрет, который он мог бы подтвердить.

+0

Именно в этом суть проблемы, на мой вопрос, заключается в том, существует какой-то способ преодолеть эту проблему, используя тот факт, что сервер может вставлять какой-то секрет в документ, который он отправляет клиенту. – ose

+1

Нет, нет, вы не можете аутентифицироваться без хотя бы некоторых знаний заранее. –

 Смежные вопросы

  • Нет связанных вопросов^_^