Ми приступаємо до розгляду криптографічних сервісів безпеки, точніше, до викладу елементарних відомостей, що допомагають скласти загальне уявлення про комп’ютерну криптографію і її місце в загальній архітектурі інформаційних систем.
Криптографія необхідна для реалізації, принаймні, трьох сервісів безпеки:
шифрування;
контроль цілісності;
аутентифікація (цей сервіс був розглянутий нами раніше).
Шифрування - наймогутніший засіб забезпечення конфіденційності. У багатьох відношеннях воно займає центральне місце серед програмно-технічних регуляторів безпеки, будучи основою реалізації багато кого з них, і в той же час останнім (а часом і єдиним) захисним рубежем. Наприклад, для портативних комп’ютерів тільки шифрування дозволяє забезпечити конфіденційність даних навіть у разі крадіжки.
В більшості випадків і шифрування, і контроль цілісності грають глибоко інфраструктурну роль, залишаючись прозорими і для додатків, і для користувачів. Типове місце цих сервісів безпеки - на мережному і транспортному рівнях реалізації стека мережних протоколів.
Розрізняють два основні методи шифрування: симетричний і асиметричний. В першому з них один і той же ключ (що зберігається в секреті) використовується і для зашифрования, і для расшифрования даних. Розроблені вельми ефективні (швидкі і надійні) методи симетричного шифрування. Існує і національний стандарт на подібні методи - ГОСТ 28147-89 "Системи обробки інформації. Захист криптографічний. Алгоритм криптографічного перетворення".
Рис. 11.1 ілюструє використовування симетричного шифрування. Для визначеності ми вестимемо мову про захист повідомлень, хоча події можуть розвиватися не тільки в просторі, але і в часі, коли зашифровуються і розшифровуються файли, що нікуди не переміщаються.

Рис. 11.1. Використовування симетричного методу шифрування.
Основним недоліком симетричного шифрування є те, що секретний ключ повинен бути відомий і відправнику, і одержувачу. З одного боку, це створює нову проблему розповсюдження ключів. З другого боку, одержувач на підставі наявності зашифрованого і розшифрованого повідомлення не може довести, що він одержав це повідомлення від конкретного відправника, оскільки таке ж повідомлення він міг згенерувати самостійно.
В асиметричних методах використовуються два ключі. Один з них, несекретний (він може публікуватися разом з іншими відкритими відомостями про користувача), застосовується для шифрування, інший (секретний, відомий тільки одержувачу) - для расшифрования. Найпопулярнішим з асиметричних є метод RSA (Райвест, Шамір, Адлеман), заснований на операціях з великими (скажімо, 100-значными) простими числами і їх творами.
Проілюструємо використовування асиметричного шифрування (див. рис. 11.2).

Рис. 11.2. Використовування асиметричного методу шифрування.
Істотним недоліком асиметричних методів шифрування є їх низька швидкодія, тому дані методи доводиться поєднувати з симетричними (асиметричні методи на 3 - 4 порядки повільніше). Так, для вирішення задачі ефективного шифрування з передачею секретного ключа, використаного відправником, повідомлення спочатку симетрично зашифровують випадковим ключем, потім цей ключ зашифровують відкритим асиметричним ключем одержувача, після чого повідомлення і ключ відправляються по мережі.
Рис. 11.3 ілюструє ефективне шифрування, реалізоване шляхом поєднання симетричного і асиметричного методів.
На рис. 11.4 показано расшифрование ефективно зашифрованого повідомлення.
Відзначимо, що асиметричні методи дозволили вирішити важливу задачу сумісного вироблення секретних ключів (це істотно, якщо сторони не довіряють один одному), обслуговуючих сеанс взаємодії, при початковій відсутності загальних секретів. Для цього використовується алгоритм Діффі-Хелмана.

Рис. 11.3. Ефективне шифрування повідомлення.
Рис.
11.4. Расшифрованіє ефективно
зашифрованого повідомлення.
Певне поширення набув різновид симетричного шифрування, заснований на використовуванні складових ключів. Ідея полягає в тому, що секретний ключ ділиться на дві частини, що зберігаються окремо. Кожна частина сама по собі не дозволяє виконати расшифрование. Якщо у правоохоронних органів з’являються підозри щодо особи, що використовує деякий ключ, вони можуть в установленому порядку одержати половинки ключа і далі діяти звичайним для симетричного расшифрования чином.
Порядок роботи з складовими ключами - хороший приклад проходження принципу розділення обов’язків. Він дозволяє поєднувати права на різного роду таємниці (персональну, комерційну) з можливістю ефективно стежити за порушниками закону, хоча, звичайно, тут дуже багато тонкості і технічного, і юридичного плану.
Багато криптографічних алгоритмів як один з параметрів вимагають псевдовипадкове значення, у разі передбаченості якого в алгоритмі з’являється уразливість (подібне вразливе місце було знайдено в деяких варіантах Web-навігаторів). Генерація псевдовипадкових послідовностей - важливий аспект криптографії, на якому ми, проте, зупинятися не будемо.
Більш докладну інформацію про комп’ютерну криптографію можна черпнути із статті Г. Семенова "Не тільки шифрування, або Огляд криптотехнологий" (Jet Info, 2001, 3).
Криптографічні методи дозволяють надійно контролювати цілісність як окремих порцій даних, так і їх наборів (таких як потік повідомлень); визначати автентичність джерела даних; гарантувати неможливість відмовитися від досконалих дій ("неотказуемость").
В основі криптографічного контролю цілісності лежать два поняття:
хэш-функція;
електронний цифровий підпис (ЕЦП).
Хэш-функція - це труднообратимое перетворення даних (одностороння функція), реалізовуване, як правило, засобами симетричного шифрування з скріпленням блоків. Результат шифрування останнього блоку (залежний від всіх попередніх) і служить результатом хэш-функції.
Хай є дані, цілісність яких потрібно перевірити, хэш-функція і раніше обчислений результат її вживання до початкових даних (так званий дайджест). Позначимо хэш-функцію через h, початкові дані - через T, дані, що перевіряються, - через T’. Контроль цілісності даних зводиться до перевірки рівності h(T’)= h(T). Якщо воно виконано, вважається, що T’ = T. Збіг дайджестов для різних даних називається колізією. У принципі, колізії, звичайно, можливі, оскільки потужність безлічі дайджестов менше ніж потужність безлічі хэшируемых даних, проте те, що h є функція одностороння, означає, що за прийнятний час спеціально організувати колізію неможливе.
Розглянемо тепер вживання асиметричного шифрування для вироблення і перевірки електронного цифрового підпису. Хай E(T) позначає результат зашифрования тексту T за допомогою відкритого ключа, а D(T) - результат расшифрования тексту Т (як правило, шифрованого) за допомогою секретного ключа. Щоб асиметричний метод міг застосовуватися для реалізації ЕЦП, необхідне виконання тотожності
E(D(T))= D(E(T))= T
На рис. 11.5 показана процедура вироблення електронного цифрового підпису, що полягає в шифруванні перетворенням D дайджеста h(T).

Рис. 11.5. Вироблення електронного цифрового підпису.
Перевірка ЕЦП може бути реалізована так, як показано на рис. 11.6.
Рис.
11.6. Перевірка електронного
цифрового підпису.
З рівності
E(S’)= h(T’)
витікає, що S’ = D(h(T’) (для доказу достатньо застосувати до обох частин перетворення D і викреслити в лівій частині тотожне перетворення D(E())). Таким чином, електронний цифровий підпис захищає цілісність повідомлення і засвідчує особу відправника, тобто захищає цілісність джерела даних і служить основою неотказуемости.
Два російські стандарти, ГОСТ Р 34.10-94 "Процедури вироблення і перевірки електронного цифрового підпису на базі асиметричного криптографічного алгоритму" і ГОСТ Р 34.11-94 "Функція хэширования", з’єднані загальним заголовком "Інформаційна технологія. Криптографічний захист інформації", регламентують обчислення дайджеста і реалізацію ЕЦП. У вересні 2001 року був затверджений, а 1 липня 2002 року набув чинності новий стандарт ЕЦП - ГОСТ Р 34.10-2001, розроблений фахівцями ФАПСИ.
Для контролю цілісності послідовності повідомлень (тобто для захисту від крадіжки, дублювання і переупорядковування повідомлень) застосовують тимчасові штампи і нумерацію елементів послідовності, при цьому штампи і номери включають в підписуваний текст.
При використовуванні асиметричних методів шифрування (і, зокрема, електронного цифрового підпису) необхідно мати гарантію автентичності пари (ім’я користувача, відкритий ключ користувача). Для вирішення цієї задачі в специфікаціях X.509 вводяться поняття цифрового сертифікату і засвідчуючого центру.
Засвідчуючий центр - це компонент глобальної служби каталогів, що відповідає за управління криптографічними ключами користувачів. Відкриті ключі і інша інформація про користувачів зберігається засвідчуючими центрами у вигляді цифрових сертифікатів, що мають наступну структуру:
порядковий номер сертифікату;
ідентифікатор алгоритму електронного підпису;
ім’я засвідчуючого центру;
термін придатності;
ім’я власника сертифікату (ім’я користувача, якому належить сертифікат);
відкриті ключі власника сертифікату (ключів може бути дещо);
ідентифікатори алгоритмів, асоційованих з відкритими ключами власника сертифікату;
електронний підпис, що згенерував з використанням секретного ключа засвідчуючого центру (підписується результат хэширования всієї інформації, що зберігається в сертифікаті).
Цифрові сертифікати володіють наступними властивостями:
будь-який користувач, що знає відкритий ключ засвідчуючого центру, може взнати відкриті ключі інших клієнтів центру і перевірити цілісність сертифікату;
ніхто, окрім засвідчуючого центру, не може модифікувати інформацію про користувача без порушення цілісності сертифікату.
В специфікаціях X.509 не описується конкретна процедура генерації криптографічних ключів і управління ними, проте даються деякі загальні рекомендації. Зокрема, обмовляється, що пари ключів можуть породжуватися будь-яким з наступних способів:
ключі може генерувати сам користувач. У такому разі секретний ключ не потрапляє в руки третіх осіб, проте потрібно вирішувати задачу безпечного зв’язку із засвідчуючим центром;
ключі генерує довірена особа. У такому разі доводиться вирішувати задачі безпечної доставки секретного ключа власнику і надання довірених даних для створення сертифікату;
ключі генеруються засвідчуючим центром. У такому разі залишається тільки задача безпечної передачі ключів власнику.
Цифрові сертифікати у форматі X.509 версії 3 сталі не тільки формальним, але і фактичним стандартом, підтримуваним численними засвідчуючими центрами.
Столлингс Вильям. Криптография и защита сетей: принципы и практика /Пер. с англ – М.: Издательский дом «Вильямс», 2001.
Иванов М.А. Криптографические методы защиты информации в компьютерных системах и сетях. – М.: КУДИЦ-ОБРАЗ, 2001.
Жельников В. Криптография от папируса до компьютера. – М.: ABF, 1996.
Бабенко Л.К. Введение в специальность «Организация и технология защиты информации». – Таганрог: Изд-во ТРТУ, 1999. –54с.
Брюхомицкий Ю.А. Введение в информационные системы. – Таганрог: Изд-во ТРТУ, 2001. – 151 с.
Зегжда Д.П., Ивашко А.М. Как построить защищенную информационную систему Под научной редакцией Зегжды Д.П. и Платонова В.В. – СПб: Мир и семья-95,1997. – 312 с.
Гайкович В.Ю., Ершов Д.В. «Основы безопасности информационных технологий»
Котухов М.М., Марков А.С. Законодательно-правовое и организационно-техническое обеспечение информационной безопасности автоматизированных систем. – 1998. – 158 с.
Информационно-безопасные системы. Анализ проблемы: Учеб. пособие Алешин Н. В, Коэлод В. Н., Нечаев Д. А., Смирнов А. С., Сычев М. П., Пальчун Б. П., Черноруцкий И. Г., Черносвитов А. В. Под ред. В. Н. Козлова. – СПб.: Издательство С.-Петербургского, гос. техн. университета, 1996. – 69 с.
Громов В.И., Василева Г.А. «Энциклопедия компьютерной безопасности»