Freenet
Ця стаття є сирим перекладом з іншої мови. Можливо, вона створена за допомогою машинного перекладу або перекладачем, який недостатньо володіє обома мовами. (січень 2012) |
Тип | анонімність, Peer to peer, Friend to friend |
---|---|
Автор | Arne Babenhauserheided[1] |
Розробник | The Freenet Project[2] |
Перший випуск | March, 2000 |
Платформа | Java |
Операційна система | Cross-platform |
Мова програмування | Java |
Доступні мови | English, French, German, Italian, Swedish, Dutch |
Ліцензія | GNU General Public License |
Репозиторій | github.com/hyphanet/fred |
Вебсайт | freenetproject.org |
цензури розподілене сховище даних, первісно розроблене Ian Clarke[en].[3] Згідно з Clarke, метою Freenet є забезпечення свободи слова за допомогою peer-to-peer мережі з суворим захистом анонімності; частиною цієї ідеології є те, що Freenet — вільне відкрите програмне забезпечення.[4] Робота Freenet забезпечується за допомогою спільного пула трафіку мережі та дискового простору комп'ютерів учасників, що дозволяє користувачам анонімно публікувати чи отримувати різноманітну інформацію. Розробка Freenet триває з 2000 року.
Freenet — децентралізоване, захищене відFreenet відрізняється від більшості інших peer-to-peer програм як способом взаємодії з користувачем, так і безпекою, яку він надає. Він відмежовує інфраструктуру мережі, яка використовується, та протокол від дій користувачів, які взаємодіють з мережею; як наслідок, існує безліч шляхів доступу до вмісту мережі Freenet. Найпростіший — через FProxy, що інтегрується з програмним забезпеченням вузла й забезпечує вебінтерфейс для доступу до даних з мережі. Використовуючи FProxy, користувач може переглядати фрісайти (вебсайти, що використовують звичайний HTML та споріднені інструменти, але вміст яких розміщується у Freenet, а не на традиційному вебсервері). Вебінтерфейс також використовується для більшості конфігураційних дій та керування вузлами. Шляхом використання окремих програм чи додатків, завантажених у програмне забезпечення вузла, користувачі можуть взаємодіяти з мережею іншими способами, такими як форуми, подібні до вебфорумів чи Usenet, або інтерфейси, більш схожі на традиційні інтерфейси p2p для спільного доступу до файлів.[5]
Хоча Freenet забезпечує HTTP-інтерфейс для перегляду фрісайтів, він не є проксі-сервером для World Wide Web; Freenet може використовуватись лише для доступу до контенту, що був попередньо розміщений у мережі Freenet. У цьому розумінні, він більш подібний до файлообмінних програм, ніж до проксі, таких як Tor.
Freenet намагається захистити анонімність як людей, що розміщують дані у мережі (uploading), так і тих, хто отримує дані з мережі (downloading). На відміну від програм для файлообміну, користувачеві Freenet нема необхідності лишатися в мережі після розміщення файла чи групи файлів. Натомість, у процесі публікації файли розбиваються на шматки й розміщуються на безлічі інших комп'ютерів у мережі. При скачуванні ці шматки знаходяться й збираються до початкового стану. Кожен вузол у мережі Freenet віддає дисковий простір для зберігання файлів і трафік, що використовується для маршрутизації запитів від інших користувачів.
Як наслідок вимоги анонімності, вузол, що запитує фрагмент даних, не з'єднується безпосередньо з вузлом у якого ці дані є — натомість, дані передаються через кількох посередників, жоден з яких не знає, який вузол запитує дані, а який їх має. Як наслідок, загальний трафік, потрібний системі для передачі файлу, вищий, ніж в інших системах, що може сповільнити передачу, особливо якщо контент непопулярний.
Засновники Freenet стверджують, що лише зі справжньою анонімністю приходить справжня свобода слова, і, те, що вони бачать як користь від Freenet, переважує шкоду від його використання.[4] На їхню думку, свобода слова сама по собі не суперечить жодному іншому принципу — інформація не є злочином. Freenet намагається знищити можливість для будь-якої групи нав'язувати свою віру чи цінності у будь-якій інформації. Також багато держав цензурують обмін інформацією, всі вони поділяють one commonality in that людина має вирішувати, яку інформацію цензурувати, а яку дозволити. Те, що може бути прийнятним для однієї групи людей, може розглядатись як неприйнятне чи навіть небезпечне для інших. По суті, мета Freenet — не дозволяти нікому вирішувати за інших, що є прийнятним.
Файлообмінна мережа Freenet розміщує документи й дозволяє отримати їх пізніше за асоціативним ключем, подібно до таких протоколів, як HTTP. Мережа розроблена як високожиттєздатна, з повною анонімізацією й децентралізацією по мережі всіх внутрішніх процесів. Система не має центральних серверів й не підлягає контролю жодною особою чи організацією, включно з розробниками Freenet. Інформація, розміщена у Freenet, розподіляється по мережі й розміщується на кількох різних вузлах. Шифрування даних й передача запитів ускладнюють можливість визначити, хто розмістив контент у Freenet, хто запитував цей контент, або де контент було розміщено. Це робиться з метою захисту анонімності учасників, а також дуже ускладнює цензуру певного контенту. Контент зберігається в зашифрованому вигляді, тому навіть операторові вузла важко визначити, що саме зберігається на вузлі. ВІн надає plausible deniability[en], і в поєднанні з ретрансляцією запитів це означає, що закони про безпечну гавань[en], які захищають постачальників послуг, також захищають операторів вузлів Freenet
На відміну від решти мереж P2P, Freenet не лише передає дані між вузлами, але й зберігає їх, працюючи як великий розподілений кеш. Щоб досягти цього, кожен вузол виділяє деяку частину дискового простору для розміщення даних; це настроюється оператором вузла, але типово декілька GB (чи більше).
Файли у Freenet здебільшого розбиваються на безліч малих блоків, з додатковими блоками для забезпечення попередньої корекції помилок. Кожен блок обробляється незалежно, тобто, частини одного файла можуть розміщуватися на багатьох різних вузлах.
Інформаційний потік у Freenet має відмінності порівняно з такими мережами, як eMule чи BitTorrent:
- Користувач, що бажає відкрити доступ до файлу чи оновити фрісайт, «публікує» файл «у мережі».
- Після того, як «публікацію» завершено, користувач може вимкнути свій вузол, оскільки файл розміщено в мережі (за межами його комп'ютера). Файл лишається доступним для інших користувачів, незалежно від того, чи перебуває в мережі вузол, який його опублікував. Жоден з вузлів не відповідає за контент — натомість, його копії зберігаються на кількох різних вузлах.
Дві переваги такої схеми — висока надійність та анонімність. Інформація лишається доступною, навіть якщо її автор поза мережею, і при цьому анонімно поширюється на багатьох хостингових вузлах у вигляді зашифрованих блоків, а не цілісних файлів. Freenet також невразливий до типової проблеми торентів — нестачі «сідів» (роздавачів) чи повних копій файла або торента.
Ключовий недолік цього методу зберігання — жоден з вузлів не відповідає за жоден фрагмент даних. Якщо фрагмент даних деякий час не дістають з мережі, а вузол продовжує отримувати нові дані, час від часу він скидає старі дані, коли його виділений дисковий простір остаточно заповнюється. Таким чином, Freenet схильний забувати дані, які не перечитуються регулярно (дивись також Effect).
Хоча користувачі можуть розміщувати дані в мережі, нема можливості видалити ці дані. У зв'язку з анонімністю, жоден вузол не знає, хто є «власником» фрагменту даних. Дані можуть бути видалені лише в один спосіб — якщо користувачі певний час не роблять запитів до цих даних.
Мережа складається з багатьох вузлів, що обмінюються між собою повідомленнями. Як правило, a host комп'ютер у мережі запускає програму, що працює як вузол, і вона приєднується до інших хостів, на яких запущена та ж програма, що формує велику розподілену мережу рівноправних вузлів. Деякі вузли є кінцевими, з яких документи запитуються й подаються користувачеві-людині. Інші вузли служать лише для маршрутизації даних. всі вузли спілкуються один з одним однаково — нема окремих «клієнтів» чи «серверів». Вузол не має можливості обмежувати інший вузол, за винятком здатності розміщувати та отримувати дані, пов'язані з ключем. Це не схоже на більшість інших P2P мереж, де адміністратори вузла можуть вводити систему рейтингів, коли користувачі мають віддати певну кількість контенту, перш ніж зможуть завантажувати дані на свій комп'ютер.
Freenet також може розглядатись як тісний світ.
Протокол Freenet призначено для використання в мережі зі складною топологією, такій як Інтернет (Internet Protocol). Кожен вузол знає лише про деяку кількість інших вузлів, з якими він може з'єднатись безпосередньо (його концептуальні «сусіди»), але будь-який вузол може бути сусідом для будь-якого іншого; до уваги не береться ієрархія чи будь-яка інша структура. Кожне повідомлення маршрутизується по мережі шляхом передачі від сусіда до сусіда, доки не досягне цілі. Передаючи повідомлення сусідові, вузол не знає й не турбується про те, чи передасть сусід повідомлення наступному вузлові, чи він є кінцевою ціллю або першоджерелом повідомлення. Це зроблено для захисту анонімності користувачів та авторів публікацій.
Кожен вузол містить сховище даних, що містить документи, асоційовані з ключами, і таблицю маршрутів, що пов'язує вузли з записами про їх продуктивність отримання різних ключів.
Протокол Freenet використовує key-based routing[en] протокол маршрутизації на основі ключів, подібно до розподілених хеш-таблиць. Алгоритм маршрутизації помітно змінився у версії 0.7. До версії 0.7 Freenet використовував евристичний алгоритм, де кожен вузол не мав фіксованого місця, і маршрутизація базувалась на тому, на якому вузлі обслуговувався ключ, найближчий до ключа, який було отримано (у версії 0.3), або той, який оцінюється як швидший (у версії 0.5). В обох випадках, нові з'єднання інколи додавались до downstream nodes (тобто, вузла, що відповів на запит) коли запити було виконано, і старі вузли відхилялись у порядку найменшого попереднього використання (чи близькому до того). Дослідження Oskar Sandberg (протягом розробки версії 0.7) показує, що це «вкладення шляхів» є критичним, і що дуже простий алгоритм маршрутизації буде достатньою умовою для складення шляху.
Недоліком цього є те, що атакеру дуже легко знаходити вузли Freenet і з'єднуватися з ними, оскільки кожен вузол безперервно намагається відшукати нові з'єднання. У версії 0.7, Freenet підтримує як режим 'Opennet' (подібний до старих алгоритмів, але простіший), так і 'Darknet' (всі з'єднання вузлів встановлюються вручну, тому лише ваші друзі знають IP-адресу вашого вузла). Darknet менш зручний, але набагато стійкіший до віддалених атакерів.
Ця зміна потребувала суттєвих змін в алгоритмі маршрутизації. Кожен вузол має локацію, яка є числом у проміжку від 0 до 1. Коли зроблено запит ключа, вузол спершу перевіряє локальне сховище даних. Якщо його не знайдено, хеш ключа замінюється іншим числом у цьому ж діапазоні, і запит маршрутизується до вузла, локація якого найближча до ключа. Це продовжується, доки не станеться одна з подій: ліміт спроб буде перевищено, більш не залишиться вузлів для пошуку, або дані буде знайдено. Якщо дані знайдено, вони кешуються на кожному вузлі по всьому шляху. Таким чином, нема єдиного вузла джерела для ключа, і спроби відшукати його справжнє розташування призведуть лише до ще ширшого кешування. Той же принцип використовується при розміщенні документа в мережі: дані маршрутизуються відповідно до ключа, доки він не дійде до межі, і якщо не знайдено жодного документа з таким же ключем, він розміщується на кожному вузлі. Якщо знайдено старіші дані, старіші дані розповсюджуються й повертаються авторові, відбувається «колізія» вставки.
- Анонімна мережа
- Криптоанархізм
- Шифропанк
- distributed file system[en]
- Свобода інформації
- Friend-to-friend
- GNUnet[en]
- I2P
- Osiris sps[en]
- JonDonym[en]
- Tor
- Share[en] — наступник Winny[en]
- Perfect Dark[en] — наступник Share[en]; використовує багато принципів Freenet.
- ↑ Freenet: People. 22 вересня 2008. Архів оригіналу за 21 липня 2013. Процитовано 22 вересня 2008. [Архівовано 2013-05-22 у Wayback Machine.]
- ↑ Beckett, Andy (26 листопада 2009). The dark side of the internet. The Guardian. Архів оригіналу за 27 листопада 2009. Процитовано 26 листопада 2009.
- ↑ а б The Philosophy behind Freenet. Архів оригіналу за 27 червня 2009. Процитовано 25 січня 2012. [Архівовано 2009-06-27 у Wayback Machine.]
- ↑ Clarke, Ian; Sandberg, Oskar; Wiley, Brandon; Hong, Theodore W. (2001). Freenet: A Distributed Anonymous Information Storage and Retrieval System. Designing Privacy Enhancing Technologies. Berlin, Heidelberg: Springer Berlin Heidelberg. с. 46—66. ISBN 978-3-540-41724-8.