Kad Network
Kad Network (Kad) — це оверлейна файлообмінна P2P мережа нового покоління, реалізація протоколу однорангового зв'язку Kademlia (Кадемлія). Різновид розподіленої геш-таблиці (DHT) на основі протоколу UDP, «Kademlia» є природним продовженням та розвитком мережі ED2K.[1] Його відмінною особливістю є використання XOR у якості метрики.[2]
Мережа Kad — повністю децентралізована (незалежна від центральних серверів) файлообмінна мережа, в якій кожен клієнт користувача також є вузлом, через який проходять пошукові запити та службова інформація. Усі клієнти користувачів у мережі також є серверами і мають однаковий ранг (звідси значення «однорангової мережі»).
Мережа Kad складається з декількох взаємодіючих вузлів, які взаємодіють один з одним і зберігають інформацію один для одного. Кожен вузол має NodeID, квазіунікальний двійковий номер, який ідентифікує його в мережі. Важливо, щоб ідентифікатори вузлів були рівномірно розподілені; на це спирається дизайн мережі. Хоча протокол цього не вимагає, є можливі переваги в тому, що вузол використовує один і той же NodeID щоразу, коли він підключається до мережі, замість того, щоб генерувати новий, залежний від сеансу NodeID.[3]
Кожен вузол відповідає за зберігання різних типів даних. По-перше, кожен вузол зберігає вихідну карту, тобто інформацію про учасників мережі, які готові поділитися певним файлом. Карта являє собою хеш файлу в якості ключа і список джерел в якості значення. Вихідна карта вузла містить контактну інформацію про хеші всіх файлів, хеш яких відповідає ідентифікатору вузла або близький до нього (з використанням метрики XOR). Наприклад, за допомогою хешу файлу можна знайти вузли з ID, близькими до хешу файлу і запросити у них список джерел для завантаження файлу. По-друге, якщо немає хешу файлу, можна шукати його за ключовими словами. Для цього ім'я опублікованого файлу розбивається на кілька послідовних слів, і кожне слово хешується окремо. Для пошуку за цими ключовими словами у кожного вузла є друга карта, яка містить хеші слів, близьких до ID вузла в якості ключів і хеші файлів та їх імена в якості значень.[4]
Мережа Kad вразлива до атаки Сивілли[5][6] та зараження руткітом TDSS, який створює ботнети.[7]
Існує багато відгалужень мережі Кадемлія. eDonkey і eMule, зокрема, користуються величезним успіхом у користувачів. Однак їх реалізації досить сильно відрізняються від оригінального протоколу.[8]
Існує також відгалуження мережі Кадемлія наступного покоління під назвою NeoKad[9], метою якого є розвиток гнучкості та анонімності. Мережа загального призначення NeoKad може обробляти довільні корисні навантаження, це досягається за рахунок запуску скриптового движка на кожному вузлі і надання скриптам можливості обробляти корисне навантаження, при необхідності сценарії відправляються разом із запитом на пошук. Маршрутизація в NeoKad реалізована таким чином, щоб забезпечити анонімність і правдоподібне заперечення будь-якого конкретного вузла.[10] Як і, наприклад, у випадку з IPv4 та IPv6, коли мережа розділена на 3 групи вузлів: ті, що мають лише IPv4, ті, що мають IPv4 та IPv6, і ті, що мають лише IPv6, конструкція рекурсивного пошуку дозволяє будь-якому вузлу спілкуватися з будь-яким іншим вузлом, навіть якщо пряме з'єднання неможливо встановити. Очевидним розширенням було додавання можливостей маршрутизації пакетів, щоб за допомогою NeoKad ви могли не тільки публікувати дані в мережі, а потім отримувати їх, але й створювати надійні потокові тунелі між двома анонімними об'єктами. Звичайно, всі дані шифруються за допомогою надійного наскрізного шифрування, і на додаток до цього існує також рівень затуманення, який запобігає фільтруванню на рівні інтернет-провайдера.[11][12]
Код протоколу Kademlia використовується в наступному програмному забезпеченні:
- BitTorrent — у протоколі BitTorrent.[13]
- Етеріум — платформа для створення децентралізованих сервісів на базі блокчейна.
- IPFS — в одноранговому гіпермедійному протоколі зв'язку.
- Overnet — однорангова файлообмінна мережа.
- aMule, iMule (анонімний клієнт), eMule (починаючи з версії 0.40, вдосконалена версія протоколу Kad 2.0 бере початок з версії 0.48a), MLDonkey , Tribler, Vuze (з підтримкою анонімного обміну даними) — у багатьох вільних BitTorrent-клієнтах для файлообмінних мереж.
- RevConnect — в клієнті мережі Direct Connect, згодом — в StrongDC++ і його клонах (не афішується, але є).[14]
- ↑ FAQ eD2k-Kademlia-ru - AMule Project FAQ. web.archive.org. 23 квітня 2012. Процитовано 19 березня 2025.
- ↑ Kademlia. xlattice.sourceforge.net. Процитовано 19 березня 2025.
- ↑ Kademlia: A Design Specification. xlattice.sourceforge.net. Процитовано 18 березня 2025.
- ↑ Як працює пошук у Kad Network. Хабр (рос.). 22 липня 2013. Процитовано 19 березня 2025.
- ↑ Peng Wang, James Tyra, Eric Chan-Tin, Tyson Malchow, Denis Foo Kune, Nicholas Hopper, Yongdae Kim (22 вересня 2008). Attacking the Kad network (PDF) (вид. Proceedings of the 4th international conference on Security and privacy in communication netowrks). New York, NY, USA: Association for Computing Machinery. с. 1–10. doi:10.1145/1460877.1460907. ISBN 978-1-60558-241-2. Архів оригіналу за 11 березня 2014.
- ↑ Evaluation of Sybil Attacks Protection Schemes in KAD. ResearchGate GmbH. 2009. Архів оригіналу за 20 марта 2025.
- ↑ TDL4 – Top Bot. securelist.com (амер.). 27 червня 2011. Процитовано 20 березня 2025.
- ↑ Kademlia. xlattice.sourceforge.net. Процитовано 19 березня 2025.
- ↑ NeoLoader, NeoLoader - Next Feneration P2P File Sharing, 18 березня 2025, процитовано 21 березня 2025
- ↑ NeoLoader — Full Feature List. neoloader.com. Процитовано 21 березня 2025.
- ↑ NeoLoader — NeoKad Network. neoloader.com. Процитовано 21 березня 2025.
- ↑ NeoLoader. neoloader.com. Процитовано 21 березня 2025.
- ↑ bep_0005.rst_post. www.bittorrent.org. Процитовано 19 березня 2025.
- ↑ RevConnect. web.archive.org. 9 грудня 2015. Процитовано 19 березня 2025.