Одна з основних причин успіху віддалених атак на розподілені обчислювальнімережі полягає у використанні мережних протоколів обміну, які не можутьнадійно ідентифікувати віддалені об'єкти, захистити з'єднання та дані, щопередаються по ньому. Тому цілком природньо, що в процесі функціонування
Internet були створені різні захищені мережні протоколи, що використовуютькріптографію як з закритим, так і з відкритим ключем. Класична криптографіяз симетричними криптоалгоритмами передбачає наявність у передавальної таприймаючої сторін симетричних (однакових) ключів для шифрування тадешифрування повідомлень. Ці ключі заздалегідь мають бути розподілені міжскінченною кількістю абонентів, що в кріптографії називається стандартноюпроблемою статичного розподілу ключів. Очевидно, що застосування класичноїкріптографії з симетричними ключами є можливим лише на обмеженій множиніоб'єктів. У мережі Internet для всіх її користувачів вирішити проблемустатичного розподілу ключів не є можливим. Однак, одним з перших захищенихпротоколів обміну в Internet був протокол Kerberos, заснований саме настатичному розподілі ключів для скінченної кількості абонентів. Для того,щоб дати можливість захиститися усій множині користувачів мережі Internet,а не обмеженій її підмножіні, необхідно використовувати ключі, що динамічновиробляються в процесі створення віртуального з'єднання, застосовуючикріптографію з відкритим ключем. Розглянемо основні на сьогоднішній деньпідходи і протоколи, що забезпечують захист з'єднання.
SKIP-технологією (Secure Key Internet Protocol - Internet-протокол ззахищеним ключем) називається стандарт інкапсуляції IP-пакетів, що дозволяєв існуючому стандарті IPv4 на мережному рівні забезпечити захист з'єднанняі даних, що передаються по ньому. Це досягається наступним чином: SKIP -пакет - це звичайний IP-пакет, його поле даних представляє собою SKIP -заголовок формату, визначеного специфікацією і кріптограму (зашифрованідані). Така структура SKIP-пакета дозволяє безперешкодно направляти йогобудь-якому хосту в Internet (міжмережна Адресація відбувається позвичайному IP-заголовку в SKIP-пакеті). Кінцевий отримувач SKIP-пакета зазаздалегідь визначеним розробниками алгоритмом розшіфровує кріптограму іформує звичайний TCP-або UDP-пакет, який і передає відповідному звичайномумодулю (TCP або UDP) ядра операційної системи. В принципі ніщо не заважаєрозробнику формувати за заданою схемою свій оригінальний заголовок,відмінний від SKIP-заголовка.
S-HTTP (Secure HTTP - захищений HTTP) - це зхіщеній HTTP-протокол,розроблений компанією Enterprise Integration Technologies (EIT) спеціальнодля Web. Протокол S-HTTP дозволяє забезпечити надійний кріптозахіст тільки
HTTP-документів Web-сервера і функціонує на прикладному рівні моделі OSI.
Така особливість протоколу робить його абсолютно спеціалізованим засобомзахисту з'єднання, отже, його застосування для захисту всіх іншихприкладних протоколів (FTP, TELNET, SMTP та ін.) є неможливим. Крім того,ні один з існуючих на сьогоднішній день основних Web-браузерів (ні Netscape
Navigator, ні Microsoft Explorer) не підтримують цей протокол.
SSL (Secure Socket Layer - захищені скриті гнізда) - розробка компанії
Netscape - універсальний протокол захисту з'єднання, що функціонує насеансовому рівні OSI. Він використовує кріптографію з відкритим ключем і насьогоднішній день є єдиним універсальним засобом, що дозволяє динамічнозахистити будь-яке з'єднання з застосуванням будь-якого прикладногопротоколу (DNS, FTP, TELNET, SMTP та ін.). Це пов'язано з тим, що SSL, навідміну від S-HTTP, функціонує на проміжному сеансовому рівні OSI - міжтранспортним (TCP, UDP) і прикладним (FTP, TELNET). При цьому процесстворення віртуального SSL-з'єднання відбувається за схемою Діффі та
Гелмана, яка дозволяє виробити кріптостійкій сеансовий ключ, щовикористовується в подальшому абонентами SSL-з'єднання для шифруванняповідомлень, які передаються.
Протокол SSL вже практично оформився в якості офіційного стандарту захистудля HTTP-з'єднань, тобто для захисту Web-серверів. Його підтримують
Netscape Navigator та Microsoft Explorer. Звичайно для встановлення SSL -з'єднання з Web-сервером, необхідною є наявність ще й Web-сервера, щопідтримує SSL (наприклад, SSL-Apache).
Алгоритм роботи SSL побудований на принципі публічних ключів. Цей принципбазується на використанні пари асиметричний ключів (публічному іприватному) для кодування/декодування інформації. Публічний ключ роздаєтьсявсім бажаючим. І з його допомогою шифруються необхідні дані, які можнадешифрувати тільки з допомогою приватного ключа.
Припустимо, що дві особи спілкуються через Internet і відповідно не бачатьодин одного, тобто не мають можливості взнати хто є його абонентом. Їхімена - Аліса і Боб. Нехай Алісі необхідно дізнатися, чи дійсно вонаспілкується з Бобом. У цьому випадку діалог може виглядати наступним чином:
. Аліса відправляє Бобу випадкове повідомлення.
. Боб шіфрує його з допомогою свого приватного ключа і відправляє його p>
Алісі.
. Аліса дешіфрує це повідомлення (з допомогою публічного ключа Боба). І порівнявши це повідомлення з посланням, може переконатися, що його дійсно послав Боб.
Але на справді з боку Боба ідея шифрувати повідомлення від Аліси з допомогою свого приватного ключа не є дуже вдалою. Це є аналогічним до пілпісу документа, про який Боб мало що знає. З такої позиції Боб має сам придумати повідомлення і послати його Алісі у двох екземплярах. У першому повідомлення передається відкритим текстом, а друге повідомлення є зашифрованими з допомогою приватного ключа Боба. Таке повідомлення називається message digest, а спосіб шифрування з допомогою свого приватного ключа - цифровим підписом (digital signature).
Тепер закономірно повстає запитання, яким чином поширювати свої публічні ключі. Для цього була придумана спеціальна форма - сертифікат
(certificate). Сертифікат складається з наступних частин:
. Ім'я людини/організації, що випускає сертифікат.
. Для кого було випущено даний сертифікат (суб'єкт сертифіката).
. Публічний ключ суб'єкта.
. Деякі часові параметри (термін дії сертифіката та ін.).
Сертифікат "підписується" приватним ключем особи (або організації), яка випускає сертифікати. Організації, які здійснюють подібні операції називаються - "Certificate authority (CA)". Якщо в стандартному Web-клієнті (Web-browser), який підтримує SSL, зайти в розділ security, то там можна побачити список відомих організацій, які "підписують" сертифікати.
Тепер обидві особи можуть використовувати симетричний шіфрувальній алгоритм (де в якості секретного ключа виступає повідомлення Аліси) і безбоязно шифрованим обмінюватися повідомленнями. А для контролю над пересиланням повідомлень (від випадкової/навмисної зміни) використовується спеціальний алгоритм - Message Authentification Code (MAC). Тоді достовірність повідомлень зростає в декілька разів. І внести зміни в процес обміну практично неможливо.
Найбільш поширеним пакетом програм для підтримки SSL - є SSLeay. Остання версія (SSLeay v.0.8.0) підтримує SSLv3. Ця версія є доступною у вихідних текстах і без особливих проблем встановлюється під UNIX. Цей пакет призначений для створення і управління різного роду сертифікатами. Також до його складу входить і бібліотека для підтримки SSL різними програмами.
Ця бібліотека є необхідною, наприклад, для модуля SSL в поширеному HTTP сервері - Apache.
Очевидно, що широке застосування захищених протоколів обміну, особливо
SSL , поставити надійний бар'єр на шляху можливих віддалених атак і серйозно ускладнить життя кракерів усього світу. Однак весь трагізм сьогоднішньої ситуації з забезпеченням безпеки в Internet полягає в тому, що поки ні один з існуючих кріптопротоколів НЕ оформився в якості єдиного стандарту захисту з'єднання, який би підтримувався усіма виробниками мережних ОС. Протокол SSL підходить на цю роль найкращим чином, але його не підтримують всі мережні ОС. Тому були створені спеціальні прикладні SSL-сумісні сервери (DNS, FTP, TELNET, WWW та ін.). Якщо не домовитися про прийняття єдиного стандарту на захищений протокол сеансового рівня, тоді неохідно буде приймати багато стандартів на захист кожної окремої прикладної служби.
Підводячи підсумки, можна сказати, що SSL є просто необхідним у сфері комерційного Інтернету, особливо там, де необхідно забезпечити конфіденційність даних. p>