Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
default111.doc
Скачиваний:
19
Добавлен:
21.02.2016
Размер:
7.21 Mб
Скачать

3.2 Прикладні системи для криптографічного захисту

В електронній комерції моделі В2С для відвідувача магазина дві канонічні загрози безпеки інформації – загроза порушення цілісності і загроза порушення секретності інформації – приймають цілком реальні і актуальні форми, на жаль, перешкоджаючи його купівельним здібностям. А саме, загроза порушення секретності, як вже було відзначене, пов'язана з передачею відкритими каналами номера кредитної карти, загроза порушення цілісності пов'язана з посланою вам магазином інформацією (є вірогідність її зміни хакером, це стосується перш за все реквізитів з оплати товару).

У зв'язку з цим кожен продавець, який використовує Інтернет для електронної торгівлі, повинен розуміти важливість проблеми забезпечення безпеки персональної інформації.

Крім того, існують також проблема автентичності, тобто покупець повинен бути упевнений в тому, що магазин, який одержує його інформацію, має добру репутацію, і проблема відмови від зобов'язань, коли необхідно доводити, що повідомлення було дійсно послано.

Всі ці 4 проблеми потрібно вирішувати, і рішення, хоча і має в основі один і той же інструмент – криптографічні алгоритми шифрування – для кожної з проблем своє, реалізоване на відповідному етапі. Розглянемо ці рішення докладніше у відношенні до типу загрози, що усувається.

Отже, перші дві загрози – секретності і цілісності – фактично пов'язані з обміном інформацією між сайтом магазина і покупцем (інформація про замовлення, суму, номері рахунку продавця і інформація кредитної карти покупця). Канали, по яких передаються дані в Інтернет (забезпечувані стандартними протоколами передачі даних в Інтернет - TCP/IP), с самого початку були відкриті, не захищені. Захист не був передбачений в протоколах TCP/IP при розробці, ця проблема давно обговорюється, але універсальних шляхів її рішення немає – весь Інтернет функціонує на основі цих протоколів. Отже, будь-яка приватна інформація, яка передається по цих каналах, повинна передаватися з використанням яких-небудь засобів захисту.

Розглянемо у загальних рисах принцип криптографічного шифрування інформації.

Криптографія існує вже декілька тисячоліть і в перекладі з грецької мови означає «тайнопис». Її основною задачею є оборотне перетворення відкритого тексту в деяку, що уявляється випадковою, послідовність символів. Процес перетворення безлічі відкритих повідомлень (О) в закритий, або зашифрований, текст (З) називається зашифруванням і символьне описується за допомогою наступної формули:

З = Еk (О),

де Еk — параметризирована функція зашифрування; k — ключ зашифрування (деякий секретний параметр).

Зворотний процес перетворення закритого повідомлення у відкрите називається розшифруванням і описується формулою:

О = Dk* (З),

де Dk* — функція розшифрування, зворотна Еk; k* — ключ розшифрування.

Цикл «зашифрування — розшифрування» повинен привести до отримання відкритого повідомлення, тотожно рівного (або адекватного в смисловому відношенні) початковому. Ця вимога називається умовою оборотності криптографічного перетворення:

Dk* (Еk (О)) ≡ О.

Зашифровані дані стають недоступними для всіх, за винятком одержувачів цієї інформації. Нешифровані дані називаються відкритим текстом; шифровані дані називаються зашифрованим текстом. Тільки одержувачі даних повинні мати відповідний ключ, що дозволяє їм перевести шифрований текст у відкритий текст.

Дешифрування — процес знаходження відкритого документа на підставі аналізу деякого зашифрованого повідомлення при невідомій функції Dk* або ключах криптографічного перетворення. Саме дешифруванням займаються зловмисники, які тим або іншим способом отримали в своє володіння копії зашифрованих повідомлень.

Вирази для опису зашифрування і розшифрування інформації показують, що всякий алгоритм криптографічного перетворення складається з процедурної частини (функцій зашифрування E або розшифрування D, тобто описи того, які саме операції і в якій послідовності виконуються над даними) і деяких параметрів цих функцій (ключів k і k*, тобто конкретних даних, що використовуються в перетвореннях). В криптографії існує правило Керкхофа, яке свідчить, що розкриття процедурної частини не повинне приводити до збільшення вірогідності успішного дешифрування повідомлення. З цього правила виходить, що функції шифрування можуть бути відомі зловмиснику. Незнання ключа (параметра цієї функції) не дозволить йому успішно атакувати (дешифрувати) зашифроване повідомлення. Таке положення справ дозволяє на практиці застосовувати стандартні розроблені висококваліфікованими фахівцями алгоритми шифрування. У кожному конкретному випадку користувач повинен тільки синтезувати для себе криптографічні ключі і забезпечити їх надійне зберігання. При загальновідомій процедурі шифрування відповідальність за крипостійкість (стійкість до дешифрування) всього алгоритму повністю укладена в конфіденційності ключа. Алгоритм є тим стійкіше, чим складніше (довше) його ключ. Тому синтезу ключової інформації, способу її введення в ПК, що здійснює шифрування інформації, в криптографії надають велику увагу.

Криптографічні алгоритми можна класифікувати по декількох ознаках: по типу перетворення, по кількості роздільно оброблюваних символів і по схемі перетворення.

Основними типами перетворення є заміна і перестановка.

В шифрах, що переставляють, символи відкритого тексту не перетворюються, але змінюють своє місцеположення. В шифрах заміни символи відкритого тексту заміщаються символами зашифрованого тексту і не міняють свого місцеположення. З метою підвищення надійності шифрування відкритий текст може зашифровуватися послідовно кілька разів із застосуванням різних типів перетворення. Такі шифри є комбінацією шифрів заміни і перестановки і носять назву композитних.

В потокових шифрах кожний символ відкритого тексту зашифровується незалежно від інших і розшифровується таким же чином. В блокових шифрах відкритий текст розбивається на блоки певної довжини, далі кожний блок шифрується окремо і перетвориться в зашифрований блок рівного початковому (або більшого) розміру.

Класична схема шифрування інформації використовує такі алгоритми, при яких ключі зашифрування і розшифрування співпадають (k = k*), або ключ розшифрування може бути легко обчислений з ключа зашифрування. Якщо процедура зашифрування повідомлення E як параметр використовувала ключ k, то в процедурі розшифрування D необхідно спиратися на цей же ключ. Такі криптоалгоритми відомі з часів Гая Юлія Цезаря, їх прийнято називати симетричними. Відомі найпростіші симетричні алгоритми, такі як шифри Цезаря, Віженера. Сучасні симетричні алгоритми закріплюються державними стандартами: в США, наприклад, протягом декількох десятиріч застосовувався широко поширений у всьому світі алгоритм DES (Data Encryption Standard), в даний час застосовуються шифри AES (Advanced Encryption Standard — Rijndael), RC5, RC6, Mars, Blowfish, Twofish; в Канаді - CAST; в Австралії - LOKI; в Швейцарії - що став міжнародним стандарт IDEA (Ascom). Одним з найстійкіших симетричних алгоритмів криптоперетворення по праву вважається шифрування по ГОСТ 28147–89 (Росія).

За багатовікову історію розвитку були розроблені могутні швидкодійні симетричні алгоритми шифрування з відносно коротким ключем. Проте, симетричні криптографічні алгоритми, також відомі під ім'ям шифрування із закритим ключем, мають недоліки. Ученим і практикам не давала спокою так звана проблема розповсюдження симетричних ключів (проблема передачі секретного ключа по каналах зв'язку). Дійсно, організація шифрованого каналу зв'язку по відкритих комунікаційних лініях припускає наявність симетричного ключа у відправника і одержувача інформації. Це вже породжує відразу дві загрози. По-перше, секретність і цілісність повідомлення можуть бути скомпрометовані, якщо ключ перехоплюється, оскільки він передається від відправника до одержувача разом з повідомленням по тих же незахищених каналах. Як варіант, перш, ніж посилати один одному зашифровані повідомлення, один з учасників обміну повинен синтезувати ключ і при особистій зустрічі або за допомогою довіреної особи (наприклад, за допомогою фельд’єгерської служби) передати його своєму компаньйону (це не завжди реально зробити, і дуже незручно). По-друге, оскільки обидва учасники транзакції використовують один і той же ключ для зашифрування і розшифрування повідомлення, неможливо визначити, яка із сторін створила повідомлення. До того ж для кожного одержувача повідомлень потрібен окремий ключ, а це значить, що організації повинні мати величезне число закритих ключів, щоб підтримувати обмін даними зі всіма своїми кореспондентами.

При втраті або компрометації ключа дії по пересилці нового повинні бути здійснені заново.

Основні вимоги до здійснення успішної, незагрозливої транзакції можуть бути враховані за допомогою такого популярного механізму захисту електронної комерції, як шифрування з відкритим ключем.

В 1976 році вийшла в світ робота Уїтфріда Діффі і Мартіна Хелмана «Нові напрями в криптографії», в якій описувалися нові асиметричні криптоалгоритми. Некласична схема (з відкритим ключем) криптографічного перетворення припускала наявність двох різних ключів зашифрування і розшифрування: k ≠ k*. При цьому, знаючи ключ k, неможливо отримати ключ k*. Для повного циклу перетворення (зашифрування і розшифрування ) необхідні обидва ключі. Якщо інформація була зашифрована на ключі k, то розшифрувати її можна тільки за допомогою ключа k*, і навпаки.

Один з ключів (наприклад, k) називається відкритим (несекретним), інший (k*) — закритим (секретним). Кожний учасник інформаційного обміну (наприклад, Соколов) може синтезувати для себе пару ключів і один з них (відкритий) розіслати по відкритих каналах зв'язку всім своїм партнерам. Далі всі, хто має відкритий ключ Соколова k, можуть зашифрувати для нього повідомлення. Розшифрувати криптотекст може тільки власник закритого ключа k*, тобто Соколів. Для того, щоб Соколову стати повноправним учасником інформаційного обміну, йому необхідно отримати по відкритих каналах зв'язку індивідуальні відкриті ключі всіх своїх передбачуваних абонентів. Тим самим розв'язується проблема розповсюдження ключів шифрування.

Ідея асиметричних алгоритмів тісно пов'язана з теорією односторонніх функцій і з теорією складності математичних перетворень. Для забезпечення крипостійкості схем шифрування з відкритим ключем потрібні довгі ключові послідовності. Крім того, асиметричні алгоритми включають громіздкі операції зведення в ступінь і множення великих чисел, тому вони працюють значно повільніше симетричних. Найпоширеніший асиметричний криптоалгоритм RSA (по прізвищах авторів, професорів MIT, Rivest, Shamir, Adleman) був вперше опублікований в 1978 році і згодом прийнятий як стандарт в США. В стандарті RSA використовується розкладання алгебри великих цілих чисел на множники, крипостійкість алгоритму базується на складності їх факторизації.

RSA Security, Inc. - визнаний лідер засобів захисту електронних даних, була заснована в 1982 році авторами системи криптографічного захисту RSA Public Key Cryptosystem. Їх технології шифрування і ідентифікації використовуються більшістю провідних компаній і компаніями, що займаються електронною торгівлею. З появою Інтернет і Всесвітньої павутини (WWW) їх робота, пов'язана із захистом, стала більш значущою, а в додатках електронної торгівлі - грає визначальну роль. Їх програми шифрування вбудовуються більш ніж в 450 мільйонів копій популярних додатків для Інтернет, включаючи браузери, комерційні сервери і системи електронної пошти. Безпечні транзакції електронної торгівлі і безпечний зв'язок в Інтернет реалізуються, в основному, за допомогою програм RSA.

Окрім RSA, відомі алгоритм Ель-Гамаля, заснований на дискретному логарифмуванні великих чисел, алгоритм на основі еліптичних кривих і ін.

Асиметрична схема шифрування, безумовно, зручна при організації шифрованого зв'язку. Проте в криптографічних апаратно-програмних засобах захисту інформації (ЗЗІ) мережної дії часто застосовується «гібридна схема» шифрування. Яскравим прикладом такого ЗЗІ є американська система шифрування PGP (розробник – професор Філ Цимерман).

PGP Desktop при ініціалізації вбудовується в оболонку операційної системи (підтримується ОС MS Windows всіх сучасних версій, ОС Mac OS для Intel & Power PC), в поштові клієнти (підтримуються клієнти MS Outlook всіх сучасних версій, MS Outlook Express, MS Windows Mail, MS Microsoft Entourage, Apple Mail, Novell GroupWise, Mozilla Thunderbird, Lotus Notes сучасних версій), в Інтернет - пейджери (підтримуються AOL Instant Messenger, Trillian 3.1 for Windows, Apple iChat сучасних версій).

PGP об'єднує в собі кращі сторони симетричної криптографії і криптографії з відкритим ключем (асиметричної).

Користувачі генерують асиметричні ключові послідовності і обмінюються відкритими ключами з своїми партнерами. При відправленні кожного повідомлення система PGP генерує «сеансовий симетричний ключ» для шифрування даних. Сеансовий ключ є псевдовипадковим числом, що було генероване від випадкових рухів мишки і натиснень клавіш. Сеансовий ключ використовується надійним і швидким симетричним алгоритмом, яким PGP зашифровує повідомлення, перетворюючи його в шифртекст.

Для підвищення крипостійкості, зниження навантаження на канали зв'язку і економії дискового простору в системі застосовується стиснення інформації. Сеансовий ключ зашифровується відкритим ключем одержувача. Зашифрований відкритим ключем одержувача сеансовий ключ «прикріпляється» до шифртексту і передається разом з ним одержувачу, утворюючи так званий «цифровий конверт». Розшифрування цифрового конверту відбувається в зворотному порядку. На приймальній стороні система PGP використовує закритий ключ одержувача для виймання з повідомлення сеансового ключа. Отриманий сеансовий ключ PGP використовує для перетворення вихідного послання у відкритий текст.

Набір додатків PGP Desktop забезпечує підприємствам автоматизований і прозорий для користувача набір засобів шифрування для захисту конфіденційної інформації, що міститься в електронних повідомленнях. Завдяки додатку PGP Desktop Email організації можуть захищати свій бізнес і забезпечувати дотримання партнерських і регулюючих норм інформаційної безпеки і конфіденційності.

При відправці пошти одержувачам, що не використовують засобу безпеки, відправники можуть шифрувати окремі документи у вигляді одного пакету за допомогою додатків PGP Zip або PGP Self-Decrypting Archive і відправляти захищений файл як звичайне поштове вкладення.

Для електронної торгівлі потрібен високий ступінь захисту. До того ж функціонування системи захисту повинне бути непомітним для додатків високого рівня, щоб не погіршувати юзабіліті сайту магазина.

Загалом, існує два шляхи захисту секретної інформації при її переданні. Перший — забезпечити передачу інформації фізично захищеним каналом, що не належить Інтернет. Другим засобом захисту є шифрування інформації, яка передається таким чином, що вона може бути прочитана тільки адресатом. Шифрування інформації, що посилається по Інтернет, можна робити різноманітними способами.

Розглянемо можливі варіанти.

Згідно спрощеної моделі OSI, реалізованій в стеку протоколів TCP/IP, передбачається наявність чотирьох рівнів каналів передачі даних: прикладного, транспортного, мережного і канального. Відповідно, для кожного рівня можливість шифрування інформації, що передається, різна. Так, на прикладному рівні можна приховати дані, наприклад, електронного листа або одержуваної web-сторінки. Проте факт передачі листа, тобто діалог по протоколу SMTP приховати неможливо. На транспортному рівні може бути разом з даними прихований і тип інформації, що передається, проте IP-адреси одержувача і приймача залишаються відкритими. На мережному рівні вже з'являється можливість приховати і IP-адреси. Ця ж можливість є і на канальному рівні [13].

Чим нижче рівень, тим легше зробити систему, функціонування якої буде непомітне для додатків високого рівня, і тим більшу частину інформації, що передається, можна приховати.

Для кожного рівня моделі розроблені свої протоколи.

Так, на прикладному рівні для захисту електронної пошти застосовується протокол S/MIME (Secure Multipurpose Internet Mail Extension) або вже розглянута система PGP. Для захисту обміну по протоколу HTTP застосовується протокол SHTTP (Secure HTTP). На даному рівні шифрується текст поштового повідомлення, що передається, або вміст HTML-документа.

На транспортному рівні частіше за все застосовуються протоколи SSL (Secure Socket Layer) і його більш нова реалізація — TSL (Transport Layer Security). Також застосовується протокол SOCKS. Особливість протоколів транспортного рівня — незалежність від прикладного рівня, хоча частіше всього шифрування здійснюється для передачі по протоколу HTTP (режим HTTPS). Недоліком є неможливість шифрування IP-адрес і та включання в „тунель” IP-пакетів.

На мережному рівні використовуються два основні протоколи: SKIP (Simple Key management for Internet Protocol – просте управління ключами для IP-протоколу) і IPSec. На даному рівні можливо як шифрування всього трафіку, так і включання в „тунель”, що містить приховання IP-адреси. На мережному рівні будуються найпоширеніші VPN системи - Virtual Private Network віртуальна приватна мережа, це мережі, в яких застосовують технологію захисту інформації, що включає як елементи міжмережевого екранування, так і механізми криптографічного захисту мережного трафіку.

Канальний рівень представлений протоколами PPTP (Point-to-Point Tunneling Protocol), L2F (Layer-2 Forwarding) і L2TP (Layer-2 Tunneling Protocol).

Достоїнством даного рівня є прозорість не тільки для додатків прикладного рівня, але і для служб мережного і транспортного рівня. Зокрема, достоїнством є незалежність від вживаних протоколів мережного і транспортного рівня — це може бути не тільки IP-протокол, але і протоколи IPX (застосовується в локальних мережах з серверами на основі ОС Novell Netware) і NetBEUI (застосовується в локальних мережах Microsoft). Шифруванню підлягають як дані, що передаються, так і IP-адреси.

В кожному з вказаних протоколів по-різному реалізовані алгоритми аутентифікації і обміну ключами шифрування.

Найбільш швидким, зручним і доступним у віртуальних магазинах є варіант використання браузеру, що підтримує протокол SSL (Secure Socet Layer). Такими браузерами є, наприклад, широко відомі Microsoft Internet Explorer, Netscape Navigator, Opera, Google Chrome, Mozilla Firefox та інші.

Докладніше розглянемо функціонування протоколу SSL.

Протокол (стандарт) SSL (Secure Sockets Layer) був розроблений компанією Netscape Communications з метою захисту транзакцій в Internet по кредитних картках з використанням стійкої криптографії (довжина ключа до 128 битий). SSL – стандарт, контрольований американським урядом.

Протокол часто застосовується для установки захищеного з'єднання, коли користувач, що звернувся до web-серверу, передає або одержує конфіденційні відомості, наприклад про об'єм і вартість покупки в Інтернет-магазині, або одержує статистику своїх з'єднань у Інтернет-провайдера. В цьому випадку web-клієнт, наприклад Internet Explorer, автоматично переходить в захищений режим, про що свідчить піктограма «замок» в правій нижній частині вікна.

Протокол SSL передбачає функції аутентифікації, шифрування даних і забезпечення цілісності даних. Аутентифікація здійснюється шляхом обміну цифровими сертифікатами при встановленні з'єднання (сесії). Оскільки web-сервер звичайно приймає запити від довільних клієнтів, то частіше всього відбувається аутентифікація тільки серверу. Для шифрування даних застосовується симетричний сеансовий ключ. Обмін симетричними сеансовими ключами відбувається при встановленні з'єднання, при передачі сеансові ключі шифруються за допомогою відкритих ключів. Для забезпечення цілісності до повідомлення додається його хеш-код.

Розглянемо етапи установки SSL-з'єднання. Спочатку встановлюється стандартне TCP-з'єднання з портом серверу 443. Далі клієнт передає повідомлення «Client-Hello», в якому повідомляє підтримувану їм версію протоколу SSL і випадкову послідовність «Challenge_Data». У відповідь сервер передає повідомлення «Server-Hello», в якому указує версію SSL, ідентифікатор з'єднання «Connection_id», список базових шифрів (протоколів) і сертифікат серверу (підписаний відкритий ключ).

Мета наступного повідомлення, що відправляється клієнтом (повідомлення «Client_Master_Key»), — передача симетричного сеансового ключа, зашифрованого відкритим ключем серверу. Таким чином, тільки сервер може розшифрувати переданий симетричний ключ.

Отримавши ключ, сервер зашифровує цим ключем відправлену раніше послідовність «Challenge_Data» і передає її в повідомленні «ServerVerify». Отримавши і розшифрувавши дане повідомлення, клієнт упевнений, що сеансовий ключ отриманий і розшифрований сервером правильно. Для того, щоб сервер також міг переконатися в правильності отриманого їм ключа, клієнт зашифровує цим ключем ідентифікатор з'єднання «Connection_id», отриманий від серверу, і передає його в повідомленні «Client-Finished».

Таким чином, з'єднання встановлено, сервер перевірений, сеансовий ключ переданий. Тепер весь трафік може передаватися в зашифрованому вигляді. Для зовнішнього спостерігача видний трафік, що йде по 443 TCP-порту між двома вузлами з відомими IP-адресами [13].