Pull to refresh

Распределённая система имён в Интернете

Reading time 3 min
Views 2.2K
Это досужие рассуждения, никакого кода или даже описания протокола взаимодействия у меня нет. Оригинальное исследование в чистом виде, как это называют в Википедии.

… Нам нужна система идентификации сайта, такая, чтобы мы не зависели от воли третьих лиц при определении домена. Точнее, чтобы уйти от терминологии DNS, просто имени. И связанного с ним множества ресурсных записей.

Очевидно, что достигается это цифровой подписью под именем. В этом случае чужие изменения в RR зоны не будут приняты. Вопрос только в том, что считать достоверной подписью.

Тут, мне кажется, стоит подумать о системе GPG/PGP, как менее централизованной (напомню, есть две модели управления ключами — PKI и GPG, PKI предусматривает бинарность доверия — либо доверяем в пределах политики удостоверяющего центра, либо нет). У человека есть набор корневых сертификатов, которым он доверяет. Через них удостоверяются другие УЦ и предъявители сертификатов.

Модель GPG подразумевает иной подход. Вместо множества авторитетных УЦ, которым доверяет пользователь (что в реалиях современных браузеров означает, что за пользоваеля решает создатель браузера), у пользователя есть лишь один абсолютный центр доверия — это он сам. Если он подписал, что А=Б, то мы можем точно считать, что А=Б. (в нашем вопросе, это означает, что Б может подписывать данные А, и что это правда). У нас есть люди (знакомые, службы в интернете и т.д.) с разным уровнем доверия к их подписям, и итоговое доверие вычисляется по подписи.

Например, закадычный приятель, который точно не будет подписывать ахинею, говорит, что А=Б, наверное, это так. Если же большинство из френдов считают, что thepiratebay.org=194.71.107.15, то наверное, это так. Как бы нас не убеждал в обратном гугль (с уровнем доверия 5 из 10).

Таким образом, система имён выглядит следующим образом: человек заходит на сайт (оставляем в стороне то, как он узнал первое имя, это проблема курицы и яйца, и она была решена даже при запуске DNS, не говоря уже про возможность использовать DNS как kickstart для новой системы), видит ссылку. Ссылка ссылается на имя и хэш подписи.

Если же человек хочет зайти на нужный ему ресурс, то он (человек и его воплощающий браузер) проверяет по «базам друзей» какой хеш наиболее авторитетен для указанного имени. Если есть консенсус, то, человек идёт на указанный сайт. Если есть разногласия, то появляется список:
vodka:

Homepage about homemaid vodka: 7.3 балла (миша — 3 балла, natsu 3 балла, google 1.3 балла), PGP key ABC687A687684CFA3…
vodka: best site about vodka, site selling for vodka, vodka for selling. 1.31 балла (yandex 1.3 балла, kibersquater 0 баллов, sellingdomains 0 баллов, somerandomcontact — 0.01 балла).
vodka: under construction 0.1 балла (вася пупкин 0.1 балла).


Если человек считает, что именно это имя соответствует имени сайта, то он подписывает подпись на записе о сайе. И с этого момента никакие усилия RIAA, USA, кровавой гэбни и т.д. не сделают так, чтобы подпись была инвалидирована. Если сайт меняет адреса, то он переподписывает новую запись (и мы, доверяя Б в вопросе подписания сайта об «А» автоматом доверяем новой записи).

Если мы потеряли наш список доверия, мы можем восстановить его по контактам знакомых (из кейринга), с большой вероятностью у людей одного круга будет одинаковое мнение о том, какой сайт есть кто.

Дополнительно, небольшие баллы накидываются за регулярные посещения сайта (если посещаем, значит, это оно).

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

Понятно, что в этой модели есть масса вопросов:
  • Где брать подписанные данные? (гипотеза, подобие p2p или keyring'ов)
  • Раскол интернета (одни считают, что ПравительствоРФ — это клёвый сайт с голыми тётками, вторые — что унылый сайт с престарелыми мужиками в галстуках).
  • Мириады возможностей компрометации ключей. Введеление в заблуждение, захват чужих ключей для воздействия на соседей (посмотрите что происходит с контактлистами аськи).
  • Утеря ключа владельцем сайта означает утрату сайта в ближайшей перспективе.
  • Усложнение процесса сёрфинга (нужно выбирать среди (возможно) равнозначных по весу вариантов.
Tags:
Hubs:
+21
Comments 73
Comments Comments 73

Articles