Чесночная маршрутизация
Чесночная маршрутизация (англ. «Garlic Routing») — это технология анонимного, зашифрованного обмена информацией через компьютерную сеть, используемая в анонимной сети I2P. Чесночная технология является расширением луковой маршрутизации, используемой в проекте Tor.
Обзор
Термины «Чесночная маршрутизация» и «Чесночное шифрование» были введены в июне 2000 года Майклом Фридманом (англ. Michael J. Freedman), который взял за основу технологию луковой маршрутизации. Сама технология была разработана и внедрена позднее разработчиками проекта I2P — «Проект невидимый Интернет».
Чесночная технология, используя многослойное шифрование, позволяет единственному сообщению (так называемому «чесноку») содержать в себе множество «зубчиков» — полностью сформированных сообщений рядом с инструкциями для их доставки. В один «чеснок» в момент его формирования перед отправкой закладываются множество «зубчиков», являющихся зашифрованными сообщениями как нашего узла, так и чужими — транзитными. Является ли тот или иной «зубчик» в «чесноке» нашим сообщением или это чужое транзитное сообщение, которое просто проходит через нас, знает только тот, кто создал «чеснок», никто иной узнать эту информацию не может. Чесночная технология применяется тогда, когда нужно отправить зашифрованное сообщение через промежуточные узлы, у которых не должно быть доступа к этой информации.
Например, если один маршрутизатор хочет попросить другой маршрутизатор поучаствовать в общем туннеле, он помещает этот запрос в «чеснок», шифрует его открытым алгоритмом (Схема Эль-Гамаля, 2048-битный ключ) и передаёт его через туннель. Когда же клиент хочет отправить сообщение в точку назначения, маршрутизатор отправителя обернёт данные сообщения (вместе с другими сообщениями) в «чеснок», зашифрует этот «чеснок» открытым алгоритмом, опубликованным в «leaseSet» получателя, и передаст его через соответствующие туннели.
Инструкции, присоединённые к каждому «зубчику» внутри зашифрованного слоя, включают возможность запросить, чтобы «зубчик» был отправлен локально к удалённому маршрутизатору или к удалённому туннелю на удаленном маршрутизаторе. В этих инструкциях есть поля, позволяющие промежуточному узлу запрашивать задержку отправки в определённый промежуток времени или условия встречи.
Используемые алгоритмы шифрования
- 256 бит AES-CBC;
- 2048 бит Схема Эль-Гамаля[1];