Кібербезпека банківських та комерційних структур
2. Криптографічний захист інформації в автоматизованих банківських системах
Більш детально розглянемо криптографічний захист інформації, яка зберігається та обробляється.
Криптографічний захист інформації - це вид захисту, який реалізується за допомогою перетворень інформації з використанням спеціальних (ключових) даних з метою приховування змісту інформації, підтвердження її справжності, цілісності, авторства тощо. Зашифровані повідомлення передаються відкрито, приховується їхній зміст.
Використання криптографічного захисту інформації під час побудови політики безпеки банківської on - line системи значно посилює безпеку роботи системи, але за умови, що ця система захисту створена належним чином та має безпечну систему розподілу криптографічних ключів.
Криптографічні методи захисту інформації - це методи захисту даних із використанням шифрування.
Шифрування інформації - спосіб маскування конфіденційної інформації; процес перетворення доступних даних на зашифровані (з обмеженим доступом). Процес маскування інформації здійснюється за допомогою спеціального шифру - набору цифр та символів за визначеним алгоритмом, розшифрування якого можливе лише після підбору до нього ключа. Шифрування інформації широко використовується в службах безпеки, банках та інших комерційних підприємствах, що містять дані з обмеженим доступом.
Головна мета шифрування (кодування) інформації - її захист від несанкціонованого читання.
Системи криптографічного захисту (системи шифрування інформації) для банківських оп-1іпе -систем можна поділити за різними ознаками:
• за принципами використання криптографічного захисту (вбудований у систему або додатковий механізм, що може бути відключений);
• за способом реалізації (апаратний, програмний, програмно-апаратний);
• за криптографічними алгоритмами, які використовуються (загальні, спеціальні);
• за цілями захисту (забезпечення конфіденційності інформації (шифрування) та захисту повідомлень і даних від модифікації, регулювання доступу та привілеїв користувачів);
• за методом розподілу криптографічних ключів (базових/сеансових ключів, відкритих ключів) тощо.
Вбудовані механізми криптографічного захисту входять до складу системи, їх створюють одночасно з розробленням банківської оп-1іпе-системи. Такі механізми можуть бути окремими компонентами системи або бути розподіленими між іншими компонентами системи.
За способом реалізації криптографічний захист можна здійснювати різними способами: апаратним, програмним або програмно-апаратним.
Апаратна реалізація криптографічного захисту - найбільш надійний спосіб, але й найдорожчий. Інформація для апаратних засобів передається в електронній формі через порт обчислювальної машини всередину апаратури, де виконується шифрування інформації. Перехоплення та підробка інформації під час її передавання в апаратуру може бути виконана за допомогою спеціально розроблених програм типу “вірус”.
Програмна реалізація криптографічного захисту є значно дешевшою та гнучкішою в реалізації. Але виникають питання щодо захисту криптографічних ключів від перехоплення під час роботи програми та після її завершення. Тому, крім захисту від “вірусних” атак, потрібно вжити заходів для забезпечення повного звільнення пам´яті від криптографічних ключів, що використовувались під час роботи програм “збирання сміття”.
Крім того, можна використовувати комбінацію апаратних і програмних механізмів криптографічного захисту. Найчастіше використовують програмну реалізацію криптоалгоритмів з апаратним зберіганням ключів. Такий спосіб криптозахисту є досить надійним і не надто дорогим. Але, вибираючи апаратні засоби для зберігання криптографічних ключів, треба пам’ятати про забезпечення захисту від перехоплення ключів під час їх зчитування з носія та використання в програмі.
В основу шифрування покладено два елементи: криптографічний алгоритм і ключ.
Криптографічний алгоритм - це математична функція, яка комбінує відповідний текст або іншу зрозумілу інформацію з ланцюжком чисел (ключем) з метою отримання незв’язаного (шифрованого) тексту.
Криптографічні алгоритми застосовують із метою:
• шифрування інформації;
• захисту даних і повідомлень (інформації) від модифікації або підробки.
Усі криптографічні алгоритми можна поділити на дві групи: загальні і спеціальні.
Спеціальні криптографічні алгоритми мають секретний алгоритм ттт и- фрування, а загальні криптографічні алгоритми характеризуються повністю відкритим алгоритмом, і їх криптостійкість визначається ключами шифрування. Спеціальні алгоритми найчастіше використовують в апаратних засобах криптографічного захисту.
Загальні криптографічні алгоритми часто стають стандартами шифрування, якщо їхню висока криптостійкість доведено. Ці алгоритми оприлюднюють для обговорення, при цьому навіть визначається премію за успішну спробу його “зламування”. Криптостійкість загальних алгоритмів визначається ключем шифрування, який генерується методом випадкових чисел і не може бути повторений протягом певного часу. Криптостійкість таких алгоритмів буде вищою зі збільшенням довжини ключа.
Є дві великі групи загальних криптографічних алгоритмів: симетричні і асиметричні.
До симетричних криптографічних алгоритмів належать такі алгоритми, для яких шифрування і розшифрування виконується однаковим ключем, тобто і відправник і отримувач повідомлення мають користуватися тим самим ключем. Такі алгоритми мають досить велику швидкість оброблення як для апаратної, так і для програмної реалізації. Основним їх недоліком є труднощі, пов’язані з дотриманням безпечного розподілу ключів між абонентами системи.
Для асиметричних криптографічних алгоритмів шифрування і розшифрування виконують за допомогою різних ключів, тобто, маючи один із ключів, не можна визначити парний для нього ключ. Такі алгоритми часто потребують значно довшого часу для обчислення, але не створюють труднощів під час розподілу ключів, оскільки відкритий розподіл одного з ключів не зменшує крип- тостійкості алгоритму і не дає можливості відновлення парного йому ключа.
Сьогодні існує достатня кількість криптографічних алгоритмів. Коротко розглянемо деякі з них.
Найбільш поширеними з них є стандарт шифрування даних DES (Data Encryption Standart) та алгоритм RSA, названий за першими літерами прізвищ розробників (Rivest, Shamir, Adleman), розроблені у 1970-х роках. Обидва алгоритми є державними стандартами США. DES є симетричним алгоритмом, a RSA - асиметричним. Ступінь захищеності під час використання цих алгоритмів прямо залежить від довжини ключа, що застосовується.
Ще одним алгоритмом, що широко застосовується, зокрема, в банківській системі, є алгоритм Діффі-Геллмана.
Алгоритм Діффі-Геллмана (Diffie-Hellman key exchange (D-H)) - це метод обміну криптографічними ключами. Один з перших практичних прикладів обміну ключами, що дозволяє двом учасникам, що не мають жодних попередніх даних один про одного, отримати спільний секретний ключ із використанням незахищеного каналу зв’язку. Цей ключ можна використати для шифрування наступних сеансів зв’язку, що використовують шифр з симетричним ключем.
Схему вперше оприлюднили Вітфілд Діффі і Мартін Геллман у 1976 році.
Хоча протокол Діффі-Геллмана є анонімним (без автентифікації) протоколом встановлення ключа, він забезпечує базу для різноманітних протоколів з автентифікацією, і використовується для забезпечення цілковитої прямої секретності в недовговічних режимах Transport Layer Security (відомих як EDH або DHE залежно від комплектації шифру).
Алгоритм DSA (Digital Signature Algorithm) - криптографічний алгоритм з використанням відкритого ключа для створення електронного підпису, але не для шифрування (на відміну від RSA і схеми Ель-Гамаля). Підпис створюється таємно, але може бути публічно перевірений. Це означає, що тільки один суб’єкт може створити підпис повідомлення, але будь-хто може перевірити її коректність.
Алгоритм Advanced Encryption Standard (AES) - симетричний алгоритм блочного шифрування (розмір блока 128 біт, ключ 128/192/256 біт), фіналіст конкурсу AES і прийнятий як американський стандарт шифрування урядом США.
Усі криптографічні алгоритми можна використовувати з різною метою, зокрема:
• для шифрування інформації, тобто приховування змісту повідомлень і даних;
• для забезпечення захисту даних і повідомлень від модифікації.
• Для приховування інформації можна використовувати деякі асиметричні алгоритми, наприклад, алгоритм RSA. Алгоритм підтримує змінну довжину ключа та змінний розмір блоку тексту, що шифрується.
• Алгоритм RSA дає змогу виконувати шифрування в різних режимах:
• за допомогою секретного ключа відправника. Тоді всі, хто має його відкритий ключ, можуть розшифрувати це повідомлення;
• за допомогою відкритого ключа отримувача, тоді тільки власник таємного ключа, який є парним до цього відкритого, може розшифрувати таке повідомлення;
• за допомогою секретного ключа відправника і відкритого ключа отримувача повідомлення. Тоді тільки цей отримувач може розшифрувати таке повідомлення.
Але не всі асиметричні алгоритми дозволяють виконувати шифрування даних у таких режимах. Це визначається математичними функціями, які закладені в основу алгоритмів.
Іншою метою використання криптографічних методів є захист інформації від модифікації, викривлення або підроблення. Цього можна досягнути без шифрування повідомлень, тобто повідомлення залишається відкритим, незашиф- рованим, але до нього додається інформацію, перевірка якої за допомогою спеціальних алгоритмів може однозначно довести, що ця інформація не була змінена.
Для симетричних алгоритмів шифрування така додаткова інформація - це код автентифікації, який формується за наявності ключа шифрування за допомогою криптографічних алгоритмів.
Для асиметричних криптографічних алгоритмів формують додаткову інформацію, яка має назву електронний цифровий підпис (сукупність даних, які дають змогу підтвердити цілісність електронного документа та ідентифікувати особу, яка його підписала.). Формуючи електронний цифровий підпис, виконують такі операції:
• за допомогою односторонньої хеш-функції обчислюють прообраз цифрового підпису, аналог контрольної суми повідомлення;
• отримане значення хеш-функції шифрується:
а) таємним або відкритим;
б) таємним і відкритим ключами відправника і отримувача повідомлення - для алгоритму RSA;
• використовуючи значення хеш-функції і секретного ключа, за допомогою спеціального алгоритму обчислюють значення цифрового підпису.
Для того, щоб перевірити цифровий підпис, потрібно:
• виходячи із значення цифрового підпису та використовуючи відповідні ключі, обчислити значення хеш-функції;
• обчислити хеш-функцію з тексту повідомлення;
• порівняти ці значення. Якщо вони збігаються, то повідомлення не було модифікованим і відправлене саме цим відправником.
Останнім часом використання електронного цифрового підпису значно поширюється, у тому числі для регулювання доступу до конфіденційної банківської інформації та ресурсів системи, особливо для оп-1іпе-систем реального часу.
Ефективність захисту систем за допомогою будь-яких криптографічних алгоритмів значною мірою залежить від безпечного розподілу ключів. Тут можна виділити такі основні методи розподілу ключів між учасниками системи.
1. Метод базових/сеансових ключів. Цей метод описано у стандарті 8532 і використовується для розподілу ключів симетричних алгоритмів шифрування. Для розподілу ключів вводиться ієрархія ключів: головний ключ (так званий майстер-ключ, або ключ шифрування ключів) і ключ шифрування даних (тобто сеансовий ключ). Ієрархія може бути і дворівневою: ключ шифрування ключів/ключ шифрування даних. Старший ключ у цій ієрархії треба розповсюджувати неелектронним способом, який виключає можливість його компрометації. Використання такої схеми розподілу ключів потребує значного часу і значних затрат.
2. Метод відкритих ключів. Цей метод описано у стандарті 11166 і його може бути використано для розподілу ключів як для симетричного, так і для асиметричного шифрування. За його допомогою можна також забезпечити надійне функціонування центрів сертифікації ключів для електронного цифрового підпису на базі асиметричних алгоритмів та розподіл сертифікатів відкритих ключів учасників інформаційних систем. Крім того, використання методу відкритих ключів дає можливість кожне повідомлення шифрувати окремим ключем симетричного алгоритму та передавати цей ключ із самим повідомленням у зашифрованій асиметричним алгоритмом формі.
Вибір того чи іншого методу залежить від структури системи і технології обробки даних. Жоден із цих методів не забезпечує “абсолютного” захисту інформації, але гарантує, що вартість “зламування” у кілька разів перевищує вартість зашифрованої інформації.
Для використання системи криптографії з відкритим ключем потрібно генерувати відкритий і особистий ключі. Після генерування ключової пари слід розповсюдити відкритий ключ респондентам. Найнадійніший спосіб розповсюдження відкритих ключів - через сертифікаційні центри, що призначені для зберігання цифрових сертифікатів.
Цифровий сертифікат - це електронний ідентифікатор, що підтверджує справжність особи користувача, містить певну інформацію про нього, слугує електронним підтвердженням відкритих ключів.
Загалом, для забезпечення належного рівня захищеності інформації потрібна криптографічна система - сукупність засобів криптографічного захисту, необхідної ключової, нормативної, експлуатаційної, а також іншої документації (зокрема й такої, що визначає заходи безпеки).
Головним обмеженням криптографічних систем є те, що при одержанні повідомлення зашифрованого парним ключем, не можна дізнатися напевне, хто саме його відправив.
Постановою правління Національного банку України від 28.09.2017 № 95 “Про затвердження Положення про організацію заходів із забезпечення інформаційної безпеки в банківській системі України” визначено такі принципи криптографічного захисту інформаційних систем Національного банку України:
1) криптографічний захист інформації в інформаційних системах Національного банку України на ділянці зв’язку між учасником інформаційних систем Національного банку та Національним банком забезпечується застосуванням багаторівневого (ешелонованого) підходу, за яким окремо за допомогою незалежних систем криптографічного захисту інформації захищається сеансів рівень базової еталонної моделі взаємодії відкритих систем (Open systems interconnection basic reference model, OSI/ISO) та прикладний рівень моделі взаємодії відкритих систем інформаційних систем Національного банку;
2) для захисту сеансового рівня моделі взаємодії відкритих систем інформаційних систем Національного банку використовується криптографічний протокол захисту на транспортному рівні (Transport layer security, TLS), забезпечуються контроль цілісності та конфіденційність інформації. Для прикладного рівня моделі взаємодії відкритих систем інформаційних систем Національного банку використовуються такі механізми захисту:
ідентифікація/автентифікація підписувача, контроль цілісності та конфіденційність на всіх етапах оброблення інформації;
3) залежно від категорії інформації щодо критерію конфіденційності, для забезпечення ідентифікації та автентифікації, використовується односпрямова- ний (криптографічний ключ лише на стороні сервера, сувора криптографічна автентифікація сервера) або двоспрямований достовірний канал захисту на транспортному рівні (криптографічний ключ на стороні клієнта і на стороні сервера, сувора криптографічна автентифікація обох сторін з’єднання).
Цією постановою також визначено такі обов’язкові заходи щодо криптографічного захисту інформації в інформаційних системах Національного банку України:
• налаштувати системи криптографічного захисту інформації в інформаційних системах Національного банку згідно з вимогами, які визначені у відповідній експлуатаційній документації кожної інформаційної системи Національного банку;
• забезпечити захист інформаційних систем банку від несанкціонованого доступу та дій, спрямованих на відмову в обслуговуванні.
У разі застосування криптографічного захисту банк зобов’язаний використовувати криптографічні алгоритми з такого переліку:
1) асиметричні алгоритми:
• алгоритм Діффі - Геллмана (алгоритм DH) для узгодження сеансових ключів шифрування;
• алгоритм цифрового підпису (алгоритм DSA) для цифрових підписів;
• алгоритм Діффі - Г еллмана на еліптичних кривих (алгоритм ECDH) для узгодження сеансових ключів шифрування;
• алгоритм цифрового підпису на еліптичних кривих (алгоритм ECDSA) для цифрових підписів;
• алгоритм Ривест - Шаміра - Адлемана (алгоритм RSA) для цифрових підписів і узгодження сеансових ключів шифрування або аналогічних ключів;
• алгоритм цифрового підпису (ДСТУ 4145-2002 “Інформаційні технології. Криптографічний захист інформації. Цифровий підпис, що ґрунтується на еліптичних кривих. Формування та перевіряння” для цифрових підписів;
2) алгоритми безпеки гешування SHA-224, SHA-256, SHA-384, SHA- 512, “Купина” (ДСТУ 7564:2014 “Інформаційні технології. Криптографічний захист інформації. Функція гешування”) або більш криптостійкі;
3) алгоритми симетричного шифрування:
• алгоритм “Advanced encryption standard” (AES) із використанням довжини ключа 128, 192 і 256 біт або більше;
• алгоритм криптографічного перетворення (ДСТУ ГОСТ 28147:2009 “Система оброблення інформації. Захист криптографічний. Алгоритм криптографічного перетворення);
• алгоритм “Калина” (ДСТУ 7624:2014 “Інформаційні технології. Криптографічний захист інформації. Алгоритм симетричного блокового перетворення”).
Банк зобов’язаний використовувати останню версію протоколу захисту на транспортному рівні та реалізацію цього протоколу, що підтримує безпечне повторне погодження з’єднання для захисту з’єднань, які управляються протоколом Transmission control protocol (TCP). Якщо безпечне повторне погодження з’єднання не підтримується, то ця процедура має бути відключена.