Прокачайте свои навыки работы с I2P с помощью зашифрованных LeaseSets
В прошлом говорили, что I2P делает упор на поддержку скрытых сервисов, что во многом верно. Однако то, что это означает для пользователей, разработчиков и администраторов скрытых сервисов, понимается по‑разному. Зашифрованные LeaseSets и их сценарии использования дают уникальное, практическое представление о том, как I2P делает скрытые сервисы более универсальными и проще в администрировании, а также как I2P расширяет концепцию скрытых сервисов, обеспечивая преимущества в области безопасности для потенциально интересных сценариев использования.
Что такое LeaseSet?
Когда вы создаёте скрытый сервис, вы публикуете в I2P NetDB объект под названием “LeaseSet”. “LeaseSet” — говоря максимально просто, это то, что нужно другим пользователям I2P, чтобы обнаружить, “где” находится ваш скрытый сервис в сети I2P. Он содержит “Leases”, которые идентифицируют tunnels (туннели), по которым можно добраться до вашего скрытого сервиса, а также открытый ключ вашего destination (назначения), на который клиенты будут шифровать сообщения. Такой тип скрытого сервиса доступен любому, у кого есть адрес, что, вероятно, является на данный момент самым распространённым вариантом использования.
Иногда, однако, вы можете не хотеть, чтобы ваши скрытые сервисы были доступны кому угодно. Некоторые используют скрытые сервисы как способ доступа к серверу SSH на домашнем ПК или для объединения в сеть IoT‑устройств. В этих случаях нет необходимости, а порой это даже вредно, делать ваш скрытый сервис доступным для всех в сети I2P. Здесь на помощь приходят “Зашифрованные LeaseSets”.
Зашифрованные LeaseSets: ОЧЕНЬ скрытые службы
Зашифрованные LeaseSets — это LeaseSets, которые публикуются в NetDB в зашифрованном виде, где ни Leases, ни публичные ключи не видны, если у клиента нет ключей, необходимых для расшифровки этого LeaseSet. Только клиенты, с которыми вы поделились ключами(для PSK Encrypted LeaseSets), или которые поделились своими ключами с вами(для DH Encrypted LeaseSets), смогут увидеть destination и больше никто.
I2P поддерживает несколько стратегий для зашифрованных leaseSet. При выборе подходящей стратегии важно понимать ключевые характеристики каждой из них. Если для зашифрованного leaseSet используется стратегия «предварительно разделённого ключа (PSK)», то сервер сгенерирует ключ (или ключи), которыми оператор сервера затем делится с каждым клиентом. Разумеется, такой обмен должен происходить по стороннему каналу (out-of-band), например через обмен сообщениями в IRC. Такой вариант зашифрованных leaseSet чем‑то напоминает подключение к Wi‑Fi по паролю. Только «входите» вы в скрытый сервис.
Если Encrypted LeaseSet использует стратегию Diffie-Hellman (DH), то ключи генерируются на стороне клиента. Когда клиент Diffie-Hellman подключается к адресу назначения с Encrypted LeaseSet, ему сначала нужно предварительно передать оператору сервера свои ключи. Затем оператор сервера решает, авторизовать ли DH‑клиента. Эта версия Encrypted LeaseSets чем-то похожа на SSH с файлом authorized_keys. Разве что входите вы не на сервер, а в скрытый сервис.
Зашифровав свой LeaseSet, вы не только лишаете неавторизованных пользователей возможности подключиться к вашему назначению, но и делаете невозможным для неавторизованных посетителей даже обнаружить реальное назначение скрытого сервиса I2P. Некоторые читатели, вероятно, уже придумали вариант использования для собственного зашифрованного LeaseSet.
Использование зашифрованных LeaseSets для безопасного доступа к консоли router
Как правило, чем более подробной информацией о вашем устройстве располагает сервис, тем опаснее делать этот сервис доступным из Интернета или, уж тем более, в сети скрытых сервисов вроде I2P. Если вы хотите открыть такой сервис, его необходимо защитить чем-то вроде пароля или, в случае I2P, гораздо более основательным и безопасным вариантом может быть зашифрованный LeaseSet (структура в I2P, описывающая входящие туннели).
Прежде чем продолжить, пожалуйста, прочтите и поймите, что если вы выполните следующую процедуру без Зашифрованного LeaseSet, вы подорвёте безопасность вашего I2P router. Не настраивайте доступ к консоли вашего I2P router по I2P без Зашифрованного LeaseSet. Кроме того, не делитесь ключами PSK (предварительно разделяемый ключ) вашего Зашифрованного LeaseSet с какими-либо устройствами, которые вы не контролируете.
Одна из таких служб, которую полезно предоставлять через I2P, но ТОЛЬКО с Encrypted LeaseSet, — это сама консоль I2P router. Предоставление доступа к консоли I2P router на одной машине через I2P с Encrypted LeaseSet позволяет другой машине с браузером администрировать удалённый экземпляр I2P. Я считаю это полезным для удалённого мониторинга моих обычных сервисов I2P. Это также можно использовать для мониторинга сервера, который долговременно раздаёт торрент, как способ доступа к I2PSnark.
Хотя на их объяснение требуется больше времени, настроить зашифрованный LeaseSet через интерфейс Hidden Services Manager несложно.
На «Сервере»
Начните с открытия Hidden Services Manager по адресу http://127.0.0.1:7657/i2ptunnelmgr и прокрутите вниз до раздела с названием “I2P Hidden Services.” Создайте новый скрытый сервис с хостом “127.0.0.1” и портом “7657”, используя эти “Tunnel Cryptography Options”, и сохраните скрытый сервис.
Затем выберите ваш новый tunnel на главной странице Менеджера скрытых сервисов. Параметры криптографии tunnel теперь должны включать ваш первый предварительно разделяемый ключ. Скопируйте это для следующего шага, а также зашифрованный адрес Base32 вашего tunnel.
На стороне «Клиента»
Теперь переключитесь на компьютер-клиент, который будет подключаться к скрытому сервису, и откройте Keyring Configuration по адресу http://127.0.0.1:7657/configkeyring, чтобы добавить ключи, подготовленные ранее. Сначала вставьте Base32 с сервера в поле с меткой: “Full destination, name, Base32, or hash.” Затем вставьте предварительно согласованный ключ (Pre-Shared Key) с сервера в поле “Encryption Key”. Нажмите «Save», и вы готовы безопасно посетить скрытый сервис с использованием зашифрованного LeaseSet.
Теперь вы готовы удалённо администрировать I2P
Как видите, I2P предоставляет администраторам скрытых сервисов уникальные возможности, которые позволяют им безопасно управлять своими I2P‑подключениями из любой точки мира. Другие зашифрованные leaseSets, которые я по той же причине держу на том же устройстве, указывают на сервер SSH, экземпляр Portainer, который я использую для управления своими контейнерами сервисов, и мой личный экземпляр NextCloud. С I2P по-настоящему приватный, всегда доступный самохостинг — достижимая цель; более того, я считаю, что это одна из задач, к которой мы особенно хорошо приспособлены благодаря зашифрованным leaseSets. С их помощью I2P может стать ключом к защите самохостинговой домашней автоматизации или просто стать основой нового, более приватного однорангового веба.