You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Alfis/docs/about_ru.md

14 KiB

Мотивация

На сегодняшний день Система Доменных Имён (DNS) является скорее единственной областью, которая не развивается с древних, по меркам Интернета, времён. Мы защитили трафик HTTP с помощью SSL/TLS, изобрели HTTP/2, скоро уже будет внедряться HTTP3 на основе UDP/QUIC, но DNS остаётся таким же, каким был 20 лет назад. Да, вы скажете, что появился и уже состарился DNSCrypt, уступив место таким протоколам как DNS-over-HTTPS, DNS-over-TLS, и даже DNS-over-QUIC. Но это ведь только протоколы доступа к рекурсивным серверам DNS, а не изменение самой системы!

А в чём проблема текущей системы доменов, спросите вы? Проблем довольно много, вот некоторые из них.

  1. Доменная система в данное время централизована. Каждая доменная зона принадлежит какой-то корпорации, либо государственному комитету по доменам. И управление этими зонами иногда превращается в нечто странное, как недавно было с доменной зоной .org. Ваш домен может быть экспроприирован, удалён, либо заблокирован по любой странной причине.

  2. Доменная система коммерциализирована. Да, за домены надо платить. Но проблема даже не в цене, хотя иногда она слишком завышена, но в том, что вы иногда даже не знаете сколько посредников участвуют в регистрации домена, и как формируется цена. Часто регистрация домена похожа на подсаживание на иглу - первая доза почти бесплатно, а через год выкатывают полную цену! То есть можно зарегистрировать домен на первый год за 1 доллар, а за продление потребуют 40!

  3. Ваш домен не конфиденциален. Да, у многих доменных зон существуют регулярно обновляемые списки недавно зарегистрированных доменов. Удивлены? Да, многие спамеры о них знают, и буквально через пару часов на адреса вроде webmaster@example.tld и admin@example.tld начинают пытаться слать рекламные письма.

  4. Кроме того, текущая система доменов не позволяет достаточно анонимно пользоваться анонимными (и не очень) сетями, вроде i2p, Tor и Yggdrasil.

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

Если я вас убедил, или хотя бы заинтересовал, читайте дальше.

Требования к новой системе

  • Использование системы должно быть быстрым, анонимным и общедоступным.
  • Создание и владение доменом должно быть анонимным.
  • Система не должна иметь централизованного управления.
  • Цензура информации в системе, то есть удаление или стороннее изменение, должны быть невозможны.
  • Искажение или исчезновение данных на некоторых серверах не должно влиять на консистентность данных на других узлах и на функционирование всей системы.
  • Старые, необновляемые и неиспользуемые домены должны освобождаться.
  • Система должна быть защищена от сквоттеров.

Решение ALFIS

ALFIS это ALternative Free Identity System. Альтернативная бесплатная система идентификаторов. Кроме доменов в будущем планируется добавить хранение сертификатов TLS, и каких-нибудь других ключей. Например, для PGP.

Данная система построена на базе технологии Blockchain, то есть системы блоков, связанных друг с другом криптографически. Никто не может подменить какой-то старый блок, не изменив все блоки после него.

Как работает этот блокчейн?

Чтобы внести какой-то блок в цепочку (или в сеть) нужно проделать некоторую работу, это называется PoW, или доказательством проделанной работы. В упрощённом виде это выглядит как перебор чисел и последовательное хэширование блока, пока хэш от блока не будет удовлетворять определённым условиям, прописанным в коде ПО. То есть, "регистрация домена" это выполнение работы и рассылка полученного блока другим узлам сети. Чтобы добиться одинакового состояния цепи на всех узлах, то есть консистентности данных, используется специальный алгоритм консенсуса.

Консенсус сети

Самое главное в консенсусе это однозначность определения того, какой блок из двух претендентов выбрать. То есть, если в сеть одновременно вышли несколько блоков с одинаковым индексом (высотой цепи), то когда они оба дойдут до любого узла, этот узел сможет однозначно выбрать тот, который "лучше" по критериям, прописанным в ПО. Таким образом, у большинства узлов (если они не модифицированы и не злонамеренны) будет самая длинная цепочка блоков.

Важные критерии отбора блоков:

  • Криптографическая консистентность и консистентность данных. Например, не допускаются блоки с временем/датой из далёкого будущего (дальше 1 минуты).
  • Наличие права на изменение существующих идентификаторов (доменов), либо на его создание, если его ещё нет.

Остальное в следующем разделе.

Защита от сквоттеров и злоумышленников

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

  1. Для доступа к системе нужна регистрация. Нет, не ввод e-mail или номера телефона на сайте админа, а майнинг пары ключей ed25519 для подписи своих блоков. Но ведь генерация пары ключей эллиптических кривых плёвое дело, скажете вы! Да, это так. Но у нас требуется такая пара ключей, чтобы хэш публичного ключа содержал определённое количество нулевых бит в самом начале. Да, как в блоках Биткоина. Если конкретно, то 23 нулевых бита, а алгоритм хэширования Blakeout (о нём дальше).

  2. Каждая пара ключей может добавлять один домен в земные сутки, чаще сеть не примет. Именно для этого и был введён майнинг ключей, так как если бороться со сквоттерами с помощью усложнения майнинга самих доменов, то сеть потеряет своё удобство, так как майнинга доменов надо будет ждать целую вечность. А так получается, что легитимный пользователь, единожды намайнивший ключи, довольно просто сможет создавать нужные ему домены. С интервалом в сутки.

  3. Начиная с 35-го блока включается режим подписей блоков. Каждый блок, содержащий транзакцию, то есть создающий или меняющий какой-нибудь домен, должен быть подписан группой узлов, обладающих блоками перед текущим блоком. Выбираются 7 публичных ключей из блоков блокчейна, владельцы которых должны подписать блок. Вычисление происходит исходя из последних 8 байт подписи подписываемого блока. Блок должен быть подписан минимум четырьмя валидаторами. То есть, после 25-го блока каждый "полный" блок подписывается 4 пустыми блоками из 7 возможных.

Дополнительные возможности

ALFIS содержит несколько особенностей, которых нет в обычном DNS.

  • Неограниченное количество доменных зон. Да, поддерживаемые зоны майнятся так же, как и домены, только с повышенной сложностью. И эти зоны становятся доступны каждому в сети. Но доменные зоны из списка IANA, OpenNIC, и других альтернативных систем, недоступны для добавления. Так что опасаться, что кто-то намайнит .com не следует.
  • У доменов есть поле contacts, которое позволит вам вписать свои контакты, ссылки на сайт или что-то подобное. Это как WHOIS, только по желанию.
  • Есть возможность указать нескольких владельцев домена для совместного управления.
  • Конечно же, есть передача домена другому владельцу.
  • Приватность доменов. Да, домены хранятся в виде двойного Sha256 хэша, и если вы не покажете ваш домен миру, то о нём никто не узнает (если забыть о брутфорсе).