Цибулева маршрутизація
Цибулева маршрутизація - це технологія анонімного обміну інформацією через комп'ютерну мережу. Повідомлення неодноразово шифруються і потім відсилаються через кілька мережевих вузлів, званих цибулевими маршрутизаторами. Кожен маршрутизатор видаляє шар шифрування, щоб відкрити трасувальні інструкції, і відіслати повідомлення на наступний маршрутизатор, де все повториться. Таким чином проміжні вузли не знають джерело, пункт призначення і зміст повідомлення.
Цибулева маршрутизація була розвинена Міхаелем Рідом, Паулем Сіверсоном і Девідом Голдшлагом, і запатентована Військово-морськими силами США в патенті Сполучених штатів No. 6266704 (1998). Станом на 2009 рік, анонімна мережа Tor є домінуючою технологією, яка використовує цибулеву маршрутизацію.
Можливості
Ідея цибулевої маршрутизації (ЦМ) полягає в тому, щоб зберегти анонімність відправника і одержувача повідомлення і забезпечити захист вмісту повідомлення під час його передачі по мережі.
Цибулева маршрутизація працює відповідно до принципу змішаних з'єднань Чаум: повідомлення передаються з джерела до місця призначення через послідовність проксі («цибулевих маршрутизаторів»), які перенаправляють повідомлення в непередбачуваному напрямку. Щоб уникнути «прослуховування» повідомлень зловмисником, між маршрутизаторами вони передаються в зашифрованому вигляді. Перевага цибулевої маршрутизації (і змішаних з'єднань в цілому) у тому, що відпадає необхідність довіри кожному маршрутизатору, який бере участь у передачі. Навіть якщо один або декілька з них виявляться зламаним, анонімне з'єднання все одно зможе бути встановлено. Це досягається за рахунок того, що кожен маршрутизатор у ЦМ-мережі приймає повідомлення, шифрує їх наново і передає їх на інший цибулевий маршрутизатор. Зловмисник, що має можливість проводити моніторинг всіх цибулевих маршрутизаторів в мережі, теоретично може простежити шлях повідомлення через мережу. Але завдання сильно ускладнюється, навіть якщо зловмисник має доступ до одного або кількох маршрутизаторів на шляху повідомлення.
Цибулева маршрутизація не надає гарантовану анонімність для відправника або одержувача від всіх потенційних прослуховуючих - локальний прослуховувач може переглядати все, що було відіслано або отримано з даного комп'ютера. Вона забезпечує високий ступінь незв'язності, ускладнюючи визначення адреси того, хто повідомлення посилає, і того, хто ці повідомлення приймає. Цибулева маршрутизація не дає повної гарантії секретності, а швидше є континуумом, де ступінь секретності в основному функція кількості задіяних маршрутизаторів проти кількості небезпечних, скомпрометованих або зловмисних маршрутизаторів.
Цибулини
Маршрутизація цибулі
Первинна інновація в цибулевії маршрутизації це концепція маршрутизації цибулини. Це інформаційні структури, які використовуються, щоб створити безліч шляхів, через які можна було б направити повідомлення. Щоб створити цибулину, маршрутизатор на початку передачі вибирає випадкове число цибулевих маршрутизаторів і генерує повідомлення для кожного, забезпечуючи їх симетричним ключем для розшифровки повідомлень і інструктуючи їх, який маршрутизатор буде наступним на шляху. Кожне з цих повідомлень, а також повідомлення, призначені для наступних маршрутизаторів, шифруються за допомогою відкритого ключа відповідного маршрутизатора. Це забезпечує шарувату структуру, в якій важливо розшифрувати всі зовнішні шари цибулі з метою досягнення внутрішнього шару.
Цибулева метафора описує концепцію такої структури даних. Так як кожен маршрутизатор отримує повідомлення, він «здирає» шар з цибулини, розшифровуючи за допомогою закритого ключа, виявляючи, таким чином, інструкції призначені для цього маршрутизатора, поряд з зашифрованими інструкціями для всіх маршрутизаторів розташованих далі по дорозі. Завдяки цій домовленості, повний зміст цибулі може бути виявлено, якщо воно пройде через кожен маршрутизатор в порядку, заданому нашарування.
Після того, як шлях був зазначений, він залишається для передачі даних протягом деякого періоду часу. Доки шлях активний, відправник може передати повідомлення рівної довжини, зашифровані симетричним ключем, заданим в цибулі, і вони будуть доставлені через шлях. Як тільки повідомлення залишає кожен маршрутизатор, воно знімає з себе шар, використовуючи симетричний ключ маршрутизатора, і тому не розпізнається, як таке ж повідомлення. Останній маршрутизатор знімає останній шар і відправляє повідомлення адресату.
Відповідні цибулини
Цибулева маршрутизація так само включає в себе технологію, що дозволяє одержувачам надсилати відповідь назад до відправника, без шкоди для ідентифікації кожної зі сторін. Це втілюється в концепції відповідних цибулин, вони схожі з звичайної маршрутизацією цибулі, за винятком того, що вони кодують шлях назад до відправника. Щоб почати двосторонню розмову, відправник генерує і цибулину і відповідну цибулину. Відповідна цибулина передається одержувачу, який використовує її, щоб почати поворотний шлях. Так як відповідна цибулина зашифрована по-іншому, воно надає малу кількість інформації, яка може викрити відправника - зловмисник повинен або зруйнувати шифрування з відкритим ключем, або ж наразити на небезпеку маршрутизатори на зворотному шляху.
Слабкості
У цибулевої маршрутизації є кілька слабкостей. З одного боку, вона не забезпечує захист проти аналізу синхронізації. Якщо зловмисник спостерігає за відносно слабко завантаженим цибулевим маршрутизатором, він може з'єднувати вхідні та вихідні повідомлення шляхом перегляду, як близько за часом вони були отримані і переправлені. Однак, це може бути подолано шляхом буферизації декількох повідомлень та передачі їх з використанням псевдовипадкового тимчасового алгоритму.
Мережі цибулевої маршрутизації так само уразливі до перехрещуються і попереднім атакам. Перехресні атаки базуються на тому, що цибулеві маршрутизатори періодично провалюються або залишають мережу, таким чином, будь-який шлях передачі, який продовжує функціонувати не може бути переданий через маршрутизатор, який відключений, так само не може залучати маршрутизатори, які приєдналися до мережі останнім часом. У попередній атаці зловмисник, який контролює цибулевий маршрутизатор відслідковує сесії, в той час, як вони проходять через декілька перетворень шляху (вони періодично обриваються і перебудовуються). Якщо зловмисник спостерігає за тією ж сесією під час кількох перетворень, він зможе побачити перший маршрутизатор у ланцюгу більш чітко, ніж будь-який інший.
Цибулева маршрутизація не в змозі захистити дані, що проходять через вихідні вузли, віддаючи операторові повний доступ до переданому змістом (через сніффінг), і тому цибулеві мережі не повинні використовуватися для передачі особистої інформації без використання кінцевої криптографії, такої як SSL. Шведському досліднику Дену Егерстаду, вдалося зібрати близько ста паролів від ящиків іноземних посольств, використовуючи сніффінг.