Інтернет служби 5. Файлові служби Інтернет Інтернет служби 5. Файлові служби Інтернет Служба FTP Технологію FTP (File Transfer Protocol, або «Протокол передачі даних») було розроблено в рамках проекту ARPA. Вона призначена для обміну великими об'ємами інформації між машинами з різною архітектурою і її підтримують всі популярні операційні системи. Стрижень технології складає FTP-протокол. FTP-протокол — один із базових протоколів передачі даних, що з'явився значно раніше за протокол HTTP, але й досі активно використовується для доступу до віддалених серверів і входить у стандарти Інтернету. Перші специфікації FTP відносяться до 1971 року. З тих пір FTP зазнав багато модифікацій і значно розширив свої можливості. Даний протокол дозволяє підключатися до серверів FTP, проглядати вміст каталогів, завантажувати файли з сервера на локальний комп’ютер і навпаки. В рамках служби FTP адміністратор може створювати на сервері FTP-архіви і визначати спосіб взаємодії користувачів з цією службою.Доступ до файлів за протоколом FTP відбувається за допомогою FTP-клієнтів, які здійснюють з'єднання з FTP-сервером. Всі сучасні операційні системи містять утіліти для роботи зі службою FTP, які можна набирати в командному рядку. Як простий FTP-клієнт можна використати браузер або любий файловий менеджер (Проводник, Мой компьютер, Total Commander). FTP-сервер — комп'ютер, на якому запущено відповідне програмне забезпечення, що надає доступ до файлів і каталогів цього комп'ютера за протоколом FTP. FTP-сервера можуть бути загальнодоступними (anonymous FTP-site) і з обмеженим доступом. На FTP-серверах організовано FTP-архіви - спеціальні дерева каталогів, доступ до яких надається віддаленому користувачу.FTP-архіви FTP-архіви є одними з основних інформаційних ресурсів в локальних та глобальних мережах. Це розподілена бібліотека документів, програм, фотографій та іншої інформації, що зберігається у вигляді файлів на одному чи різних комп'ютерах. ^ Інформація в FTP-архівах поділена, зазвичай, на три категорії: Захищена інформація. Режим доступу визначається власниками і надається за спеціальною угодою. До цього виду ресурсів відносяться комерційні архіви (наприклад, комерційні версії програм в архівах ftp.microsoft.com), закриті національні і міжнародні некомерційні ресурси (наприклад, роботи за міжнародними проектами CES або IAEA), приватна некомерційна інформація із спеціальними режимами доступу (наприклад, приватні добродійні фонди). Інформаційні ресурси обмеженого використання. До них відносяться ресурси обмеженого часу використання або обмеженого часу дії, наприклад, програми класу shareware.^ Відкриті інформаційні ресурси. До цих ресурсів відноситься все, що можна вільно отримати по мережі без спеціальної реєстрації (freeware). Це може бути документація, безкоштовне програмне забезпечення, фотографії, звукові файли тощо. Зазвичай, вільно поширюване програмне забезпечення не має сертифікату якості, але його розробники є відкритими для обміну досвідом. ^ Файлові сховища Однією із особливостей Інтернету є можливість передавати файли в будь-який куточок світу. Проте, якщо одні файли передати легко, то інші передати складніше.Якщо файл треба передати для одного-двох людей, то файли можна передати засобами електронної пошти e-mail або Інтернет-месенджера, проте як бути, якщо файл призначено не для вузького кола, а для десятків, сотень, а то і тисяч користувачів Інтернету? Одним із способів може бути використання файлового сховища.^ Файлові сховища або файловий хостинг — сервіс, що надає користувачу місце під його файли і цілодобовий доступ до них через веб-інтерфейс, як правило за протоколом HTTP. Такий сервіс дозволяє зручно «обмінюватися» файлами. На спеціальній сторінці файлового сховища (найчастіше на головній) користувач завантажує файл на сервер сховища і отримує постійне посилання, яке він може розсилати по e-mail, публікувати в блогах, на форумах тощо. Перейшовши за таким посиланням інший користувач може викачати розміщений файл.Найбільшої популярності файлові хостинги набули, коли зростання користувачів Інтернету, можливості розміщення чи завантаження файлів великого розміру почали спричиняти величезного навантаження на багато ресурсів. Завдяки файловим хостингам вдалося вирішити проблему перевантаження для ряда ресурсів, а також надати для звичайного користувача можливість передавання файлу, наприклад, розміром 100 мегабайт абсолютно безкоштовно. Природно, що за безкоштовність доводиться чимось платити (банери на сторінці завантаження, відтерміноване викачування користувачем, примусовий перегляд веб-сторінок), бо витрати власників файлових хостингів необхідно якось окупати.^ Файлові сховища заробляють двома основними способами: Показом реклами. Зазвичай, файлові сховища вводять штучну паузу, коли користувачі хочуть викачати файл. Протягом певного часу (45-120 сек.) користувачу показується реклама, і лише потім віддається файл.^ Продажем преміум-акаунтів (premium accounts). За кілька десятків доларів в рік користувач може купити собі право викачувати файли відразу, без реклами, без затримок, з повною або підвищеною швидкістю (багато сховищ значно обмежують швидкість завантаження). Він також отримує інші переваги, що є недоступними для звичайних користувачів, наприклад, викачування файлів в кілька потоків і докачування.Заробіток Деякі файлові сховища мають партнерські програми за приблизно однаковою схемою. Зареєстрований користувач завантажує на сервер файл, який має унікальний URL. Природно, що користувач прагне розмістити посилання на свій файл на як можна більшій кількості сайтів. Як правило, це сайти, що поширюють неліцензійне ПЗ, форуми, а також спам чи ICQ-розсилка. За кожну тисячу викачувань унікального файлу, сервер виплачує власнику файлу гроші (від 2 доларів США), причому, чим більше файл, тим більше він «коштує». Наприклад, за файл розміром від 1МБ до 4МБ, власник отримує 2$ за 1000 викачувань, а за файл розміром від 250МБ до 2ГБ — 50$ за 1000 викачувань.Як мінімум три діючих файлові сховища — FileDeluxe.com, Uploading.com і Depositfiles — готові ділитися прибутком з активними користувачами, виплачуючи їм гроші за кількість завантажень файлів, що розміщені ними.^ Популярні файлові сховища Rapidshare (http://rapidshare.com). Стабільний і оптимальний сервіс для зберігання файлів. Висока швидкість, довгий час зберігання файлів.iFolder (http://ifolder.ru). Проект від Agava, який пропонує зареєстрованим користувачам можливість необмеженого зберігання файлів, не має жорстоких обмежень за регіональним принципом, пропонує можливість зробити на їх базі свій файловий хостинг з власним дизайном, достатньо високу швидкість викачування, а також ряд інших переваг у порівнянні з конкурентами. DepositFiles (http://depositfiles.com). Користувач може вибрати користування платними або безкоштовним акаунтом. Якість послуг Deposit є невисокою, низька швидкість викачування, а тимчасове очікування перед закачуванням є довшим. Letitbit (http://letitbit.net). Пропонує привабливі умови для партнерства. Підтримує завантаження файлів за FTP протоколом, завантаження через браузер, віддалене завантаження. WebFile (http://webfile.ru). Популярний ресурс в Рунеті, що має широкі можливості.Fileshare.in.ua (http://fileshare.in.ua). Український файловий хостинг. Зручний сервіс для розміщення файлів, що призначені для ресурсів з великим трафіком з України. ^ Пораді щодо роботи з файловими сховищами Перш ніж завантажити на певний сервіс свої файли, слід обов'язково ознайомитися з його правилами роботи та відповідями на найпоширені питання (FAQ).^ Головна вимога сховищ - жодного нелегального контенту (зокрема, неліцензійних програм, піратських копій ігор, порнографії, вірусів), використання якого порушує авторські права чи може вплинути на працездатність сервера. Навіть, якщо подібний матеріал і з'являється, він оперативно видаляється адміністрацією, а осіб, що його завантажили можуть притягнути до юридичної відповідальності.Не секрет, що більшість файлових сховищ дозволяють викачувати файли лише одним потоком, по одному за раз, і часто з паузою в годину/дві перед завантаженням наступного файлу. Пам'ятати, що вже викачано, а що ні, скільки часу лишилося до можливості нового викачування, отримати пряме посилання на файли, щоб поставити їх в чергу менеджера закачування - складно. Як обійти обмеження подібних сховищ? Кращим вирішенням є застосування спеціальних програм для викачування з файлових сховищ, наприклад, розробка Universal Share Downloader (http://www.dimonius.ru/). Утиліта незвичайно проста у використанні, достатньо ввести до неї потрібні посилання або імпортувати txt-файл і вона негайно почне завантаження. Підтримується 25 різних сервісів та багатопотоковий режим, тобто, можливість паралельно викачувати файли з кількох сховищ одночасно.Файлові сховища всі більше адаптуються під сучасні вимоги зростаючої кількості користувачів, а також під зростання користувачів, але їх витісняє альтернатива в вигляді P2P мереж.^ Файлообмінні мережі Традиційним методом передачі файлів в мережах є модель «клієнт-сервер». Центральний сервер посилає файл цілком кожному, хто його потребує — так працюють протоколи HTTP і FTP. Клієнти спілкуються тільки з сервером і ніколи — між собою. Основною, і, мабуть, єдиною перевагою цього методу є те, що він простий в реалізації та використанні. Цей метод працює доти, поки сервер має достатньо потужності для обслуговування запити всіх клієнтів. Коли сервер стає дуже популярним, а розмір даних починає бути дуже великим, така модель може давати збої. Саме тому, при викачуванні потрібного файлу з серверу часто можна спостерігати повідомлення «дуже багато користувачів». Концепція «дзеркала сервера» лише частково вирішує цю проблему, оскільки вимагає складного налаштування «дзеркал» серверів і розподілу завантаження між ними. ^ Файлообмінні мережі — загальна назва однорангових комп'ютерних мереж для сумісного використання файлів, що засновані на рівноправ'ї учасників з обміну файлами, тут кожен учасник одночасно є і клієнтом, і сервером.В таких мережах файли не обов'язково повинні знаходитися на одному сервері, користувачі мережі обмінюються файлами, безпосередньо під'єднуючись один до одного. Такі мережі набули величезного поширення серед любителів музики та фільмів.^ Типи організації файлообмінних мереж Централізовані мережі Враховуючи, що кожен учасник файлообмінної мережі є і клієнтом і сервером, необхідна інфраструктура для об'єднання розрізнених клієнтів між собою у певне співтовариство. В централізованих файлообмінних мережах службова інформація обробляється і зберігається на серверах індексацій. Особливістю такої мережі є відносна простота програмування і невеликий об'єм службової інформації, що передається на сервери. Але, сервери індексацій можуть бути відключені з різних причин (технічний збій, банкрутство компанії-власника, судове рішення), тоді мережа перестає функціонувати. До централізованих мереж відноситься Direct Connect.^ Децентралізовані мережі Децентралізовані файлообмінні мережі функціонують без серверів індексацій. Хоча об'єм переданої службової інформації в них є більшим, проте, надійність тут є набагато вищою і не існує способу насильно спинити функціонування такої мережі. До децентралізованих мереж відносяться Gnutella, Overnet, Kad.^ Частково децентралізовані (гібридні) мережі Поєднуючи швидкість централізованих мереж і надійність децентралізованих, використовуються гібридні схеми, в яких використовуються незалежні сервери індексації, постійно синхронізують інформацію між собою. Таким чином, при виході з ладу одного з них, мережа продовжує функціонувати. До частково децентралізованих файлообмінних мереж відносяться eDonkey2000, OpenNap.^ Принципи роботи файлообмінних мереж Користувач викачує програму собі на комп'ютер.Надає доступ для інших користувачів до певної частини своїх ресурсів. Цей процес називається «розшарюванням» (sharing).В кожній такій програмі присутній пошук, який шукає ресурси, що викладені для вільного викачування на комп'ютерах інших користувачів.Будь-який користувач, використовуючи пошук, може знайти на комп'ютері іншого користувача ті ресурси, які викладено у вільний доступ і безкоштовно їх викачати. Оскільки, кількість користувачів файлообмінних програм обчислюється сотнями тисяч, а іноді навіть мільйонами, користувач швидше за все знайде потрібний йому файл.^ Файлообмінні мережі P2P Вперше термін peer-to-peer (P2P) було використано в 1984 році компанією IBM при розробці мережної архітектури для динамічної маршрутизації трафіку через комп'ютерні мережі з довільною топологією (Advanced Peer to Peer Networking). Сьогодні, на технології P2P засновано величезне число популярних мережних сервісів — від простого обміну файлами до мовного і відео зв'язку.В основі технології покладено принцип децентралізації: всі вузли в мережі P2P є рівноправними, що забезпечує значні переваги технології P2P перед клієнт-серверним підходом:Відмовостійкість при втраті зв'язку з кількома вузлами мережі.Збільшення швидкості отримання даних за рахунок копіювання одночасно з кількох джерел.Можливість розділення ресурсів без «прив'язки» до конкретних IP-адрес.Величезна потужність мережі в цілому тощо.За деякими даними, в сучасному Інтернеті більше половини всього трафіку доводиться на трафік файлообмінних P2P-мереж, а розміри найбільших з них перевалили за відмітку в мільйон одночасно працюючих вузлів, що розділяють петабайти (1015 байт) інформації. Загальна кількість зареєстрованих учасників файлообмінних мереж P2P у всьому світі складає порядку 100 млн.Хоча, P2P-мережі використовуються в основному для розподілення файлів, існує ще багато інших областей, де дана технологія теж успішно застосовується, — це телебачення і аудіотрансляції, паралельне програмування, розподілене кешування ресурсів для розвантаження серверів, розсилка повідомлень і статей, підтримка системи доменних імен, індексування розподілених ресурсів та їх пошук, резервне копіювання і створення стійких розподілених сховищ даних, обмін повідомленнями, створення систем, стійких до атак типу «відмова в обслуговуванні», розповсюдження програмних модулів. Існує величезне число клієнтських програм для роботи з P2P-мережами, як комерційних, так і з відкритим кодом. Постійно вдосконалюються протоколи, збільшується функціональність систем, і можна сподіватися, що скоро клієнтське ПЗ для P2P буде інтегровано з операційними системами. Так, вже зараз великі компанії виявляють цікавість до технологій Р2Р — наприклад, компанія Sun розробляє протокол для доступу до основних P2P-мереж з кишенькових комп'ютерів і смартфонів, а компанія Microsoft створила свої реалізації P2P-протоколов Scribe і Pastry.^ Технологія Р2Р Отже, технологія P2P припускає побудову мережі розподілених рівноправних вузлів за принципом децентралізації. Ця ідея є альтернативою принципу клієнт-сервер.В файлообмінних P2P-мережах спочатку було використано змішаний підхід — з наявністю виділених вузлів та серверів. Але, в останні роки у всіх крупних мережах реалізовано підтримку P2P-протоколів, що забезпечують автономне функціонування мережі без серверів.^ Мережа P2P — це сукупність вузлів (комп'ютерів, смартфонів тощо), що об'єднані в єдину систему і взаємодіють за допомогою протоколу P2P, який забезпечує можливість створення і функціонування мережі рівноправних вузлів.Протоколом або набором протоколів визначається логічна топологія мережі, механізм під’єднання/від’єднання вузлів, а також алгоритм взаємодії вузлів. Вирішення таких завдань, як корекція помилок, регламентація форматів повідомлень, службових запитів і відгуків, маршрутизація в умовах постійного під’єднання і від’єднання вузлів, теж визначається протоколом P2P.В моделі стеку мережних протоколів TCP/IP протоколи P2P відносяться до прикладного рівня. Таким чином, P2P-мережа є накладеною (overlay), тобто вона функціонує поверх Інтернету і використовує існуючі транспортні протоколи TCP або UDP.Клієнтська програма P2P забезпечує функціональність вузла і є реалізацією P2P-протокола, який покладено в основу мережі. Клієнт може надсилати запити до серверу або виділених вузлів, отримувати відповідь з інформацією про запитані файли, про вузли, на яких ці файли знаходяться, і далі вже працювати безпосередньо з вказаними вузлами. Останні реалізації клієнтів наділено можливостями обміну службовою інформацією, побудови запитів і пошуку ресурсів у всій мережі без участі серверів.ID вузла (ключ) — унікальний ідентифікатор вузла, який обчислюється за допомогою хеш-функції з IP-адреси та додаткової інформації (імені комп'ютера, MAC-адреси мережної карти тощо) і привласнюється при реєстрації вузла в мережі P2P.^ ID ресурсу — унікальний ідентифікатор файлу або іншого ресурсу, який обчислюється за допомогою хеш-функції з імені файлу та його вмісту.Протоколами забезпечується рівномірний розподіл ключів ресурсів разом з ідентифікаторами вузлів, що опублікували даний ресурс, по всіх зареєстрованих в мережі вузлах (або по певних виділених вузлах чи серверах). Завдання пошуку (lookup) ресурсу зводиться до знаходження ID вузла, на якому зберігається ключ ресурсу.Велике зростання популярності мереж P2P обумовлено їх характеристиками: децентралізація, розподіленість, самоорганізація мережі. Позначені принципи забезпечують простоту та дешевизну реалізації, підтримку роботи мережі, її відмовостійкість і масштабованість, збільшення швидкості копіювання і колосальну потужність мережі в цілому.Серед файлообмінних мереж за кількістю вузлів лідирують такі мережі, як Bittorrent, eDonkey2000, Gnutella2, Gnutella.^ Основні вразливі сторони P2P Реалізація і використання розподілених систем мають не лише плюси, але і мінуси, що пов'язані з особливостями забезпечення безпеки. Отримати контроль над розгалуженою і великою мережею P2P, або використати дірки в реалізації протоколів для власних потреб є бажаною метою для хакерів. До того ж захистити розподілену структуру складніше, ніж централізований сервер.Величезну кількість ресурсів в мережах P2P, важко шифрувати/дешифрувати, тому більша частина інформації про IP-адреси і ресурси учасників зберігається і пересилається в незашифрованому вигляді, що робить її доступною для перехоплення. При перехопленні зловмисник не лише отримує власне інформацію, але і дізнається про вузли, на яких вона зберігається.В клієнтах більшості крупних мереж ця проблема вирішується шляхом шифрування заголовків пакетів і ідентифікаційної інформації. З'являються клієнти з підтримкою технології SSL, впроваджуються спеціальні засоби захисту інформації про місцезнаходження ресурсів.Серйозною проблемою є поширення вірусів і підробка ID ресурсів з метою їх фальсифікації. Наприклад, в клієнті Kazaa використовується хеш-функція UUHash, яка дозволяє швидко знаходити ID для великих файлів навіть на малопотужних комп’ютерах, але при цьому залишається можливість для підробки файлів і запису зіпсованого файлу, що має такий же ID.Щоб подолати таку проблему, клієнти повинні користуватися надійними хеш-функціями («деревами» хеш-функцій, якщо файл копіюється по частинах), такими, як SHA-1, Whirlpool, Tiger, і лише для вирішення маловідповідальних завдань — контрольними сумами CRC. Для зменшення переданих об'ємів даних і полегшення їх шифрування можна застосувати компресію. Для захисту від вірусів потрібно мати можливість зберігати ідентифікаційну метаінформацію про них, як це, наприклад, зроблено в мережі Gnutella2.Іншою проблемою є можливість підробки ID серверів і вузлів. За відсутності механізму перевірки достовірності переданих службових повідомлень, наприклад за допомогою сертифікатів, існує можливість фальсифікації сервера або вузла (багатьох вузлів). Оскільки вузли обмінюються інформацією, підробка деяких з них приведе до компрометації всієї мережі або її частини. Закрите ПЗ клієнтів і серверів не є вирішенням проблеми, оскільки є можливість для реінжинірингу протоколів і програм (reverse engineering).Виділені сервери і вузли періодично обмінюються між собою службовою інформацією і за необхідності додають підроблені сервери/вузли до чорного списку для блокування доступу.Ще однією проблемою є нечесна поведінка частини клієнтів, які лише копіюють чужі файли, але нічого не пропонують іншим для копіювання (leechers).Для боротьби з цим використовуються різні методи. В Bittorrent реалізовано схему «скільки блоків файлу отримав, стільки віддав».В eMule застосовано метод кредитів: скопіював файл — кредит зменшився, дозволив скопіювати свій файл — кредит збільшився (xMule — кредитна система із заохоченням поширювання рідкісних файлів). В мережі eDonkey стимулюється розмноження джерел