Популярные ресурсы i2p
Содержание:
- Чесночно-луковый хостинг: как поднять веб-ресурс, чтобы не отобрали домен
- Как поднять свой i2p-сайт(eepsite) на VDS(VPS) под Ubuntu(LAMP). Краткий инструктаж для новичков
- Импортозамещение в I2P: подпись по ГОСТ Р 34.10-2012
- История сети I2P
- I2P: Подпись и проверка подписи EdDSA
- I2P в России[править]
- Определяем тип входящего соединения
- I2P vs Tor
- Важно понять[править]
- Анонимные платежи: Dash или Bitcoin+Миксеры?
- I2P: Прозрачная реализация подписи EdDSA
- Начало работы
- Запуск мессенджера
- Разбираемся с форматами токенов на Ethereum
- Действия после установки
- Что делаем
- Список сервисов и интересных сайтов
- Помощь проекту I2P[править]
Чесночно-луковый хостинг: как поднять веб-ресурс, чтобы не отобрали домен
Дисклеймер: инструменты, описанные здесь абсолютно легальны. Это как нож: кто-то режет капусту в салат, кто-то использует для нападений. Поэтому пост посвящен исключительно инструментам, которые могут использоваться как в хороших, так и не очень целях.
Глобальный DNS — прекрасная вещь, пережившая не одно десятилетие. Но у него есть фундаментальная проблема — ваш домен могут просто разделегировать, если вдруг решат, что вы что-то нарушили. Ну или у кого-то с деньгами и связями будет на вас зуб. Историю того же torrents.ru все помнят. Если по каким-то причинам вы хотите убрать подобные риски — можно посмотреть в сторону оверлейных сетей, у которых просто нет регулятора, способного разделегировать доменное имя. Поэтому будем поднимать onion- и i2p-веб-ресурсы.
Как поднять свой i2p-сайт(eepsite) на VDS(VPS) под Ubuntu(LAMP). Краткий инструктаж для новичков
- Tutorial
Предыстория: намедни написалась книжка относительно нового государственного строя (Государство-домен), который ждет нас в близком будущем. А поскольку Роскомнадзор реагирует на подобные вещи неадекватно – решил завести под свою писанину сайт в приватной сети i2p. По ходу создания пришлось решать некоторые технические вопросы, которые я ниже и рассмотрю, пытаясь сэкономить ваше время, заодно и шпаргалка мне будет. Итак, имеется удаленный VPS под Ubuntu, и разместить сайт нужно именно на нем. Ибо, можно, конечно сделать его у себя на ноуте, но когда ноут выключен – сайт ведь недоступен (лично меня это неизменно раздражает в .i2p и .onion).
Далее я предполагаю, что ваш LAMP уже настроен, и нормально отдает контент в обычный интернет. Т.е. у вас на нем уже крутится пара-тройка обычных (не-i2p) сайтов.
Сначала ставим i2p на Ubuntu:
Конфигурируем i2p-роутер как постоянно работающий демон:
Импортозамещение в I2P: подпись по ГОСТ Р 34.10-2012
Эллиптическая криптография, обладая высокой стойкостью и широкой распространенностью, всегда вызывала много споров и спекуляций на предмет возможных закладок для разных кривых и схем подписи. При этом никто не смог привести пример подобной закладки или же доказать их отсутствие. Потому, в отличие от симметричной криптографии, где лидерство безоговорочно принадлежит AES, асимметричная криптография используется разных видов, в зависимости от предпочтений, технических или законодательных требований. Дополнительные типы подписей адресов в I2P предоставляют больший выбор и гибкость для приложений. ГОСТ поддерживается в openssl через EVP интерфейс, однако в версии 1.1 он исключен из стандартной поставки, кроме того существующая реализация предполагает хранение и передачу публичных ключей и подписей в формате DER, а I2P работает непосредственно с числами, определяя необходимые параметры из типа подписи.
История сети I2P
Проект I2P был начат в 2003 году для поддержки тех, кто заинтересован в новом нецензурируемом, анонимном средстве общения и распространения информации. I2P — это попытка создать защищённую децентрализованную анонимную сеть с малым временем отклика и свойствами автономности, отказоустойчивости и масштабируемости. Конечной задачей является способность функционировать в жёстких условиях, даже под давлением организаций, обладающих значительными финансовыми или политическими ресурсами. Все аспекты сети доступны в виде исходного кода и бесплатны. Это позволяет пользователям убедиться, что программное обеспечение делает именно то, что заявлено, и облегчает сторонним разработчикам возможность совершенствовать защиту сети от настойчивых попыток ограничить свободное общение.
Многие из команды разработчиков I2P ранее участвовали в проектах IIP (англ.)русск. и Freenet. Но, в отличие от последних, «Проект невидимый Интернет» — это анонимная одноранговая распределённая коммуникационная среда, с которой могут работать как любые традиционные сетевые службы и протоколы, такие как электронная почта, IRC, HTTP, Telnet, так и распределённые приложения вроде баз данных, Squid и DNS.
С середины 2013 года активно разрабатывается I2Pd, альтернативный клиент с открытым исходным кодом для сети i2p, написанный на языке программирования C++ с различиями в подходе к шифрованию, над ним трудится команда независимых разработчиков. Краткий перечень отличий от официального клиента: меньший размер приложения, полное отсутствие в официальной сборке сторонних программ, интеграция с приложениями, написанными на C++, экономичное использование ресурсов компьютера, а также более высокая скорость работы в сети.
I2P: Подпись и проверка подписи EdDSA
В предыдущей статье была рассмотрена реализация самой кривой Ed25519, операции сложения и умножения на число, восстановление второй координаты. В данной статье рассматриваются вопросы эффективного использования этих операций для электронной подписи сообщений и работы в I2P.
Алгоритм подписи EdDSA
В отличие от RSA, где секретный и публичный ключ можно использовать непосредственно, здесь приходится использовать более сложную схему и вводить некоторый дополнительный объект. EdDSA концептуально реализует алгоритм DSA, распространяя его на случай кривых. В качестве подписи выступает пара чисел (R,S), для EdDSA каждое длиной 32 байта, итого длина подписи — 64 байта. Подписываются не сами данные, а хэш он них. В качестве хэш-функции используется SHA512. Далее малым буквами будут обозначаться числа, а большими буквами — соответствующая точка на кривой, полученная умножением числа на базовую точку B.
I2P в России[править]
В настоящее время сеть I2P находится в зачаточном состоянии, с весьма небольшим количеством участников. Наибольшую популярность сеть получила в России и чуть меньшую в США. Также определённую популяность сеть получила в Германии, Франции и Украине. 13 апреля 2010 года был открыт первый русскоязычный i2p ресурс в формате wiki, чем положил начало существованию русскоязычного сегмента этой сети. Каждый желающий может помочь русскому сообществу сети I2P написанием инструкций или переводом документации на русский язык. Также на официальном форуме проекта была открыта русскоязычная ветка обсуждения.
О доступе к «Традиции» в сети I2P, см. Традиция:I2P.
Определяем тип входящего соединения
Для начала откроем порт для прослушивания и будем ждать новых соединений.
На новое соединение читаем первые 4 байта.
Берем список глаголов HTTP и сравниваем с ним наши 4 байта.
Теперь определяем с локальной ли машины происходит подключение, и если нет, то отвечаем баннером и «вешаем трубку».
Если же подключение локальное, то отвечаем файлом, соответствующим запросу.
Тут я решил написать обработку самостоятельно, хотя можно было бы воспользоваться имеющимся в стандартной библиотеке обработчиком.
Если же запрашивается путь , то пробуем установить websocket соединение.
Раз уж я собрал велосипед в обработке запросов файлов, то обработку ws соединения сделаю с помощью библиотеки gorilla/websocket.
Для этого создадим и реализуем в нем методы для соответствия интерфейсам и .
I2P vs Tor
Итак, что такое I2P? Технологию лучше всего воспринимать как дополнительный сетевой уровень, который работает поверх привычного протокола IP и предоставляет возможности для анонимной передачи данных. В I2P используются различные виды криптографии для безопасной передачи сообщений и многочисленные pear-to-pear туннели, на основе которых обеспечивается анонимность и отказоустойчивость системы. Мы уже не раз упоминали I2P на страницах журнала, но никогда не останавливались на ее работе подробно. Да и мало кто имел с ней дело. Куда большую известность в области анонимизации получила разработка Tor. Поэтому, рассказывая про то, как работает I2P, мы будем проводить некоторые сравнения этих двух технологий.
Обе системы, I2P и Tor, используют многоуровневую криптографию, чтобы посредники не могли дешифровать содержание передаваемых через них пакетов. Единственное, что известно для каждого узла — это следующее звено в цепочке передачи данных. В то время как Tor больше сфокусирован на сохранении инкогнито клиента во время серфинга в интернете, задача I2P заключается в создании анонимной сети, объединяющей подключившихся пользователей. И хотя возможность анонимного серфинга все-таки есть (с использованием специальных шлюзов, которые имеют доступ «наружу», о чем ты можешь прочитать во врезке), главное ее назначение — это анонимный хостинг сервисов.
Речь идет в первую очередь о размещении в сети веб-сайтов, которые в терминологии I2P называются eepsites. Это чем-то напоминает концепцию Hidden Services, доступную пользователям Tor, но анонимный хостинг в I2P работает значительно быстрее. Это уже не жалкая попытка, а действительно работающая технология для размещения сайтов, надежная и устойчивая.
В I2P нет никаких центральных серверов и нет привычных DNS-серверов, но зато используется распределенная хеш-таблица DHT (Distributed Hash Table), построенная на базе Kademlia. Такой подход позволяет устранить серьезную точку отказа системы. Мы все помним историю, когда в 2007 году в Китае файрволом был перекрыт доступ к главной директории сервисов Tor. То, что I2P опирается на пиринговую технологию для обмена информацией о роутинге, позволяет избежать подобных проблем. Система, с помощью которой пользователи I2P получают информацию друг о друге, называется NetDB. Каждый участник сети является роутером, через который передается транзитный трафик, поэтому, вообще говоря, в системе нет какой-либо заметной разницы между сервером и обычным клиентом.
Важно понять[править]
Сеть I2P никоим образом не имеет отношения к проекту Tor — это две совершенно разные технологии. Tor это скорее цепочка прокси серверов, тогда как I2P это полноценная сеть…
Сеть I2P это практически тот же самый интернет, к которому все привыкли. Там тоже есть сайты, торренты, почта, и прочее. Только всё это анонимно и зашифровано от посторонних, а также не поддаётся контролю третьими сторонами. То есть там нет цензуры, нет каких-либо ограничений на передаваемую информацию. И нет возможности отследить — ЧТО именно вы просматриваете в этом, новом интернете, какие сайты посещаете, что качаете, какой ваш круг интересов
В конце-концов, это здорово бережёт нервы, даже если вам, по большому счёту, нечего скрывать.
Так же важно помнить что в I2P сети нет привычных DNS серверов и сеть абсолютно не зависит от обычных DNS и каких либо других серверов, что приводит к невозможности уничтожения, блокирования и фильтрации сети — сеть I2P будет существовать и функционировать пока на планете останутся хотя бы два компьютера в сети. Так же отсутствие DNS серверов и использование DHT Kademlia механизма распределения имен в сети, дает возможность создания любым пользователем сети I2P своего сайта, проекта, торрент трекера и т. д
без необходимости где-то регистрироватся, оплачивать кому либо доменное имя или ждать чьего то разрешения — каждый человек волен абсолютно бесплатно создавать любые сайты при этом узнать место нажохдение сервера и человека практически не возможно.
Также стоит отметить что каждый человек который присоединился к сети I2P увеличивает её надежность, анонимность и скорость.
Чтобы попасть в сеть I2P нужно всего лишь установить на своем компьютере программу-маршрутизатор, которая будет расшифровывать/зашифровывать весь трафик и перенаправлять его в сеть I2P, настраивать программу-маршрутизатор в большинстве случаев не требуется — она уже по умолчанию настроена оптимальным образом, так же интерфейс программы-маршрутизатора полностью переведен на русский язык.
Анонимные платежи: Dash или Bitcoin+Миксеры?
Иногда важно сохранять не только свою личную анонимность, но также анонимность своих финансов. Когда вашим деньгам требуется анонимность — ошибки недопустимы.ПОТРЕБНОСТЬ
Правительства многих стран результативно работают над установлением тотального мониторинга и контроля за движением денег как своих граждан, так и граждан других государств
Общественному мнению навязывается стереотип: «Если кто-то что-то скрывает, значит наверняка он — преступник, уклоняется от уплаты налогов, спонсирует терроризм или замешан в прочих грехах»
В некоторых странах использование наличных, драгметаллов, криптовалют, офшоров и других инструментов, затрудняющих финансовый мониторинг, автоматически наводит на вас подозрения.
Но здравый смысл подсказывает людям, что выражение «Деньги любят тишину» связано не с криминалом, а основано на элементарной бытовой осторожности. Никто в здравом уме не кричит о том, сколько у него в кармане денег, не пишет везде о размере своих доходов и не выставляет всем напоказ банковскую выписку с перечнем операций по карте.
Организации также стараются не афишировать подробности своей финансовой деятельности, не публикуют списки клиентов с детализацией их заказов, ведь это как минимум расстроит клиентов и привлечет недоброжелателей (включая конкурентов).
И если граждане высокоразвитых стран могут хотя бы надеяться, что финансовая слежка за ними ведется в неких национальных интересах, то в странах с высоким уровнем коррупции люди обоснованно опасаются того, что их приватная информация с высокой вероятностью попадет к людям с враждебными намерениями.
Хорошо, я не буду углубляться в философию, а просто констатирую тот факт, что у большинства людей и бизнесов имеется желание (а зачастую — необходимость) сохранить анонимность своих финансов
И причина этого не в том, что они замышляют что-то плохое, а в том, что они сами не хотят стать жертвами чужих злонамеренных или преступных планов.
I2P: Прозрачная реализация подписи EdDSA
В последнее время все большую популярность набирает электронная подпись Ed25519, основанная на разновидности эллиптической кривой, предложенной Бернштейном. По мере увеличения числа узлов I2P с данным видом подписи возникла необходимость ее поддержки в своей реализации I2P, поскольку Ed25519 не входит в состав популярных криптографических библиотек. Как правило используются разновидности ref10 из библиотеки SUPERCOP, реализованной самим Бернштейном на ассемблере, и затем портированной на другие языки. Данная реализация работает хорошо и быстро, однако у нее есть главный недостаток — она непонятна. Действительно, если заглянуть в исходный код, то можно увидеть большое количество однотипных строк, оперирующих с множеством «магических» чисел, понять же, что они означают, без углубления в теорию не представляется возможным. Целью данной статьи является математически прозрачная реализация Ed22519, используя лишь стандартные операции с большими числами, присутствующие в любой криптографической библиотеке, со скоростью работы, достаточной для практического использования в I2P.
Начало работы
Our reseed coordinator is «zzz» and he may be contacted at zzz at mail.i2p or zzz at i2pmail.org.
Unfortunately, he is not generally on IRC. The reseed setup is somewhat specialized, and you should direct most questions to him.
For actual implementation, details below. We have one recommended reseed solution:
Реализация на Go, которая включает в себя web-сервер и все необходимые скрипты. Это рекомендуемый способ.
For further information, read the information at the following links, and then contact zzz.
Thank you!
- zzz.i2p thread
- zzz.i2p thread
- Go reseed server source on github
- SU3 Reseed File Format Specification
Запуск мессенджера
Установка golang
Конечно, сначала нужно установить go.
Для этого настоятельно рекомендую воспользоваться инструкцией golang.org/doc/install.
Упростил инструкцию до bash скрипта
Загрузка приложения в GOPATH
Так уж устроен go, что все библиотеки и даже ваши проекты должны лежать в так называемом GOPATH.
По-умолчанию это $HOME/go. Go позволяет стянуть исходники из публичного репозитория простой командой:
Теперь в вашем каталоге появится исходник из ветки master
Установка npm и сборка фронта
Как писал выше, наш GUI — веб-приложение с фронтом на ReactJs, поэтому фронт ещё нужно собрать.
Nodejs + npm — тут как обычно.
На всякий случай вот инструкция для убунту
Теперь стандартно запускаем сборку фронта
Фронт готов!
Запуск
Перейдем обратно в корень и запустим пир нашего мессенджера.
При запуске можем указать имя своего пира, порт, файл с адресами других пиров и флаг указывающий запускать ли WebView.
По-умолчанию используется в качестве имени пира и порт 35035.
Итак, запускаем и чатимся с друзьями по локальной сети.
Разбираемся с форматами токенов на Ethereum
Из песочницы
Со временем блокчейн всё сильнее проникает в нашу жизнь, и появляется необходимость понимать основные его технологии, в том числе работу децентрализованных приложений (dApps). Большинство dApps в данный момент создано на Ethereum, возможности которого гораздо более гибкие, чем выпуск привычных ERC20 токенов.
Зачем нужны стандарты
Внутри смарт-контракта (что это?) можно прописать уникальную механику токена. Он будет работать, но другие разработчики (и смарт-контракты) не смогут обращаться к нему с помощью универсальной логики.
На помощь приходят стандарты. Зная способы взаимодействия с ними, создатели других dApps заложили в код всё необходимое для работы с токеном на опредёленном стандарте.
Действия после установки
«по требованию» используя скрипт i2prouter. Просто запустите «» из командной строки
(Важно: НЕ НАДО использовать
sudo или запускать его от root!)
«по требованию» без java service wrapper
(он нужен для non-Linux/non-x86 систем), запуская «».
(Важно: НЕ НАДО
использовать sudo или запускать от root!)
как сервис, который автоматически стартует при запуске системы, даже
до логина пользователя. Сервис может быть активирован командой «» от root или с помошью sudo
Этот вариан рекомендован для использования.
При первой инсталляции не забудьте поправить настройки NAT/firewall
если это возможно. Порты, которые нужно пробросить указаны на
странице конфигурации сетив консоли маршрутизатора. Если вам нужно разобраться, что такое проброс портов,
про это можно прочитать на portforward.com.
Проверьте и поправьте настройки полосы пропускания на
странице настроек,
так как значения по умолчанию 96 KB/s down / 40 KB/s up довольно консервативны.
Если вы хотите посещать сайты в I2P с помощью своего браузера, обратите внимание на инструкцию по настройке прокси для браузера
Что делаем
Пир (peer) — уникальный экземпляр мессенджера.
Наш мессенджер должен уметь:
- Находить соседние пиры
- Устанавливать соединение с другими пирами
- Шифровать обмен данными с пирами
- Принимать сообщения от пользователя
- Показывать сообщения пользователю
Чтобы задачку сделать чуть интереснее, давайте сделаем так, чтобы все это проходило через один сетевой порт.
Если дернуть этот порт по HTTP, то получим реактовское приложение, которое дернет этот же порт, установив web socket соединение.
Если дергать порт по HTTP не с локальной машины, то показываем баннер.
Если к этому порту подключается другой пир, то происходит установка постоянного соединения со сквозным (end-to-end) шифрованием.
Список сервисов и интересных сайтов
В клиент I2P, изначально, входит много полезных сервисов:
http://localhost:7657/susimail/susimail — электронная почта, на которую кто угодно сможет прислать анонимное сообщение.
http://localhost:7657/i2psnark/ — анонимный торрент-клиент с поддержкой magnet-ссылок.
http://127.0.0.1:7658/help/ — инструкция по настройке собственного сайта в I2P. К слову, это гораздо проще, чем в обычном интернете. I2P выступает для них сервером и хранит базы данных на локальном компьютере, а зарегистрировать своему сайту имя можно бесплатно.
http://rus.i2p/wiki/Создание_I2P_Сайта — ещё одна инструкция.
http://echelon.i2p — здесь вы найдете ещё множество сервисов с инструкциями по их настройке, в том числе
http://echelon.i2p/qti2pmessenger/ — мессенджер, аналог ICQ.
http://inr.i2p/ — уже упомянутый «доменный-регистратор», полезный при поиске сайтов в сети.
http://rus.i2p/ — очень подробная вики о сети.
http://i2pwiki.i2p/ — официальная англоязычная вики.
http://flibusta.i2p/ — онлайн-библиотека «Флибуста».
http://freezone.i2p/ — русскоязычный сервис ведения блогов.
http://onelon.i2p/ — русскоязычная социальная сеть с упором на ведение блогов и новостей.
http://lenta.i2p/ — зеркало «Лента.ру» в i2p.
http://i2p-projekt.i2p/ru/faq — здесь вы найдете ответы на большинство вопросов, связанных с i2p.
http://forum.i2p/ — официальный внутрисетевой форум.
Помощь проекту I2P[править]
Чтобы помочь проекту, не стесняйтесь заходить на irc-канал #i2p (сеть irc.freenode.net или внутри I2P на сервере irc.freshcoffee.i2p или irc.postman.i2p).
Нам всегда пригодится помощь в очень многих областях, так что вам не обязательно уметь программировать для участия в проекте. Например нам всегда нужны желающие и помощь в следующем:
- Расскажите о нас! — Расскажите знакомым про I2P, дайте ссылку на проект в форумном обсуждении или в комментариях к статье, прорекламируйте в своём блоге.
- Тестирование — Обновляйтесь до текущего билда из monotone-репозитория и сообщайте обо всех обнаруженных ошибках на канале #i2p или в багтрекере.
- Документация — Исправьте устаревший текст, дополните незавершенные инструкции, добавьте перевод на свой язык.
- Иллюстрации — На сайте нам пригодятся новые иллюстрации и доработки/исправления в уже существующих.
- Контент — Заведите собственный I2P-сайт! Добавьте на него что-нибудь разумное, доброе, вечное. И при этом полезное для других.
- Сервисы — Поднимите какой-нибудь сервис на своем I2P-сайте. Например: прокси-сервер, форум, трекер, адресную книгу, поисковую машину, монитор I2P-сайтов… Многое из перечисленного не так уж и сложно сделать.
- Приложения — Создавайте новые I2P-программы или переделайте уже существующие под работу через I2P-сеть. Несколько методических рекомендаций и список нереализованных задумок можно посмотреть на странице Application Development Guide.
- Разработка — Если Вы Java-программист, то перед Вами широкий фронт работ. Для начала проверьте багтрекер на наличие открытых тикетов или загляните в TODO-список на форуме zzz.i2p. Подробнее смотрите на странице New Developer’s Guide
- Поиск уязвимостей — Проанализируйте или протестируйте код на слабые места. Требуют внимания как уязвимости, касающиеся анонимности, так и DoS-уязвимости, и прочие потенциальные угрозы.