Эта страница была обновлена Март 2014 и содержит сведения для версии маршрутизатора 0.9.12.

Чесночная маршрутизация и "Чесночная" терминология

Термины "чесночная маршрутизация" и "чесночное шифрование" часто используются довольно свободно, когда речь идет о технологии I2P. Здесь мы объясняем историю терминов, различные значения и использование "чесночных" методов в I2P.

Термин "чесночная маршрутизация" был впервые введен в обиход Майклом Дж. Фридманом в журнале Роджера Дингледайна "Free Haven". Магистерская диссертация Раздел 8.1.1 (июнь 2000 г.), как производное из Луковой маршрутизации.

Возможно, "чеснок" изначально использовался разработчиками I2P, потому что I2P реализует форму комплектации, как описывает Фридман, или просто чтобы подчеркнуть общие отличия от Tor. Конкретные причины образования термина не сохранились. В целом, когда речь идет об I2P, термин "чеснок" может означать одну из трех вещей:

  1. Многоуровневое шифрование
  2. Объединение вместе нескольких сообщений
  3. Шифрование ElGamal/AES

К сожалению, использование I2P терминологии "чеснок" за последние семь лет не всегда было точным, поэтому читатель должен быть внимателен при взаимодействии с этим термином. Надеемся, что приведенное ниже объяснение прояснит ситуацию.

Многоуровневое шифрование

Луковая маршрутизация - это техника построения путей, или туннелей, через серию пиров, а затем использование этого туннеля. Сообщения многократно шифруются отправителем, а затем расшифровываются при каждом прыжке. Во время фазы построения, только инструкции маршрутизации для следующего прыжка доступны каждому пиру. На этапе эксплуатации сообщения передаются через туннель, и сообщение и инструкции по его маршрутизации доступны только для конечной точки туннеля.

Это похоже на то, как Mixmaster (см. network comparisons ) отправляет сообщения: берет сообщение, шифрует его на открытом ключе получателя, берет это зашифрованное сообщение и шифрует его (вместе с инструкциями, указывающими следующий прыжок), а затем берет это уже зашифрованное сообщение и так далее, до тех пор, пока не будет создан один уровень шифрования на каждый прыжок по маршруту.

В этом смысле "чесночная маршрутизация" как общая концепция идентична "луковой маршрутизации". Конечно, в том виде, в котором она реализована в I2P, есть несколько отличий от реализации в Tor; см. ниже. Тем не менее, есть и существенные сходства, так что I2P получает пользу от большое количество академических исследований по луковой маршрутизации , Tor и аналогичных сетей.

Упаковка нескольких сообщений

Майкл Фридман определил "чесночную маршрутизацию" как расширение луковой маршрутизации, в которой несколько сообщений объединяются вместе. Он назвал каждое сообщение "луковицей". Все сообщения, каждое со своими инструкциями по доставке, открываются в конечной точке. Это позволяет эффективно объединять "ответный блок" луковой маршрутизации с исходным сообщением.

Эта концепция реализована в I2P, как описано ниже. Мы называем "луковицы" чеснока "зубчиками". Может быть упаковано любое количество сообщений может быть не только одно. Это существенное отличие от луковой маршрутизации, реализованной в Tor. Однако это лишь одно из многих значительных архитектурных различий между I2P и Tor; Возможно, само по себе оно не является достаточным для того, чтобы оправдать изменение терминологии.

Еще одно отличие от метода, описанного Фридманом заключается в том, что путь однонаправленный: нет "поворотной точки", как это бывает в луковой маршрутизации или ответных блоков mixmaster, что значительно упрощает алгоритм и обеспечивает более гибкую и надежную доставку.

Шифрование ElGamal/AES

В некоторых случаях "чесночное шифрование" может означать просто ElGamal/AES+SessionTag шифрование (без многочисленных уровней).

"Чесночные" методы в I2P

Теперь, когда мы дали определение различным "чесночным" терминам, мы можем сказать, что I2P использует чесночную маршрутизацию, упаковку и шифрование в трех местах:

  1. Для создания и маршрутизации через туннели (многоуровневое шифрование)
  2. Для определения успеха или неудачи доставки сообщения до получателя (упаковка)
  3. За публикацию некоторых записей сетевой базы данных (уменьшение вероятности успешной атаки для анализа трафика) (ElGamal/AES)

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

Постройка и маршрутизация туннелей

В I2P туннели являются однонаправленными. Каждая сторона строит два туннеля, один для исходящего и один для входящего трафика. Поэтому для передачи одного сообщения и ответа в обе стороны требуется четыре туннеля.

Туннели создаются, а затем используются с многоуровневым шифрованием. Это описано в разделе страница внедрения туннеля. Детали построения туннеля определены на этой странице. Мы используем ElGamal/AES+SessionTag для шифрования.

Туннели являются механизмом общего назначения для передачи всех I2NP сообщений, и чесночные сообщения не используются для построения туннелей. Мы не объединяем несколько I2NP сообщений в одно чесночное сообщение для разворачивания на конечной точке исходящего туннеля; туннельное шифрование является достаточным для этих целей.

Объединение сквозных сообщений

На уровне выше туннелей I2P обеспечивает сквозную передачу сообщений между адресами назначения. Как и в пределах одного туннеля, мы используем ElGamal/AES+SessionTag для шифрования. Каждое сообщение клиента, доставленное на маршрутизатор через интерфейс I2CP становится одним Чесночная зубчиком со своей собственной Инструкции по доставке, внутри Чесночного сообщения. Инструкции по доставке могут указывать адрес назначения, маршрутизатор или туннель.

Как правило, сообщение Garlic Message содержит только один зубчик.. Однако маршрутизатор будет периодически связывать два дополнительных зубчика в Чесночное сообщение:

Зубчики чесночного сообщения
  1. Сообщение о статусе доставки, с Инструкциями по доставке указывающими, что оно должно быть отправлено обратно на маршрутизатор отправителя в качестве подтверждения. Это похоже на "ответный блок" или "ответный лук", описанный в справочных материалах. Он используется для определения успеха или неудачи доставки сообщения получателю. Отправляющий маршрутизатор может, в случае неполучения сообщения о состоянии доставки в течение ожидаемого периода времени, изменить маршрутизацию к дальнему пункту назначения, или предпринять другие действия.
  2. Сообщение о хранении базы данных, содержащее лизсет для исходящего адреса назначения, с Инструкциями по доставке с указанием маршрутизатора дальнего получателя. Периодически связывая лизсет, маршрутизатор гарантирует, что дальний конец будет в состоянии поддерживать связь. В противном случае дальний конец должен был бы запрашивать у маршрутизатора-заполнителя запись в сетевой базе данных, и все лизсеты должны быть опубликованы в сетевой базе данных, как объясняется в разделе страница сетевой базы данных.

По умолчанию, сообщения о состоянии доставки и сохранении базы данных объединяются при изменении локального лизсета, когда дополнительные сеансовые метки уже доставлены или если сообщения не были упакованы в предыдущую минуту. Начиная с версии 0.9.2, клиент может настроить количество сеансовых меток по умолчанию для отправки и низкий порог тегов для текущей сессии. Подробности см. в спецификации опций I2CP. Параметры сессии могут быть также предопределены для каждого сообщения. Подробности см. в спецификации I2CP Send Message Expires.

Очевидно, что в настоящее время дополнительные сообщения объединяются для конкретных целей, и не являются частью схемы маршрутизации общего назначения.

Начиная с версии 0.9.12, сообщение о статусе доставки заворачивается отправителем в другое чесночное сообщение, чтобы содержимое было зашифровано и не было видно маршрутизаторам на обратном пути.

Хранение в базе данных сети наводнений

Как объясняется на странице сетевой базы данных, местные лизсеты отправляются на маршрутизаторы заливки в сообщение о хранении базы данных завернутое в чесночное сообщение, чтобы оно не было видно исходящему шлюзу туннеля.

Предстоящая работа

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

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

Such experiments may conflict with the need to ensure security and anonymity, such as limiting certain routing paths, restricting the types of I2NP messages that may be forwarded along various paths, and enforcing certain message expiration times.

As a part of ElGamal/AES encryption, a garlic message contains a sender specified amount of padding data, allowing the sender to take active countermeasures against traffic analysis. This is not currently used, beyond the requirement to pad to a multiple of 16 bytes.

Encryption of additional messages to and from the floodfill routers.

Ссылки