- •1. Безпека www-серверів 6
- •2. Безпека ос, що лежить в основі web-сервера 15
- •3. Безпечна інсталяція і конфігурація web-сервера 28
- •4. Безпека програмного середовища 42
- •5. Використання криптографії в захисті www-серверів 45
- •6. Захист web-портала від інформаційних атак 68
- •1. Безпека www-серверів
- •1.1. Короткий опис проблеми
- •1.2. Принципи безпеки веб-серверів
- •1. Слід реалізувати відповідну практику управління безпекою і контроль за функціонуванням системи.
- •2. Слід зробити кроки для гарантування того, що на web-сайті публікується тільки коректний вміст.
- •3. Слід гарантувати захист web-вмісту від неавторизованого доступу або модифікації.
- •4. Слід використовувати активний вміст тільки після ретельного зважування отримуваних при цьому переваг порівняно із збільшенням ризиків.
- •5. Слід використовувати аутентифікацію, засновану на криптографічних технологіях, для забезпечення відповідного захисту чутливих даних.
- •6. Слід гарантувати постійне функціонування системи забезпечення безпеки.
- •1.3. Причини уразливості web-сервера
- •1.4. Планування розгортання web-сервера
- •2. Безпека ос, що лежить в основі web-сервера
- •2.1. Безпечна інсталяція і конфігурація ос
- •2.2. Видалення або заборона непотрібних сервісів і програм
- •2.3. Конфігурація аутентифікації користувача в ос
- •2.4. Управління ресурсами на рівні ос
- •2.6. Використання Appliances для web-сервера
- •2.7. Спеціально посилені (pre-hardened) ос і web-сервери
- •2.7.1. Тестування безпеки операційної системи
- •2.7.2. Список дій для забезпечення безпеки ос, на якій виконується web-сервер
- •2.7.3. Застосування patch-ів і upgrade-ів ос
- •2.7.4. Видалення або заборона непотрібних сервісів і програм, конфігурація аутентифікації користувачів в ос.
- •2.7.5. Тестування безпеки ос
- •3. Безпечна інсталяція і конфігурація web-сервера
- •3.1. Безпечна інсталяція web-сервера
- •3.2. Конфігурація управління доступом
- •3.3. Розмежування доступу для по web-сервера
- •3.4. Управління доступом до директорії вмісту web-сервера
- •Управління впливом web Bots
- •Використання програм перевірки цілісності файлів
- •Список дій для безпечної інсталяції і конфігурації web-сервера
- •3.5. Конфігурація безпечної директорії web-вмісту
- •3.6. Використання програм перевірки цілісності
- •4. Безпека програмного середовища
- •5. Використання криптографії в захисті www-серверів
- •5.1. Асиметрична криптографія
- •5.2. Симетрична криптографія
- •5.3. Дайджести повідомлень
- •5.4. Цифрові підписи
- •5.5. Сертифікати
- •5.6. Забезпечення цілісності даних і призначеної для користувача аутентифікації за допомогою підписів xml
- •5.7. Формування цифрового підпису xml: основні чотири кроки
- •5.8. Перевірка цифрового підпису xml
- •5.9. Шифрування xml
- •5.9.1. Шифрування цілого xml-файла
- •5.9.2. Шифрування окремого елементу
- •5.9.3. Шифрування змісту елементу
- •5.9.4. Обробка шифрування xml
- •5.10. Введення в безпеку Web-сервісів
- •6. Захист web-портала від інформаційних атак
- •6.1. Підсистема розмежування доступу
- •6.2. Підсистема антивірусного захисту
- •6.3. Підсистема контролю цілісності
- •6.4. Підсистема виявлення вторгнень
- •6.5. Підсистема аналізу захищеності
- •6.6. Підсистема криптографічного захисту
- •6.7. Підсистема управління засобами захисту Web-портала
- •Висновок
5.4. Цифрові підписи
Ключі також використовуються для створення і перевірки цифрових підписів. Алгоритм дайджеста можна застосовувати для обчислення значення дайджеста повідомлення, а потім за допомогою закритого ключа по цьому значенню згенерувати цифровий підпис. Одержувач цього повідомлення спочатку перевірить цілісність значення хеш-функції, повторивши обчислення дайджеста. Потім він використовує відкритий ключ відправника повідомлення для перевірки підпису. Якщо значення дайджеста було змінене, цей підпис не буде підтверджений на стороні одержувача. Якщо ж перевірка значення дайджеста і підпису приведе до позитивного результату, можна зробити наступний вивід:
після обчислення дайджеста до повідомлення не вносилися зміни (цілісність повідомлення);
повідомлення отримане дійсно від власника відкритого ключа (призначена для користувача аутентифікація).
5.5. Сертифікати
У найзагальнішому вигляді цифрові сертифікати - це структура даних, яка містить дві інформаційні частини:
ідентифікацію (наприклад, ім'я, контактна адреса і ін.) власника сертифікату (індивідуума або організації); і відкритий ключ власника сертифікату.
відкритий ключ власника сертифікату.
Сертифікати, які видають відповідні органи, надаються окремим особам або організаціям і включають дві необхідні частини: особа власника і відкритий ключ. Такі органи також підписують сертифікат, використовуючи свій власний закритий ключ - будь-яка зацікавлена сторона може переконатися в цілісності сертифікату, перевіривши цей підпис.
5.6. Забезпечення цілісності даних і призначеної для користувача аутентифікації за допомогою підписів xml
Специфікація підпису XML – “Цифровий підпис XML” (XMLDS) - яка була розроблена спільними зусиллями організації W3C і IETF, має статус Рекомендації W3C. Цей документ визначає правила обробки і синтаксис, призначені для упаковки в XML-формат даних про цілісність повідомлення, його аутентифікації і призначеної для користувача аутентифікації.
У попередньому розділі йшла мова про взаємодію між тур оператором і його партнерами (готелями). Припустимо, що тур оператор хоче викликати метод GetSpecialDiscountedBookingForPartners Web-сервіса свого партнера. Цей метод надає послугу інтерактивного резервування місць в готелі за спеціальною ціною (із знижкою). Причому побачити цю знижку можуть тільки бізнес партнери, а не споживачі.
Викликаючи метод SOAP GetSpecialDiscountedBookingForPartners, тур оператор включає в нього інформацію про цілісність повідомлення і призначеної для користувача аутентифікації. При отриманні цього виклику брандмауеру XML готелю потрібно буде проглянути SOAP-повідомлення, щоб повірити, що:
повідомлення не було змінене, поки воно передавалося в Web-сервіс готелю (цілісність повідомлення);
запрошуюча сторона є бізнес партнером (призначена для користувача аутентифікація).
Якщо виконано ці дві умови, брандмауер XML дозволяє запрошуючій стороні перейти до SOAP-серверу. Процес призначеної для користувача аутентифікації:
Тур оператор направляє в Web-сервіс готелю SOAP-запит про виклик методу. Цей запит включає всю інформацію, що відноситься до забезпечення безпеки (призначена для користувача аутентифікація і призначена для користувача аутентифікація).
Web-сервіс готелю захищений брандмауером XML, який приймає всі запити, що направляються в цей SOAP-сервер. Брандмауер XML перевіряє, чи ідентично отримане повідомлення тому, яке запрошуюча сторона збиралася відправити.
Якщо цілісність повідомлення не порушена, брандмауер XML прочитує ідентифікаційну інформацію запрошуючої сторони з цього SOAP-запита і перевіряє, чи є цей користувач бізнес партнером.
Якщо запрошуюча сторона є бізнес партнером, брандмауер XML дозволяє запрошуючій стороні перейти до SOAP-серверу.
Лістинг 1 - це простій SOAP-запит, який передає в Web-сервіс готелю виклик методу GetSpecialDiscountedBookingForPartners. У цьому SOAP-запиті відсутні які-небудь дані про цілісність повідомлення або призначеної для користувача аутентифікації. Лістинг 1 - це початкова точка демонстрації застосування специфікації “Цифровий підпис XML”.
Лістинг 1
<?xml version=”1.0”?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/”>
<SOAP-ENV:Body>
<s:GetSpecialDiscountedBookingForPartners
xmlns:s=“http://www.MyHotel.com/partnerservice/”>
<!--Parameters passed with the method call--> </s:GetSpecialDiscountedBookingForPartners>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope> SOAP в даному випадку використовується як приклад XML-формата, щоб продемонструвати “Цифровий підпис XML”, який не є специфічним для SOAP. Тому її можна застосовувати, щоб вставляти підписи і профілі повідомлення в будь-який екземпляр XML: SOAP або який-небудь інший.
У наступному прикладі теги цифрового підпису XML будуть вставлені в заголовок SOAP. Цифровий підпис - це гнучка технологія, вона допускає включення таких тегів в будь-яке місце XML-файла. Насправді існують три типи підписів XML: що укладає в конверт (enveloping), укладається в конверт (enveloped) і відособлена (detached). Якщо підпис XML обертає дані, що підлягають підписанню, говорять, що це підпис, що укладає в конверт. Якщо ж дані, що підлягають підписанню, обертають цей підпис (наприклад, підпис XML стає елементом даних XML, які підписуються), то цей підпис називається такою, що укладається в конверт. Нарешті, якщо підпис і дані, що підлягають підписанню, зберігаються роздільно - підписуваний елемент і елемент підпису є елементами одного рівня - такий підпис прийнято вважати відособленим. У прикладі, який в цій статті ілюструє застосування специфікації “Цифровий підпис XML”, використовуються відособлені підписи.
