Обзор
Это предложение добавляет механизм аутентификации к URL-адресам помощников.
Мотивация
URL-адреса помощников по своей природе небезопасны. Кто угодно может вставить параметр помощника адресу в ссылку, даже для изображения, и может указать любое назначение в параметре URL “i2paddresshelper”. В зависимости от реализации HTTP-прокси пользователя, это отображение имени хоста/назначения, если оно отсутствует в адресной книге, может быть принято, с промежуточным сообщением для подтверждения пользователем или без него.
Дизайн
Доверенные серверы переходов и службы регистрации адресной книги будут предоставлять новые ссылки помощников, добавляющие параметры аутентификации. Два новых параметра будут представлять собой подпись в формате base 64 и строку подписавшего.
Эти службы будут генерировать и предоставлять сертификат открытого ключа. Этот сертификат будет доступен для скачивания и интеграции в программное обеспечение HTTP-прокси. Пользователи и разработчики ПО смогут решить, доверять ли таким сервисам, включив сертификат.
При обнаружении ссылки помощника для адреса, HTTP-прокси проверит наличие дополнительных параметров аутентификации и попытается проверить подпись. При успешной проверке прокси будет работать как обычно, либо принимая новую запись, либо показывая промежуточное сообщение пользователю. В случае неудачной проверки прокси может отклонить помощника адресов или показать дополнительную информацию пользователю.
Если параметры аутентификации отсутствуют, HTTP-прокси может принять, отклонить или предоставить информацию пользователю.
Переходные службы будут доверенными как обычно, но с дополнительным шагом аутентификации. Ссылки помощников на других сайтах придется изменить.
Влияние на безопасность
Это предложение повышает безопасность за счет добавления аутентификации от доверенных служб регистрации/переходов.
Спецификация
Требует доработки.
Два новых параметра могут быть названы i2paddresshelpersig и i2paddresshelpersigner?
Допустимые типы подписей требуют доработки. Вероятно, не RSA, поскольку подписи в формате base 64 будут очень длинными.
Алгоритм подписи: требует доработки. Возможно, просто hostname=b64dest (так же, как предложение 112 для аутентификации регистрации).
Возможный третий новый параметр: строка аутентификации регистрации (часть после “#!”), используемая для дополнительной проверки HTTP-прокси. Любой “#” в строке должен быть заменен как “#” или “#”, либо заменен на другой указанный (требует доработки) URL-безопасный символ.
Переходный период
Старые HTTP-прокси, не поддерживающие новые параметры аутентификации, будут игнорировать их и передавать на веб-сервер, что не должно причинить вреда.
Новые HTTP-прокси, которые опционально поддерживают параметры аутентификации, корректно работать с старыми ссылками помощников без параметров.
Новые HTTP-прокси, которые требуют параметров аутентификации, не допустят использования старых ссылок помощников без параметров.
Политики реализации прокси могут развиваться в течение переходного периода.
Проблемы
Владелец сайта не сможет создать помощника для своего сайта, так как ему нужна подпись от доверенного сервера переходов. Ему придется зарегистрировать его на доверенном сервере и получить аутентифицированный URL помощника от этого сервера. Есть ли способ для сайта создать URL помощника с самоподтверждением?
Возможно, прокси сможет проверить заголовок Referer для запроса помощника адреса. Если Referer присутствует, содержит b32, и b32 совпадает с назначением помощника, тогда это может быть разрешено как самоперенаправление. В противном случае это можно считать запросом третьей стороны и отклонить.