From 858122c31dd2066b74e1e2b053c6a3e7aa79a522 Mon Sep 17 00:00:00 2001 From: Revertron Date: Mon, 12 Apr 2021 01:07:34 +0200 Subject: [PATCH] Added first version of about_ru.md --- docs/about_ru.md | 89 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 docs/about_ru.md diff --git a/docs/about_ru.md b/docs/about_ru.md new file mode 100644 index 0000000..a478de5 --- /dev/null +++ b/docs/about_ru.md @@ -0,0 +1,89 @@ +# Мотивация +На сегодняшний день Система Доменных Имён (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, но и она не лишена [большого числа недостатков](https://ru.wikipedia.org/wiki/DNSSEC#Проблемы_внедрения_и_недостатки), вроде централизованности, частичной незащищённости, увеличения трафика и накладных расходов. +Именно поэтому она внедряется очень медленно, только крупными компаниями. + +Если я вас убедил, или хотя бы заинтересовал, читайте дальше. + +# Требования к новой системе +* Использование системы должно быть быстрым, анонимным и общедоступным. +* Создание и владение доменом должно быть анонимным. +* Система не должна иметь централизованного управления. +* Цензура информации в системе, то есть удаление или стороннее изменение, должны быть невозможны. +* Искажение или исчезновение данных на некоторых серверах не должно влиять на консистентность данных на других узлах и на функционирование всей системы. +* Старые, необновляемые и неиспользуемые домены должны освобождаться. +* Система должна быть защищена от сквоттеров. + +# Решение ALFIS +ALFIS это ALternative Free Identity System. Альтернативная бесплатная система идентификаторов. Кроме доменов в будущем планируется добавить хранение сертификатов TLS, и каких-нибудь других ключей. Например, для PGP. + +Данная система построена на базе технологии Blockchain, то есть системы блоков, связанных друг с другом криптографически. Никто не может подменить какой-то старый блок, не изменив все блоки после него. + +## Как работает этот блокчейн? +Чтобы внести какой-то блок в цепочку (или в сеть) нужно проделать некоторую работу, это называется PoW, или доказательством проделанной работы. +В упрощённом виде это выглядит как перебор чисел и последовательное хэширование блока, пока хэш от блока не будет удовлетворять определённым условиям, прописанным в коде ПО. +То есть, "регистрация домена" это выполнение работы и рассылка полученного блока другим узлам сети. +Чтобы добиться одинакового состояния цепи на всех узлах, то есть консистентности данных, используется специальный алгоритм консенсуса. + +### Консенсус сети +Самое главное в консенсусе это однозначность определения того, какой блок из двух претендентов выбрать. +То есть, если в сеть одновременно вышли несколько блоков с одинаковым индексом (высотой цепи), +то когда они оба дойдут до любого узла, этот узел сможет однозначно выбрать тот, который "лучше" по критериям, прописанным в ПО. +Таким образом, у большинства узлов (если они не модифицированы и не злонамеренны) будет самая длинная цепочка блоков. + +Важные критерии отбора блоков: +* Криптографическая консистентность и консистентность данных. Например, не допускаются блоки с временем/датой из далёкого будущего (дальше 1 минуты). +* Наличие права на изменение существующих идентификаторов (доменов), либо на его создание, если его ещё нет. + +Остальное в следующем разделе. + +### Защита от сквоттеров и злоумышленников +В текущей системе доменных имён единственной защитой от регистрации огромного количества доменов являются деньги. +Если бы за домены не приходилось платить, то мы быстро пришли бы к отсутствию свободных доменов в любой зоне, и пришлось бы их выкупать у кибер-сквоттеров. +А так как эта система Free, что следует из названия, то надо заранее предпринимать меры противодействия, и закладывать их в сам механизм функционирования. + +1. Для доступа к системе нужна регистрация. +Нет, не ввод e-mail или номера телефона на сайте админа, а майнинг пары ключей `ed25519` для подписи своих блоков. +Но ведь генерация пары ключей эллиптических кривых плёвое дело, скажете вы! Да, это так. Но у нас требуется такая пара ключей, чтобы хэш публичного ключа содержал определённое количество нулевых бит в самом начале. +Да, как в блоках Биткоина. Если конкретно, то 23 нулевых бита, а алгоритм хэширования Blakeout (о нём дальше). + +2. Каждая пара ключей может добавлять один домен в земные сутки, чаще сеть не примет. Именно для этого и был введён майнинг ключей, так как если бороться со сквоттерами с помощью усложнения майнинга самих доменов, то сеть потеряет своё удобство, так как майнинга доменов надо будет ждать целую вечность. +А так получается, что легитимный пользователь, единожды намайнивший ключи, довольно просто сможет создавать нужные ему домены. С интервалом в сутки. + +3. Начиная с 35-го блока включается режим подписей блоков. +Каждый блок, содержащий транзакцию, то есть создающий или меняющий какой-нибудь домен, должен быть подписан группой ~~лиц по предварительному сговору~~ узлов, обладающих блоками перед текущим блоком. +Выбираются до 50 последних блоков перед текущим (подписываемым) блоком, среди них вычисляются 7 публичных ключей, владельцы которых должны подписать блок. +Вычисление происходит исходя из последних 4 байт хэша подписываемого блока. +Блок должен быть подписан минимум четырьмя валидаторами. +Этот алгоритм в скором времени будет расширен таким образом, что если блок не подписан нужным числом валидаторов, то через некоторое время количество валидаторов и требуемое количество подписей будет расти. +То есть, например, если через полчаса после блока нет четырёх нужных подписей, то каждый узел вычисляет валидаторов заново (по тому же алгоритму), но чуть больше, и требуется уже больше подписей. +Например, 5 из 9, потом 6 из 11. Таким образом любой злоумышленник, долго и упорно добивавшийся своего доминирования в сети, не сможет захватить 4 нужных подписи, и отказаться от подписывания, тем самым остановив систему. + +## Дополнительные возможности +ALFIS содержит несколько особенностей, которых нет в обычном DNS. +* Неограниченное количество доменных зон. Да, поддерживаемые зоны майнятся так же, как и домены, только с повышенной сложностью. +И эти зоны становятся доступны каждому в сети. +Но доменные зоны из списка IANA, OpenNIC, и других альтернативных систем, недоступны для добавления. +Так что опасаться, что кто-то намайнит `.com` не следует. +* У доменов есть поле `contacts`, которое позволит вам вписать свои контакты, ссылки на сайт или что-то подобное. Это как WHOIS, только по желанию. +* Есть возможность указать нескольких владельцев домена для совместного управления. +* Конечно же, есть передача домена другому владельцу. +* Приватность доменов. Да, домены хранятся в виде двойного Sha256 хэша, и если вы не покажете ваш домен миру, то о нём никто не узнает (если забыть о брутфорсе).