За съжаление така съобщението няма да е тайна. Защото общественият ти ключ е достояние на всички. (Или трябва да бъде, освен ако не искаш да говориш със съвсем малко хора.) Всеки, който прихване съобщението, ще може да го прочете. Никой няма да може да го промени, но ако не искаш другите да знаят какво изпращаш, ти трябва по-добро решение.
Затова вместо да го кодираш само с личния си ключ, използваш и обществения на шефа си. Така е заключено два пъти. Първата ключалка, общественият ключ на шефа, се отваря само с неговия личен. Втората, твоят личен, се отваря само с твоя обществен. Когато шефовете ти получат съобщението и го разшифроват, могат да са сигурни, че ти си го написал и че само те могат да го прочетат.
Много е готино. Щом го открих, незабавно размених ключове с Дарил и често си изпращахме топсекретни съобщения къде ще се срещнем след училище и дали Ван някога ще го забележи.
Ако искате да вникнете в сигурността, трябва да обмислите най-параноидните възможности. Например какво ще стане, ако те заблудя, че моят обществен ключ е общественият ключ на шефовете ти? Ще криптираш съобщението с твоя личен ключ и моят обществен. Аз мога да го прочета, да го криптирам с истинския ключ на шефовете ти и да го изпратя. Никой няма да заподозре, че съм успял да го прочета.
А аз ще стоя в средата, като тлъст паяк в мрежата си, и ще събирам всичките ти тайни.
Най-лесният начин да се оправи това е като рекламираш широко обществения си ключ. Така работата на човека-в-средата става много трудна. Но да направиш нещо добре известно е точно толкова трудно, колкото да го опазиш в тайна. Помислете само. Колко милиарди се харчат за реклама на шампоани и други боклуци, за да станат известни на хората?
Има по-евтин начин да се преодолее човекът-в-средата. Мрежа на доверие. Да речем, преди да тръгнеш от щаба с шефовете си, сядате на кафе и действително си разменяте ключове. Край с човека-в-средата! Абсолютно сигурен си кои са ключовете, защото си ги получил лично.
Дотук добре. Но това си има естествен лимит. С колко хора можеш да се видиш лично и да обмените ключове? Колко часа на ден искаш да отделиш на създаването на този вид телефонен указател? Колко от тези хора ще искат да отделят същото време като теб?
Едно време светът е бил пълен с указатели и когато ти е трябвал даден номер, си го търсел там. Но много от нужните номера или помниш наизуст, или питаш някого. Дори днес, с моя клетъчен телефон, бих питал Хулу или Дарил, ако търся някой номер. По-лесно и по-бързо е, отколкото да го търся сам. А и по-надеждно. Аз вярвам на Хулу, така че вярвам и на номера. Това се нарича транзитно доверие. Доверие, което се движи по мрежата на социалните взаимоотношения.
Мрежата на доверие е по-голяма версия на същото. Да речем, че се срещна с Хулу и взема ключа му. Добавям го към моята „халка“ — списък от ключове, който е заключен с личния ми код. Тоест можеш да го отвориш с обществения ми и да знаеш, че аз съм го изготвил.
Така, аз ти давам халката си и ако ти ми вярваш, можеш да я добавиш към твоята. След това срещаш някой друг и му предаваш цялата халка. Ако всеки има доверие на останалите по веригата, вие сте в безопасност.
Така стигаме до партитата за обмяна на ключове. Те са точно партита, на които хората се събират, за да обменят ключове. Ние с Дарил си бяхме направили подобно парти, макар и само с двама участници. Но с повече хора може да създадеш мрежа на доверие и оттам тя да се разшири. Не е нужно да се срещаш с новите хора, просто трябва да се довериш, че ключовете, които си получил от мрежата, са валидни.
Така че мрежата на доверие и партитата са неразделни като фъстъчено масло и шоколад.
— Кажи им, че е суперчастно парти, само с покани — обясних аз. — Да не водят никого, или няма да бъдат пуснати.
Хулу ме погледна над кафето си.
— Шегуваш се, нали? Ако им кажа това, задължително ще домъкнат приятели.
— Уф! — Напоследък прекарвах поне една нощ седмично у тях, ъпдейтвахме кода на независимата мрежа. „Пигсплийн“ ми плащаха за това, което беше странно. Не бях предполагал, че ще ми плащат да програмирам.
— Какво ще правим? Искаме само хора, на които вярваме, и не можем да им кажем защо, преди да съберем ключовете, за да комуникираме тайно.
Хулу отстраняваше бъгове, а аз гледах над рамото му. Това се нарича екстремно програмиране, но името е объркващо, затова го наричаме само програмиране. Двама души забелязват бъговете много по-лесно от един.