1Основна ідея цибулевої маршрутизації на Abacus
Onion routing — це транспортний рівень, який працює між вашим пристроєм і сторінкою входу на Abacus. Замість прямого з’єднання ваш трафік загортається в кілька шарів шифрування й проходить через незалежні вузли. Жоден окремий вузол не знає одночасно, звідки надійшов запит і що він містить, — саме такий розподіл знань захищає ваше місцеперебування й особу ще до того, як з’явиться будь-який інтерфейс маркету.
Одне з’єднання — три окремі завдання
Кожен візит до Abacus можна уявити як три послідовні кроки: побудова маршруту, запечатування запиту в шари та його передача від вузла до вузла. Кожне завдання важливе зі своєї причини, і кожне має чітке обмеження.
- Побудова маршрутуваш клієнт обирає кілька вузлів і виставляє їх у фіксованому порядку для цього кола
- Обгортання шарамиоригінальний запит шифрується окремо для кожного вузла — починаючи з останнього й закінчуючи першим
- Поетапне просуваннякожен вузол знімає один шар, дізнається лише адресу наступного вузла й передає решту далі
Маршрут обирає не маркет. Його будує ваш локальний onion-клієнт ще до того, як буде надіслано перший байт трафіку входу. Тобто пункт призначення ніколи не бачить вашу реальну мережеву адресу; він бачить лише останній вузол у колі.
- Зовнішній шар — читає перший вузол; містить лише адресу наступного вузла й наступний зашифрований шар
- Середні шари — читають проміжні вузли; кожен бачить один попередній і один наступний вузол
- Внутрішній шар — читає пункт призначення; містить сам запит, але жодної справжньої адреси відправника
Корисна аналогія — запечатаний конверт усередині іншого запечатаного конверта, повторений кілька разів. Кожен вузол розриває зовнішній конверт, дізнається адресу наступного вузла й передає далі все ще запечатаний внутрішній пакет. Зрештою маркет відкриває останній конверт і бачить запит — але не початкового відправника.
Чому це важливо ще до входу
Конструкція з розподілом знань означає, що навіть якщо за одним із вузлів спостерігають, сторонній не зможе пов’язати ваш пристрій зі сторінкою Abacus, яку ви відкриваєте. Перший вузол знає, що ви до нього під’єдналися, але не знає, до чого ви зрештою отримаєте доступ. Останній вузол бачить пункт призначення, але не вашу особу чи місцеперебування.
Цей процес завершується ще до того, як відобразиться форма входу. До моменту, коли ви бачите поле для імені користувача чи капчу, коло вже побудовано, усі шари запечатано, а перший запит уже зробив щонайменше один повний перехід ланцюжком вузлів. Маркет ніколи не знає вашого пристрою; вузли ніколи не знають, який маркет ви відвідуєте.
На будь-якому пристрої — телефоні, планшеті чи комп’ютері — діє той самий принцип шарів, але клієнт, який керує колом, потрібно постійно оновлювати; застарілий клієнт послаблює розділення між шарами.