Существует и более дешевый способ решения проблемы посредника – сеть доверия. Предположим, перед вашим отъездом на задание вы с вашими боссами сидите в штаб-квартире за чашечкой кофе и обмениваетесь своими ключами. И никаких посредников! Вы абсолютно уверены, что полученные ключи – именно те, чьи надо, потому что приняли их от своего шефа из рук в руки.
До сих пор все идет хорошо. Но у этой затеи существует естественный предел. С каким количеством людей вы сможете встретиться лично и передать ключи? Сколько часов в день согласны посвятить нудному занятию, похожему на составление телефонного справочника? И много ли народу согласны уделить вам примерно такое же время?
Да, такой обмен ключами можно рассматривать как аналогию телефонным справочникам. Когда-то в мире существовали миллионы таких справочников, и если вы хотели куда-то позвонить, то должны были отыскать там нужный номер. Но среди номеров, которые вдруг понадобились вам, есть множество таких, которые вы знаете наизусть или можете у кого-то спросить. Даже сегодня, держа в руках сотовый телефон, я часто спрашиваю Джолу или Дэррила, есть ли у них нужный мне номер. Это гораздо быстрее и проще, чем искать его в сети, да и надежнее. Если Джолу отвечает «Есть», я ему доверяю, а заодно верю и в правильность этого номера. Это называется «транзитивное доверие» – доверие, которое расходится по сети наших отношений в обществе.
Примерно так же, только в бóльших масштабах, работает сеть доверия. Скажем, я встречаюсь с Джолу и получаю его ключ. Я могу повесить его на свою «связку» – набор ключей, который я подписал своим личным ключом. Это значит, что вы можете отпереть его моим открытым ключом и знать с уверенностью, что я – или тот, у кого есть мой ключ, – сказал: «Этот ключ принадлежит вон тому парню».
Так что я передаю вам свою «связку» и заявляю, что я действительно лично встречался с каждым из обладателей этих ключей и готов подтвердить их подлинность. Если вы мне верите, то смело берете ее и добавляете к своему набору. Потом вы тоже встречаетесь с кем-то еще и передаете свой набор. Список расширяется, и если вы доверяете следующему человеку в цепочке и он тоже доверяет своему преемнику, то все мы можем быть уверены, что находимся в безопасности.
Вот так я и пришел к мысли о тусовках с подпиской ключей. Выглядеть это будет именно так, как звучит: все собираются вместе, и каждый переписывает себе открытые ключи всех остальных. Мы с Дэррилом, обмениваясь ключами, представляли собой мини-вариант такой тусовки, правда всего с двумя скромными участниками. Но если народу соберется больше, то вы заложите основу сети доверия, и эта сеть начнет разрастаться. И каждый, кого вы внесли в свой набор ключей, выйдет в бескрайний мир, будет встречаться с новыми людьми, добавлять к списку все больше и больше имен. И вам не обязательно лично знакомиться с этими новобранцами, достаточно верить, что подписанный ключ, который вы получили от них, правилен.
Теперь вы понимаете, почему сеть доверия и тусовки с подпиской ключей прямо-таки созданы друг для друга.
– Надо предупредить всех, что это очень-очень закрытая тусовка, только по приглашениям, – сказал я. – Пусть не приводят с собой никого из посторонних, иначе их самих не пустят.
Джолу посмотрел на меня поверх кофейной чашки.
– Шутишь, что ли? Стоит это сказать, и они притащат с собой целые толпы друзей.
– Тьфу ты, – отозвался я. В эти дни я раз в неделю ночевал у Джолу, мы вместе обновляли код для индинета. В «Пигсплине» мне действительно заплатили за это кругленькую сумму. Ощущение было странноватое. Вот уж не думал, что когда-нибудь буду писать программы за деньги.
– Тогда что же нам делать? Мы хотим собрать только тех, кому полностью доверяем, и не желаем сообщать им, в чем дело, пока не соберем у всех ключи и не разошлем секретные письма.
Джолу отлаживал программу, а я смотрел ему через плечо. Раньше такую процедуру называли «экстремальным программированием», но это звучало чересчур громко. Теперь это называют просто «программированием». Вдвоем гораздо проще заметить ошибку, чем в одиночку. Как говорится, чем больше глаз, тем меньше проблем.
Работа продвигалась к концу, еще немного – и мы запустим новую сборку. Обновление происходило автоматически в фоновом режиме, так что пользователям не придется ничего делать, просто раз в неделю они будут обнаруживать, что программа стала еще лучше. До чего приятно было сознавать, что программой, которую я написал, уже завтра будут пользоваться сотни тысяч людей!
– Что делать? Понятия не имею. Наверно, смириться. Ничего тут не поделаешь.
Мне вспомнились золотые дни «Харадзюку Фан Мэднесс». В той игре часто попадались задания, требующие общения с большими группами.
– Ну ладно, делать нечего. Но давай хотя бы попробуем сохранить тайну. Скажи им, что разрешается привести самое большее одного гостя и это должен быть человек, которого они лично знают самое меньшее пять лет.
Джолу оторвался от экрана.