Технології комп’ютерної безпеки
Проблеми правового захисту комп’ютерної інформації в Україні. Методи злому комп'ютерних систем. Захист їх від хакерів. Програми-шпигуни. Парольний захист операційних систем. Основи криптографії. Симетричний або асиметричний криптографічний алгоритм.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | книга |
Язык | украинский |
Дата добавления | 06.05.2013 |
Размер файла | 146,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Дуже оперативно програми, призначені для боротьби з конкретними видами вірусів, з'являються на сайті http://www.computerra.ru/scallwin/www.download.com, в розділі Downloads: PC: Utilities: Antivirus. Для боротьби зі спамовими листами розроблено протокол безпечної електронної пошти (SSL). Більшість клієнтів електронної пошти можна сконфігурувати для безпечних операцій з електронною поштою з використанням SSL. На вкладці Advanced в MS Outlook Express, наприклад, є опція: “This server requires a secure connection (SSL)”. Поштовий клієнт автоматично встановить нові порти для такого з'єднання. Іноді слід задати ці порти вручну. Дозволені такі порти SSL для наявних поштових послуг: SMTP- SSL (465), POP3-SSL (995) та IMAP-SSL (993).
Сервер електронної пошти використовує непідписане посвідчення SSL для безпечного кодування операцій пересилання електронної пошти. Зазвичай видається попередження про "непідписане посвідчення" при пересилці і отриманні електронної пошти, але процес залишається безпечним і шифрованим. Те ж справедливо і для клієнта webmail, який доступний з HTTPS. Цифрове посвідчення SSL - це електронний файл, який унікально ідентифікує індивідуумів і сервери. Цифрові посвідчення дозволяють клієнту (мережний навігатор) засвідчити сервер до установки сеансу SSL. Звичайно, цифрові посвідчення підписуються незалежною і довіреною третьою стороною, щоб гарантувати їх переконливість. Сторона, що підписала документ, називається уповноваженою (CA) стороною, як наприклад VeriSign. При повсюдному використанні протоколу SSL стане можливим заборонити передавання та прийом непідписаної кореспонденції, що дозволить уникнути небажаного спамового засилля. А тим часом в боротьбі зі спамом допомагають ряд спеціально призначених для цього програм:
* Telos версії 2.0 сканує вміст поштових ящиків на предмет виявлення заголовків спамових листів (які листи віднести до спаму, визначає сам користувач) і видаляє їх. Програма може працювати в автоматичному режимі, скануючи поштові ящики через певні проміжки часу. Telos можна налаштувати і для знищення листів, що приходять з певних адрес: http://members.xoom.com/bsoft/telos200.zip
* SpammerSlammer, який працює фільтром між вашою поштовою програмою і POP3 -сервером, відсікає небажані листи (критерії небажаності визначаються самим користувачем): http://sb.nowtools.com/spammerslammer.exe
* Якщо троянському коневі все-таки вдалося якимось чином пробратися на ваш комп'ютер, то вашу систему допоможе захистити програма Jammer чи Ad-Aware. Вони відстежують спроби запису в реєстр і встановлення з'єднання між серверною і клієнтською частинами трояна: http://www.agnitum.com/download/jammer.exe
5. Основи криптографії
Під криптографією будемо розуміти область знань, що відноситься до методів і засобів перетворення повідомлень у незрозумілу для сторонніх осіб форму, а також перевірки істинності цих повідомлень. Під криптоаналітикою будемо розуміти засоби і методи, спрямовані на подолання криптографічного захисту. Сукупність криптографії та криптоаналітики називається криптологією. Розшифровуванням будемо називати відновлення вихідного повідомлення при відомому ключі шифрування. Дешифруванням будемо називати процес відновлення вихідного повідомлення при невідомому ключі шифрування. Таким чином, ті, кому призначено шифроване повідомлення його розшифровують, а ті, хто перехоплює його, намагаються дешифрувати.
Клод Шеннон у своїй роботі „Теорія связи в секретных системах” узагальнив накопичений до нього досвід розробки шифрів. Вияснилося, що навіть у дуже складних шифрувальних системах можна виділити в якості складових частин шифри заміни, шифри перестановки та їх комбінації. Деякі відомості про ці прості шифри можна знайти у художній літературі, зокрема „Золотий жук” Едгара По і „Пляшущие человечки” Артура Конан Дойла.
Розглянемо два приклади простих шифрів.
Шифр „Сцитала”. Цей шифр відомо з часів війни Спарти проти Афін у V ст. до н.е. Для його реалізації використовувалась т.зв. „сцитала” - циліндричний жезл певного діаметру. На сциталу намотували вузьку папірусну стрічку і на ній писали повідомлення вздовж осі сцитали. Коли стрічку знімали, на ній залишалися незрозумілі літери. Для розшифровки повідомлення адресат намотував стрічку на такий самий жезл і читав повідомлення. В цьому шифрі перетворення оригінального тексту у шифрований зводиться до перестановки літер оригінального тексту. Тому клас таких шифрів отримав назву шифру перестановки.
Шифр Цезаря. Цей шифр реалізує таке перетворення відкритого тексту: кожна літера замінюється третьою після неї літерою алфавіту, який вважається написаним по колу, тобто після „я” йде „а”. Відмітимо, що Цезарь замінював її третьою літерою, але можна міняти і будь-якою іншою. Головне, щоби адресат цього повідомлення знав величину і напрямок цього зсуву. Клас шифрів, до якого відноситься шифр Цезаря, називається шифрами заміни. З цього, напевне зрозуміло, що створення хорошого шифру є задачею непростою. Тому бажано збільшити час життя шифру, але тут зростає імовірність того, що криптоаналітики противника зможуть розкрити шифр і читати зашифровані повідомлення. Якщо у шифрі є змінний „ключ”, то його заміна призводить до того, що розроблені противником методи вже не дадуть ефекту. Під ключем будемо розуміти змінний елемент шифру, який застосовується для шифрування конкретного повідомлення. Наприклад, у шифрі сцитала ключем є діаметр жезлу, а у шифрі Цезаря - величина і напрямок зсуву літер шифротексту відносно літер відкритого. Описані міркування призвели до того, що безпека повідомлень, що шифруються, в першу чергу стала забезпечуватися ключем. Сам шифр, шифромашина або принцип шифрування прийнято вважати відомими суперникові і доступними для попереднього вивчення, але у шифрі з'явився невідомий елемент -ключ, від якого істотно залежать застосовувані перетворення інформації. Тепер користувачі, перш ніж обмінятися шифрованими повідомленнями, повинні обмінятися ключем, за допомогою якого можна прочитати зашифроване повідомлення. А для криптоаналітиків, які хочуть прочитати перехоплене повідомлення, основною задачею є знаходження ключа.
5.1 Принципи частотного крипто аналізу
Встановлено, що в будь-якій мові літери абетки зустрічаються нерівномірно. Якщо взяти достатньо великий текст (порядку мільйона символів) загального змісту та підрахувати частоту, з якою кожна літера абетки зустрічається в цьому тексті, ми побачимо, що найчастіше в українських текстах зустрічається літера „О” (0.082), а в російських та англійських - „Е” (0.071 та 0.12 відповідно). Звичайно, в залежності від тематики текстів, частотні характеристики його змінюються, але тенденція залишається незмінною. На цьому факті ґрунтується метод частотного криптоаналізу. Якщо метод шифрування „перехопленої шифровки” не приховує частотних особливостей мови (а саме таким і є шифр Цезаря), то криптоаналітики виконують наступні дії:
Підраховують відносні частоти, з якими кожна літера абетки зустрічається в „перехопленому” повідомленні. Робиться це за формулою: частота=кількість/довжина; де кількість - скільки разів літера зустрічається в повідомленні; довжина - кількість літер в повідомленні.
Літеру з найбільшою відносною частотою ототожнюють з літерою, яка має найбільшу частоту в таблиці.
Визначають величину зсуву.
Пробують дешифрувати повідомлення з визначеною в п.3 величиною зсуву. Якщо отримано логічний зв`язний текст, повідомлення вважається дешифрованим. Якщо зв`язного тексту не отримано, процедуру продовжують.
Літеру з найбільшою відносною частотою ототожнюють з літерою, яка має другу найбільшу частоту в таблиці.
Пробують дешифрувати повідомлення, перебираючи частотну таблицю, поки не отримують зв`язного тексту.
Цим методом Вам необхідно користуватися для криптоаналізу в цій лабораторній роботі.
Криптографічна система RSA (Rivest, Shamir, Adleman), запропонована Рівестом, Шаміром і Едлеманом, належить до криптографічних систем з відкритим ключем. Її стійкість обумовлена великими проблемами при знаходженні розкладання великих простих чисел на множники.
Для того, щоби організувати передачу шифрованих повідомлень за допомогою криптосистеми RSA, необхідно зробити наступне:
За допомогою спеціальних алгоритмів згенерувати два великих простих числа p і q, які необхідно тримати у тайні.
Повідомити відправнику повідомлень (або розмістити у відкритому каталозі) число n=pq, а також випадкове ціле число Е, взаємно просте з добутком (p-1)(q-1).
Для розшифровки повідомлень, зашифрованих на відкритому ключі n, E, отримувачу необхідно мати число D, яке є мультиплікативним оберненим числа Е за модулем (p-1)(q-1), тобто DЕ=1 mod(p-1)(q-1). Знайти таке число дуже просто, оскільки найбільший спільний дільник Е і (p-1)(q-1) якраз і рівний одиниці за вибором Е.
Таким чином, відправник знає свій закритий ключ, n, E, а отримувач, крім того, знає ще свій секретний ключ D.
Довільне відкрите повідомлення можна уявити у вигляді послідовності цілих чисел з деякого інтервалу. Будемо вважати, що відправник передає секретне повідомлення у вигляді X1,…,Xn 0<Xi<n-1, для всіх і від 1 до k.
Відправник для кожного блоку Xi вираховує
Ci=(XiE) mod n (1)
і передає Ci відкритим каналом зв'язку.
Маючи n, E і Ci, отримувач може розшифрувати повідомлення, використовуючи співвідношення
Xi=(CiD) mod n. (2)
Розглянемо в якості прикладу випадок p=3, q=11, n=3x11=33, E=7, D=3. Легко переконатися, що кожне з чисел E=7 і DE=21 взаємно прості з (p-1)(q-1)=20. Для передачі повідомлення М=”02” відправнику треба обчислити C=(27) mod 33=29. Отримувач може розшифрувати повідомлення за допомогою такої операції: X=293 mod 33=2. =2. Якщо ж ми маємо текстове повідомлення, алфавіт якого пронумеровано від 00 до 32 (з пробілом), тоді можна зашифрувати довільне повідомлення російською мовою. Наприклад, якщо ми маємо повідомлення „ПРОВІРИМ ЗНАННЯ МАТЕМАТИКИ”, то у зашифрованому вигляді на ключі n=33, E=7 воно буде мати вигляд:
27 25 20 29 14 25 02 12 32 28 07 00 07 02 14 32 00 25 02 26 12 14 06 02 10 02
Зрозуміло, що шифром в даному випадку є шифр простої заміни за табл. 1.
Таблиця 1. Таблиця заміни при шифруванні
А |
Б |
В |
Г |
Д |
Е |
Ж |
З |
И |
Й |
К |
Л |
М |
Н |
О |
П |
Р |
С |
|
00 |
01 |
02 |
03 |
04 |
05 |
06 |
07 |
08 |
09 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
|
Т |
У |
Ф |
Х |
Ц |
Ч |
Ш |
Щ |
Ъ |
Ы |
Ь |
Э |
Ю |
Я |
|||||
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
Одним з відомих алгоритмів дешифрування системи RSA є метод ітерацій. Згідно з ним вихідне повідомлення можна отримати з шифрованого повторним шифруванням доти поки не отримаємо відкритий текст.
Приклад 1. Нехай р=383, q= 563, n=215629, E=49. В цьому випадку відкритий текст повністю отримується уже через 10 ітерацій повторного шифрування. Щоби в цьому впевнитися, достатньо довести, що 4910=1 mod (p-1)(q-1). Виконання цієї рівності можна перевірити навіть на калькуляторі: (494=5764801 -> 494=183017 mod 214684 … 499=56957 mod 214684 -> 4910= 1 mod 214684).
Інший метод атаки на шифр RSA - метод розкриття чисел p і q. Справа в тому, що n=pq (як і самі ці числа p і q) повинні бути досить великими, щоби розкласти його на множники було дуже складно (в цьому і полягає складність цього алгоритму шифрування). Бажано, щоби p і q вибиралися випадковим чином і не були „дуже близькими” одне до одного. Покажемо, яким чином можна використати близькість значень p і q. Будемо вважати, що p > q (що не накладає зайвих обмежень). Тоді для величин x=(p + q)/2, y=(p - q)/2 справедливе співвідношення: x2-y2=n. Перебираючи у порядку зростання варіанти x >
, легко знайти розв'язок рівняння x2-y2=n, так як x=(p + q)/2 буде близьким до
У випадку близькості p і q.
Приклад 2. Нехай n=pq=851. Використаємо описаний спосіб для знаходження p і q. Так як
=29.17, беремо x=30 і обчислюємо 302-851=49 і з першої спроби знаходимо розв'язок x=30 і y=7. Таким чином, p=30+7=37, q=30-7=23.
Крім вказаних обмежень на p, q, E, D накладаються й інші обмеження.
Система шифрування RSA може бути застосована для цифрового підпису. У випадку підпису повідомлення М відправник обчислює P=ME mod n. Отримувач, який має М та Р, перевіряє справедливість співвідношення РD=М mod n і впевнюється у справжності повідомлення М.
Приклад 3. Нехай p=3, q=11, n=3x11=33, E=7, D=3. Тоді відправник повідомлення М=”02” обчислює цифровий підпис Р=27 mod 33=29 і відправляє повідомлення „02, 29” отримувачу. Той, в свою чергу, перевіряє справжність повідомлення „02”, обчисливши М=(293) mod 33=2.
Насправді підписують не саме повідомлення, а його т.зв. хеш-функцію. Спочатку оригінальне повідомлення обробляється деякою функцією, яка має таку властивість, що приймає на вході рядки різної довжини, а на виході видає деякий „дайджест”, як правило, однакової і меншої, ніж вхідна, довжини. Хеш-функція виконує математичні обчислення, у результаті яких обчислюється значення хеш-функції. Хеш-функція може бути дуже простою. Наприклад, вона може виконати підсумовування всіх одиниць двійкового коду, або додати значення кодів всіх літер рядка, що обробляється (т.зв. контрольна сума) і т.д. Головне полягає в тому, що значення хеш-функції повинно залежати від усього вхідного рядка, щоби не можна було (в крайньому разі було б дуже важко) підібрати два різних вхідних рядки з однаковим значенням хеш-функції. Якщо таке трапляється, то кажуть що виникла колізія. Ми будемо користуватися найпростішою хеш-функцією, яка дуже недосконала і може викликати значні колізії. Однак, вона дуже проста і не потребує витрат машинного часу, а також складного програмування.
До отриманого таким чином числа застосовують алгоритм прикладу 3, отримуючи, таким чином, зашифрований цифровий підпис. Отримувач, маючи повідомлення і цифровий підпис, розшифровує текст повідомлення, знаходить хеш-функцію, розшифровує цифровий підпис, і порівнює отримані значення. Якщо вони однакові, повідомлення і цифровий підпис є істинними.
Проблема адміністрування криптографічними ключами вважається основним недоліком симетричних криптоалгоритмів. Цю проблему можна вирішити за допомогою асиметричної криптографії, тобто взагалі не використовувати симетричні криптоалгоритми. Однак такий підхід вважають нераціональним, оскільки асиметричні алгоритми працюють значно повільніше за симетричні і не можуть використовуватися у ряді важливих криптографічних застосувань. Іншим способом розповсюдження ключів є специфічні алгоритми, розроблені спеціально для таких застосувань. Одним з таких алгоритмів відкритого розповсюдження ключів є алгоритм Діффі-Хеллмана. Нехай учасники інформаційного обміну, сторони А і В, домовилися використати цей алгоритм для обміну ключами. Для цього необхідно виконати наступні обчислення. Спочатку А і В обирають велике просте число р, модуль системи. Для цього числа р обирають первісний корінь а. Числа р і а відкрито передають по каналах зв`язку, так щоб їх мали обидві сторони.
Отже сторони А і В отримали один і той самий криптографічний ключ, не пересилаючи його каналами зв`язку. Ніхто з осіб, що прослуховують цей канал, не зможе обчислити значення ключа. Адже їм відомі тільки p, a, X, Y, а для знаходження ключа необхідно розв`язати задачу дискретного логарифмування. Тому А і В мають цілком таємний ключ, який більше ніхто не знає. Вибір а і р може помітно впливати на безпеку системи. Найголовніше, це те, що р повинно бути великим, таким, щоби задача дискретного логарифмування у скінченому полі була складною обчислювальною проблемою. Можна обирати довільне а, яке є первісним коренем за модулем р; немає причин, за якими не можна було б обрати а найменшим з можливих, навіть однорозрядним. Навіть необов`язково, щоби а було первісним коренем, воно повинно лише утворювати досить велику підгрупу мультиплікативної групи за модулем р. Програмний генератор двійкових послідовностей BBS (назву утворено від перших літер його авторів - Ленори та Мануеля Блум та Майка Шуба, Blum-Blum-Shub) вважають одним з найсильніших програмних генераторів псевдовипадкових послідовностей. Він вважається криптографічно стійким, і може використовуватися у серйозних криптографічних застосуваннях.
Нехай є два простих числа, p i q, причому p?q?3 mod 4. Добуток цих чисел n=pq називається цілим числом Блума. Оберемо ще одне випадкове число, х, взаємно просте з n та обчислимо x0?x mod n. Це число вважається стартовим числом генератора. Далі можна обчислити наступні біти послідовності за формулою: xi?xi-12 mod n та si?xi mod 2. Останнє визначає, що в якості виходу генератора обирається молодший біт числа xі. Найцікавішою властивістю генератора BBS є те, що для визначення значення і-го біту зовсім необов`язково знати усі попередні і-1 бітів. Для безпосереднього обчислення значення і-го біту достатньо знати p та q. Безпека цієї схеми ґрунтується на складності розкладання n на множники. Число n можна опублікувати, так що кожен зможе генерувати біти за допомогою цього генератора. Однак поки криптоаналітик не розкладе n на множники, він не зможе передбачити вихід генератора. Більше того, генератор BBS непередбачуваний як в правому, так і в лівому напрямках. Це означає, що отримавши послідовність бітів, криптоаналітик не зможе передбачити ні наступний, ні попередній біти послідовності. Причиною цього є не якійсь заплутаний механізм генерації, а математика розкладання n на множники.
Приклад:
p=19;q=23
І |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
хi |
101 |
150 |
213 |
358 |
123 |
271 |
25 |
188 |
|
Si |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
p=q?3 mod 4
n=437
x=233
Обов'язковою умовою, що накладається на зародок х, повинно бути наступне:
а) x - просте; б) х не ділиться на р і на q.
Цей генератор повільний, але є спосіб його прискорити. Як вказано у [2], в якості бітів псевдовипадкової послідовності можна використовувати не один молодший біт, а log2m молодших бітів, де m - довжина числа xi. Порівняна повільність цього генератора не дозволяє використовувати його для потокового шифрування (цей недолік зі зростанням швидкодії комп`ютерів стає менш актуальним), а от для високонадійних застосувань, як наприклад, генерування ключів, він вважається кращим за багато інших.
Правильне функціонування підсистеми безпеки комп`ютерної системи вимагає реалізації ряду функцій загального призначення, пов`язаних з перетворенням вмісту об`єктів системи (файлів, записів бази даних тощо) або з обчислення деяких спеціальних функцій, які суттєво залежать від вмісту об`єктів. До таких функцій належать алгоритми контролю цілісності об`єктів, аутентифікації та авторизації об`єктів, що керують процесами, а також алгоритми підтримання конфіденційності інформації, що міститься в об`єктах комп`ютерної системи. Міжнародні та національні стандарти описують ряд добре відомих та вивчених функцій захисного характеру, зокрема алгоритми хешування MD5, MD2, SHA тощо; алгоритми генерування та перевірки електронного цифрового підпису RSA, DSS та інших. Усі ці алгоритми мають різні механізми викликів (зокрема, різну довжину аргументів). Це, у свою чергу, означає, що вони несумісні між собою. Тому задача вбудовування тих чи інших захисних механізмів в операційну систему на основі якогось одного алгоритму буде виглядати неефективною, особливо, якщо ця ОС розповсюджується в різних регіонах земної кулі. В цьому випадку логічним є побудова «шаруватої» структури, де окремий шар, реалізований, скажемо, як набір динамічних бібліотек, відповідає за захист інформації. Цей спосіб досить універсальний і широко застосовується у сімействі операційних систем Windows. Таким способом можна розв`язати великий клас задач, пов`язаних з універсалізацією ОС: від національних налаштувань системи до реалізації різноманітних засобів безпеки. Зрозуміло, що такі структури повинні мати т.зв. «відкритий інтерфейс», тобто бути детально документованими для того, щоби програмісти могли використати засоби цієї структури при створенні прикладного програмного забезпечення, в тому числі і для захисту інформації.
Сьогодні є достатня кількість криптографічних інтерфейсів, однак найбільшої популярності набув інтерфейс від Microsoft - Microsoft CryptoAPI. Зараз використовується CryptoAPI версії 2.0. Причина популярності цього інтерфейсу полягає в тому, що Microsoft інтенсивно впровадила захисні механізми CryptoAPI у свої операційні системи та прикладне програмне забезпечення. Сучасні ОС сімейства Windows містять багато криптографічних підсистем різного призначення як прикладного рівня, так і рівня ядра. Провідну роль в цьому грають якраз функції CryptoAPI, зокрема базові криптографічні функції, сукупність яких створює інтерфейс CryptoAPI 1.0.
Інтерфейс CryptoAPI 2.0 містить як базові криптографічні функції, так і функції, що реалізують перетворення вищого рівня - роботу з сертифікатами Х.509, обробку криптографічних повідомлень PKCS7 та інші функції, що підтримують інфраструктуру відкритих ключів. Однак набір базових криптографічних функцій цього інтерфейсу утворює CryptoAPI 1.0. Таким чином, функції CryptoAPI 1.0 утворюють криптографічне ядро прикладного рівня для сучасних операційних систем лінійки Windows. Програміст, який працює з цим інтерфейсом, може отримати усю необхідну інформацію про певного криптопровайдера засобами функції CryptGetProvParam. Перше, що необхідно знати при цьому - це набір криптографічних стандартів, які реалізують встановлені у системі криптопровайдери. Окрім різниці у стандартах, криптопровайдери відрізняються способом фізичної організації збереження ключової інформації. З точки зору програмування спосіб зберігання ключів значення не має, однак він дуже важливий з точки зору експлуатації та безпеки комп`ютерної системи. Існуючі криптопровайдери Microsoft зберігають ключову інформацію на жорсткому диску (у реєстрі або у файлах), а провайдери інших фірм (GemPlus, Schlumberger та Infineon) - на смарт-картках. Якщо способи фізичної організації збереження ключової інформації у криптопровайдерів відрізняється, то логічна структура, яка визначається інтерфейсами та з якою мають справу програмісти, однакова для будь-якого типу провайдера. Ключова база визначається набором ключових контейнерів, кожен з яких має ім`я, що привласнюється йому при створенні, а потім використовується для роботи з ним. У ключовому контейнері зберігається довготривала ключова інформація, наприклад, ключові пари для цифрового підпису або несиметричної системи шифрування.
Тепер розглянемо детально, як функції інтерфейсу CryptoAPI викликають бібліотеки конкретного криптопровайдера. Кожен криптопровайдер має своє власне ім`я та тип. Його ім`я - просто рядок, за допомогою якого система його ідентифікує. Так, базовий криптопровайдер Microsoft має назву Microsoft Base Cryptographic Provider v1.0. Тип криптопровайдера - ціле число (у нотації С - DWORD), значення якого ідентифікує набір криптографічних алгоритмів, що підтримуються. Криптопровайдер Microsoft має тип 1, цей тип провайдера реалізує в якості алгоритмів цифрового підпису та обміну ключів алгоритм RSA. Інший базовий криптопровайдер Microsoft, „Microsoft Base DSS and Diffie-Hellman Cryptographic Provider”, має тип 13. Цей тип криптопровайдера реалізує алгоритм цифрового підпису DSS, а в якості алгоритму обміну ключами - протокол Діффі-Хелмана.
Отже, для роботи з набором криптопровайдерами у системному реєстрі міститься список імен усіх криптопровайдерів. З кожним ім`ям пов`язаний тип криптопровайдера та ім`я бібліотеки, яка реалізує його алгоритми.
Окрім цього в системі міститься інформація про те, який криптопровайдер треба застосовувати, якщо користувач явно не вказав конкретне його ім`я, лише визначивши тип провайдера. Такий криптопровайдер називають провайдером за замовчуванням для заданого типу. Наприклад, для типу 1 провайдером за замовчуванням є Microsoft Base Cryptographic Provider v1.0, а для типу 13 - Microsoft Base DSS and Diffie-Hellman Cryptographic Provider. Для визначення криптопровайдерів за замовчуванням використовують функцію CryptGetDefaultProvider, а для зміни цього параметру - функції CryptSetProvider або CryptSetProviderEx. Функції дозволяють встановити провайдера за замовчуванням як для поточного користувача, так і для системи в цілому (усіх користувачів). Ці параметри зберігаються у вулику реєстру HKEY_LOCAL_MACHINE. Параметри, встановлені для поточного користувача, мають пріоритет над параметрами, встановленими для усієї системи, та зберігаються у вулику реєстру HKEY_CURRENT_USER. Якщо параметри для поточного користувача відсутні, застосовуються загальносистемні.
Тепер розглянемо, яким чином користувач починає працювати з конкретним криптопровайдером, і як система викликає конкретну бібліотеку, що відповідає обраному криптопровайдеру.
Робота з певним провайдером починається з виклику функції CryptAcquireContext, де користувач визначає тип потрібного криптопровайдера, його назву та назву робочого ключового контейнера. В результаті роботи функція повертає користувачу дескриптор криптопровайдера (handle), за допомогою якого користувач в подальшому буде звертатися до нього та передавати його у процедури для виконання усіх необхідних криптографічних операцій. Детальний опис контексту роботи з криптопровайдерами та приклади (мовою програмування С) дивіться у книжці Щербакова Л.Ю., Домашева А.В. «Прикладная криптография».
Власне бібліотеки CryptoAPI разом з файлами заголовків та допомоги постачаються у складі бібліотек MSDN.
6. Криптографічні ключі
В основу шифрування покладено два елементи: криптографічний алгоритм і ключ.
Криптографічний алгоритм - це математична функція, яка комбінує відповідний текст або іншу зрозумілу інформацію з ланцюжком чисел (ключем) з метою отримання незв язаного (шифрованого) тексту.
Усі криптографічні алгоритми можна поділити на дві групи: загальні і спеціальні.
Спеціальні криптоалгоритми мають таємний алгоритм шифрування, а загальні криптоалгоритми характерні повністю відкритим алгоритмом, і їх криптостійкість визначається ключами шифрування. Спеціальні алгоритми найчастіше використовують в апаратних засобах криптозахисту.
Загальні криптографічні алгоритми часто стають стандартами шифрування, якщо їхня висока криптостійкість доведена. Ці алгоритми оприлюднюють для обговорення, при цьому навіть визначається премію за успішну спробу його "злому". Криптостійкість загальних алгоритмів визначається ключем шифрування, який генерується методом випадкових чисел і не може бути повторений протягом певного часу. Криптостійкість таких алгоритмів буде вищою відповідно до збільшення довжини ключа.
Є дві великі групи загальних криптоа лгоритмі в: симетричні і асиметричні. До симетричних криптографічних алгоритмів належать такі алгоритми, для яких шифрування і розшифрування виконується однаковим ключем, тобто і відправник, і отримувач повідомлення мають користуватися тим самим ключем. Такі алгоритми мають досить велику швидкість обробки як для апаратної, так і для програмної реалізації. Основним їх недоліком є труднощі, пов'язані з дотриманням безпечного розподілу ключів між абонентами системи. Для асиметричних криптоалгоритмів шифрування і розшифрування виконують за допомогою різних ключів, тобто, маючи один із ключів, не можна визначити парний для нього ключ. Такі алгоритми часто потребують значно довшого часу для обчислення, але не створюють труднощів під час розподілу ключів, оскільки відкритий розподіл одного з ключів не зменшує криптостій-кості алгоритму і не дає можливості відновлення парного йому ключа.
Усі криптографічні алгоритми можна використовувати з різними цілями, зокрема:
* для шифрування інформації, тобто приховування змісту повідомлень і даних;
* для забезпечення захисту даних і повідомлень від модифікації.
З найпоширеніших методів шифрування можна виділити американський алгоритм шифрування DES (Data Encryption Standart, розроблений фахівцями фірми IBM і затверджений урядом США 1977 року) із довжиною ключа, що може змінюватися, та алгоритм ГОСТ 28147-89, який був розроблений та набув широкого застосування в колишньому СРСР і має ключ постійної довжини. Ці алгоритми належать до симетричних алгоритмів шифрування.
Алгоритм Потрійний DES був запропонований як альтернатива DES і призначений для триразового шифрування даних трьома різними закритими ключами для підвищення ступеня захисту.
RC2, RC4, RC5 - шифри зі змінною довжиною ключа для дуже швидкого шифрування великих обсягів інформації. Здатні підвищувати ступінь захисту через вибір довшого ключа.
IDEA (International Data Encryption Algoritm) призначений для швидкої роботи в програмній реалізації.
Для приховування інформації можна використовувати деякі асиметричні алгоритми, наприклад, алгоритм RSA. Алгоритм підтримує змінну довжину ключа та змінний розмір блоку тексту, що шифрується.
Алгоритм RSA дозволяє виконувати шифрування в різних режимах:
* за допомогою таємного ключа відправника. Тоді всі, хто має його відкритий ключ, можуть розшифрувати це повідомлення;
* за допомогою відкритого ключа отримувача, тоді тільки власник таємного ключа, який є парним до цього відкритого, може розшифрувати таке повідомлення;
* за допомогою таємного ключа відправника і відкритого ключа отримувача повідомлення. Тоді тільки цей отримувач може розшифрувати таке повідомлення.
Але не всі асиметричні алгоритми дозволяють виконувати шифрування даних у таких режимах. Це визначається математичними функціями, які закладені в основу алгоритмів.
Другою метою використання криптографічних методів є захист інформації від модифікації, викривлення або підробки. Цього можна досягнути без шифрування повідомлень, тобто повідомлення залишається відкритим, незашифрованим, але до нього додається інформацію, перевірка якої за допомогою спеціальних алгоритмів може однозначно довести, що ця інформація не була змінена. Для симетричних алгоритмів шифрування така додаткова інформація - це код автентифікації, який формується за наявності ключа шифрування за допомогою криптографічних алгоритмів.
Для асиметричних криптографічних алгоритмів формують додаткову інформацію, яка має назву електронний цифровий підпис. Формуючи електронний цифровий підпис, виконують такі операції:
* за допомогою односторонньої хеш-функції обчислюють прообраз цифрового підпису, аналог контрольної суми повідомлення;
* отримане значення хеш-функції шифрується: а) таємним або відкритим; б) таємним і відкритим ключами відправника і отримувача повідомлення - для алгоритму RSA
* використовуючи значення хеш-функції і таємного ключа, за допомогою спеціального алгоритму обчислюють значення цифрового підпису, - наприклад, для російського стандарту Р.31-10.
Для того, щоб перевірити цифровий підпис, потрібно:
* виходячи із значення цифрового підпису та використовуючи відповідні ключі, обчислити значення хеш-функції;
* обчислити хеш-функцію з тексту повідомлення;
* порівняти ці значення. Якщо вони збігаються, то повідомлення не було модифікованим і відправлене саме цим відправником.
Останнім часом використання електронного цифрового підпису значно поширюється, у тому числі для регулювання доступу до конфіденційної банківської інформації та ресурсів системи, особливо для оn-line -систем реального часу.
Ефективність захисту систем за допомогою будь-яких криптографічних алгоритмів значною мірою залежить від безпечного розподілу ключів. Тут можна виділити такі основні методи розподілу ключів між учасниками системи.
1. Метод базових/сеансових ключів. Такий метод описаний у стандарті ISO 8532 і використовується для розподілу ключів симетричних алгоритмів шифрування. Для розподілу ключів вводиться ієрархія ключів: головний ключ (так званий майстер-ключ, або ключ шифрування ключів) і ключ шифрування даних (тобто сеансовий ключ). Ієрархія може бути і дворівневою: ключ шифрування ключів/ключ шифрування даних. Старший ключ у цій ієрархії треба розповсюджувати неелектронним способом, який виключає можливість його компрометації. Використання такої схеми розподілу ключів потребує значного часу і значних затрат.
2. Метод відкритих ключів. Такий метод описаний у стандарті ISO 11166 і може бути використаний для розподілу ключів як для симетричного, так і для асиметричного шифрування. За його допомогою можна також забезпечити надійне функціонування центрів сертифікації ключів для електронного цифрового підпису на базі асиметричних алгоритмів та розподіл сертифікатів відкритих ключів учасників інформаційних систем. Крім того, використання методу відкритих ключів дає можливість кожне повідомлення шифрувати окремим ключем симетричного алгоритму та передавати цей ключ із самим повідомленням у зашифрованій асиметричним алгоритмом формі.
Вибір того чи іншого методу залежить від структури системи і технології обробки даних. Жоден із цих методів не забезпечує "абсолютного" захисту інформації, але гарантує, що вартість "злому" у кілька разів перевищує вартість зашифрованої інформації.
Щоб використовувати систему криптографії з відкритим ключем, потрібно генерувати відкритий і особистий ключі. Після генерування ключової пари слід розповсюдити відкритий ключ респондентам. Найнадійніший спосіб розповсюдження відкритих ключів - через сертифікаційні центри, що призначені для зберігання цифрових сертифікатів.
Цифровий сертифікат - це електронний ідентифікатор, що підтверджує справжність особи користувача, містить певну інформацію про нього, слугує електронним підтвердженням відкритих ключів.
Сертифікаційні центри несуть відповідальність за перевірку особистості користувача, надання цифрових сертифікатів та перевірку їхньої справжності.
7. Криптографічні протоколи
Протокол - це послідовність кроків, які вживають дві або більша кількість сторін для спільного вирішення деякої задачі. Слід звернути увагу на те, що всі кроки робляться в порядку суворої черговості і жоден з них не може бути зроблений раніше, ніж закінчиться попередній. Крім того, будь-який протокол передбачає участь двох сторін. Поодинці можна змішати і випити коктейль, але до протоколу ці дії не будуть мати ніякого відношення. Тому доведеться почастувати когось зробленою коктейлем, щоб його приготування і дегустація стали справжнім протоколом. І нарешті, протокол обов'язково призначений для досягнення якоїсь мети, інакше це не протокол, а пусте проведення часу. У протоколів є також і інші відмітні риси:
* кожен учасник протоколу повинен бути заздалегідь сповіщений про кроки, які йому належить зробити;
* всі учасники протоколу повинні слідувати його правилам добровільно, без примусу;
* необхідно, щоб протокол допускав лише однозначне тлумачення, а його кроки були абсолютно чітко визначені і не допускали можливості їх неправильного розуміння;
* протокол повинен описувати реакцію учасників на будь-які ситуації, які можуть виникнути в ході його реалізації. Іншими словами, неприпустимим є положення, при якому для ситуації, що виникла протоколом не визначено відповідна дія. Криптографічним протоколом називається протокол, в основі якого лежить криптографічний алгоритм. Проте метою криптографічного протоколу часто є не тільки збереження інформації в таємниці від сторонніх. Учасники криптографічного протоколу можуть бути близькими друзями, у яких немає один від одного секретів, а можуть бути і непримиренними ворогами, кожен з яких відмовляється повідомити іншому, яке сьогодні число. Проте їм може знадобитися поставити свої підписи під спільним договором або засвідчити свою особистість. У цьому випадку криптографія потрібна, щоб запобігти або виявити підслуховування сторонніми особами, а також не допустити шахрайства. Тому часто криптографічний протокол потрібно там, де його учасники не повинні зробити або дізнатися більше того, що визначено цим протоколом. Навіщо потрібні криптографічні протоколи у повсякденному житті нам доводиться стикатися з протоколами буквально на кожному кроці - граючи в будь-які ігри, або роблячи покупки в магазинах, або голосуючи на виборах. Багатьма протоколами нас навчили користуватися батьки, шкільні вчителі та друзі. Решта ми зуміли дізнатися самостійно.
В даний час люди все частіше контактують один з одним за допомогою комп'ютерів. Комп'ютери ж, на відміну від більшості людей, в школу не ходили, у них не було батьків, та й вчитися без допомоги людини вони не в змозі. Тому комп'ютери доводиться постачати формалізованими протоколами, щоб вони змогли робити те, що люди виконують не замислюючись. Наприклад, якщо в магазині не виявиться касового апарату, ви все одно опинитеся в змозі купити в ньому необхідну для себе річ. Комп'ютер ж таке кардинальна зміна протоколу може поставити у глухий кут. Більшість протоколів, які люди використовують при спілкуванні один з одним віч-на-віч, добре себе зарекомендували тільки тому, що їх учасники мають можливість вступити в безпосередній контакт. Взаємодія з іншими людьми через комп'ютерну мережу, навпаки, передбачає анонімність. Чи будете ви грати з незнайомцем в преферанс, не бачачи, як він тасує колоду і роздає карти? Довірите ви свої гроші зовсім сторонній людині, щоб він купив вам що-небудь в магазині? Пошлете ви свій бюлетень голосування пошті, знаючи, що з ним зможе ознайомитися хтось із поштових працівників і потім розповісти всім про ваші нетрадиційних політичних уподобаннях? Думаю, що ні. Нерозумно вважати, що комп'ютерні користувачі поводяться чесніше, ніж абсолютно випадкові люди. Те ж саме стосується і мережевих адміністраторів, і проектувальників комп'ютерних мереж. Більшість з них і справді досить чесні, проте інші можуть заподіяти вам дуже великі неприємності.
Тому так потрібні криптографічні протоколи, використання яких дозволяє захиститися від непорядних людей. Розподіл ролей Щоб опис протоколів була більш наочним, їх учасники будуть носити імена, які однозначно визначають ролі, їм уготовані (див. таблицю). Антон і Борис беруть участь у всіх двосторонніх протоколах. Як правило, починає виконання кроків, передбачених протоколом, Антон, а відповідні дії вживає Борис. Якщо протокол є трьох-або чотиристороннім, виконання відповідних ролей беруть на себе Володимир та Георгій. Про решту персонажів докладніше йтиметься дещо пізніше. Протоколи з арбітражем Арбітр є незацікавленим учасником протоколу, якому решта учасників повністю довіряють, роблячи відповідні дії для завершення чергового кроку протоколу.
Це означає, що у арбітра немає особистої зацікавленості у досягненні тих чи інших цілей, переслідуваних учасниками протоколу, і він не може виступити на боці одного з них. Учасники протоколу також приймають на віру все, що скаже арбітр, і беззаперечно виконують всім його рекомендаціям. У протоколах, яких ми дотримуємося у повсякденному житті, роль арбітра найчастіше грає адвокат. Однак спроби перенести протоколи з адвокатом як арбітра з повсякденні в комп'ютерні мережі наштовхуються на суттєві перешкоди:
* Легко довіритися адвокату, про якого відомо, що в нього незаплямована репутація і з яким можна встановити особистий контакт. Але якщо два учасника протоколу не довіряють один одному, арбітр, не одягнений у тілесну оболонку і існуючий десь у надрах комп'ютерної мережі, навряд чи буде користуватися в них великою довірою.
* Розцінки на послуги, що надаються адвокатом, відомі. Хто і яким чином буде оплачувати аналогічні послуги арбітра у комп'ютерній мережі?
* Введення арбітра в будь-який протокол збільшує час, що витрачається на реалізацію цього протоколу.
* Оскільки арбітр контролює кожен крок протоколу, його участь у дуже складних протоколах може стати вузьким місцем при реалізації таких протоколів. Відповідне збільшення числа арбітрів дозволяє позбутися даного вузького місця, проте одночасно збільшуються і витрати на реалізацію протоколу.
* У силу того, що всі учасники протоколу повинні користуватися послугами одного й того ж арбітра, дії зловмисника, який вирішить завдати їм шкоди, будуть спрямовані, в першу чергу, проти цього арбітра. Отже, арбітр є слабка ланка в ланцюзі учасників будь-якого протоколу з арбітражем. Незважаючи на зазначені перешкоди, протоколи з арбітражем знаходять широке застосування на практиці. Протокол із суддівством щоб знизити накладні витрати на арбітраж, протокол, в якому бере участь арбітр, часто ділиться на дві частини. Перша повністю збігається зі звичайним протоколом без арбітражу, а до другої вдаються лише в разі виникнення розбіжностей між учасниками. Для вирішення конфліктів між ними використовується особливий тип арбітра - суддя. Подібно арбітру, суддя є незацікавленим учасником протоколу, якому інші його учасники довіряють при прийнятті рішень.
Однак на відміну від арбітра, суддя бере участь аж ніяк не в кожному кроці протоколу. Послугами судді користуються, тільки якщо потрібно дозволити сумніви щодо правильності дій учасників протоколу. Якщо таких сумнівів ні у кого не виникає, суддівство не знадобиться. У комп'ютерних протоколах з суддівством передбачається наявність даних, перевіривши які довірена третя особа може вирішити, не змахлював чи хто-небудь з учасників цього протоколу. Хороший протокол з суддівством також дозволяє з'ясувати, хто саме веде себе нечесно. Це служить прекрасним превентивним засобом проти шахрайства з боку учасників такого протоколу. Самостверджуються протокол Самостверджуються протокол не вимагає присутності арбітра для завершення кожного кроку протоколу. Він також не передбачає наявність судді до розв'язання конфліктних ситуацій. Самостверджуються протокол влаштований так, що якщо один з його учасників шахраювати, інші зможуть моментально розпізнати нечесність, виявлену цим учасником, і припинити виконання наступних кроків протоколу. Звичайно ж, хочеться, щоб існував універсальний самостверджуються протокол на всі випадки життя. Однак на практиці в кожному конкретному випадку доводиться конструювати свій спеціальний самостверджуються протокол. Різновиди атак на протоколи Атаки на протоколи бувають спрямовані проти криптографічних алгоритмів, які в них задіяні, проти криптографічних методів, що застосовуються для їх реалізації, а також проти самих протоколів. Для початку припустимо, що використовуються криптографічні алгоритми та методи є досить стійкими, і розглянемо атаки власне на протоколи.
Особа, яка не є учасником протоколу, може спробувати підслухати інформацію, якою обмінюються його учасники. Це пасивна атака на протокол, яка названа так тому, що атакуючий (будемо іменувати його Петром) може тільки накопичувати дані і спостерігати за ходом подій, але не в змозі впливати на нього. Пасивна атака подібна криптоаналітичних атаці зі знанням тільки шифртекста. Оскільки учасники протоколу не володіють надійними засобами, що дозволяють їм визначити, що вони стали об'єктом пасивної атаки, для захисту від неї використовуються протоколи, що дають можливість запобігати можливі несприятливі наслідки пасивної атаки, а не розпізнавати її. Атакуючий може спробувати внести зміни в протокол заради власної вигоди. Він може видати себе за учасника протоколу, внести зміни до повідомлення, якими обмінюються учасники протоколу, підмінити інформацію, яка зберігається в комп'ютері і використовується учасниками протоколу для прийняття рішень. Це активна атака на протокол, оскільки атакуючий (назвемо його Зіновієм) може втручатися в процес виконання кроків протоколу його учасниками.
Отже, Петро намагається зібрати максимум інформації про учасників протоколу і про їхні дії. У Зиновія ж зовсім інші інтереси - погіршення продуктивності комп'ютерної мережі, отримання несанкціонованого доступу до її ресурсів, внесення спотворень у бази даних. При цьому і Петро, і Зіновій не обов'язково є абсолютно сторонніми особами. Серед них можуть бути легальні користувачі, системні і мережні адміністратори, розробники програмного забезпечення і навіть учасники протоколу, які поводяться непорядно і навіть зовсім не дотримуються цей протокол. В останньому випадку атакуючий називається шахраєм. Пасивний шахрай слід усім правилам, які визначені протоколом, але при цьому ще й намагається дізнатися про інших учасників більше, ніж передбачено цим протоколом. Активний шахрай вносить довільні зміни в протокол, щоб нечесним шляхом домогтися собі найбільшої вигоди. Захист протоколу від дій кількох активних шахраїв є дуже нетривіальну проблему. Проте за деяких умов цю проблему вдається вирішити, надавши учасникам протоколу можливість вчасно розпізнати ознаки активного шахрайства. А захист від пасивного шахрайства повинен надавати будь-який протокол незалежно від умов, в які поставлені його учасники.
8. Надійність криптосистем
8.1 Як вибрати хороший криптографічний алгоритм
Безпека криптосистем можна порівняти з надійністю ланцюга: чим міцніше її найслабша ланка, тим важче порвати цей ланцюг. У хорошій криптосистема має бути досконально перевірено всі - алгоритм, протокол. ключі та т. п. Якщо криптографічний алгоритм досить стійкий, а генератор випадкових чисел, який використовується для породження ключів, нікуди не годиться, будь-який досвідчений криптоаналітика в першу чергу зверне увагу саме на нього. Якщо вдасться поліпшити генератор, але не будуть зачищені комірки пам'яті комп'ютера після того, як у них побував згенерований ключ, гріш ціна такої безпеки. Розглянемо таку ситуацію. У криптосистема застосовуються стійкий криптографічний алгоритм і дійсно випадкові ключі, які акуратно видаляються з пам'яті комп'ютера після їх використання. Однак перед шифруванням файл, в якому поряд з вашим адресою та прізвищем зазначені всі ваші доходи за поточний рік, був помилково відправлений електронною поштою в податкову службу. У цьому випадку можна запитати. навіщо тоді вам знадобилися і стійкий алгоритм, і випадкові ключі, і зачистка комп'ютерної пам'яті на додачу?! Криптограф не позаздриш: у проектованої їм криптосистема він повинен передбачити захист від атак усіх типів, які тільки зможе придумати запалене уява криптоаналітика.
Криптоаналітика ж навпаки досить відшукати єдине слабка ланка в ланцюзі криптографічного захисту та організувати атаку проти цього дзвени. Крім цього, завжди слід враховувати, що на практиці загроза інформаційної безпеки будь-якого об'єкта виходить не тільки від криптоаналітика. Зрештою, яким би довгим не був криптографічний ключ, використовуваний вами для шифрування файлів, все одно, якщо правоохоронним органам знадобиться дізнатися, що зберігається у вашому комп'ютері. вони просто встановлять камеру і скрупульозно запишуть всю інформацію, що з'являється на його екрані. Недарма, за визнанням офіційних лип з АНБ, більшість збоїв у забезпеченні інформаційної безпеки відбувається не через знайдені слабкостей в криптографічних алгоритмах і протоколах, а з-за кричущих помилок при їх реалізації. Який би стійкістю не володів криптографічний алгоритм, її не потрібно долати в лоб, т. к. при успішній атаці її вдається просто обійти. Однак і нехтувати хорошими криптографічними алгоритмами теж не слід, щоб криптографія не стала найслабшою ланкою в ланцюзі, яке не витримає натиску атакуючого. При виборі хорошого криптографічного алгоритму можна: скористатися відомим алгоритмом, порівняно давно опублікованим в спеціальному виданні, присвяченому проблемам криптографії (якщо ніхто поки не повідомив про те, що зумів розкрити цей алгоритм. значить на нього слід звернути увагу); довіритися відомій фірмі, що спеціалізується на продажу засобів шифрування (навряд чи ця фірма буде ризикувати своїм добрим ім'ям. торгуючи нестійкими криптографічними алгоритмами); звернутися до незалежного експерта (неупередженість в думці дозволить йому об'єктивно оцінити достоїнства і недоліки різних криптографічних алгоритмів); звернутися за підтримкою до відповідного урядове відомство (навряд чи уряд буде вводити своїх громадян в оману. даючи їм помилкові поради щодо стійкості того іншого криптографічного алгоритму); спробувати створити власний криптографічний алгоритм. Всі перераховані варіанти мають суттєві вади. Не слід покладатися тільки на одну фірму, на одного експерта або на одне відомство. Багато людей, які називають себе незалежними експертами, мало розуміють в криптографії.
Більшість фірм, що виробляють засоби шифрування, - теж нітрохи не краще. У АНБ і ФАПСИ працюють найкращі криптографи в світі, однак зі зрозумілих міркувань вони не поспішають поділитися своїми секретами з першим зустрічним. Втім, і з другим теж. І навіть якщо ви геній у галузі криптографії, нерозумно використовувати криптографічний алгоритм власного винаходу без того, щоб його всебічно не проаналізували і не протестували досвідчені криптологи. Тому найбільш кращою представляється перша з перерахованих можливостей. Даний підхід до оцінки стійкості криптографічних алгоритмів можна було б визнати ідеальним, якби не один його не-достаток. На жаль, нічого не відомо про результати криптоаналітичних досліджень цих алгоритмів, які безсумнівно активно велися в. Минулому і продовжують також активно проводитися в усьому світі численними співробітниками різних урядових відомств, до компетенції яких входять Криптологічних вишукування. Ці відомства, швидше, всього, набагато краще фінансуються, ніж академічні інститути, провідні аналогічні дослідження. Та й почали вони займатися криптології значно раніше, ніж вчені, не мають військових звань, і фахівці з приватних фірм.
Тому можна припустити, що військові знайшли набагато простіші способи розкриття відомих шифрів, ніж ті, які винайдені за межами суворо охоронюваних будівель надсекретних урядових відомств. Ну і нехай. Навіть якщо вас заарештують і як доказ конфіскують у вас жорсткий диск з файлами, зашифрованими по DES-алгоритму. навряд чи криптоаналитики, що складаються на державній службі, прийдуть на судове засідання, щоб клятвено підтвердити, що дані для вашого обвинувального висновку отримані шляхом дешифрування конфіскованих файлів. Той факт, що можна розкрити якийсь конкретний криптографічний алгоритм, часто є значно більшим секретом, ніж інформація, отримана шляхом розкриття цього алгоритму. Краще виходити з припущення, що АНБ, ФАПСИ і іже з ними можуть, прочитати будь-яке повідомлення, яке вони побажають прочитати. Однак ці відомства не в змозі читати всі повідомлення, з вмістом яких хочуть ознайомитися. Головною причиною є обмеженість у коштах, що асигнуються урядом на криптоаналіз.
Інше розумне припущення полягає в тому, що компетентним органам набагато легше отримати доступ до зашифрованої інформації за допомогою грубої фізичної сили, ніж шляхом витончених, але дуже трудомістких математичних викладок, що призводять до розкриття шифру. Однак у кожному випадку набагато надійніше користуватися відомим криптографічним алгоритмом, який придуманий вже досить давно і зумів вистояти проти численних спроб розкрити його, зроблених авторитетними криптології.
Криптографічні алгоритми, призначені для експорту з США. В даний час у користувачів персональних комп'ютерів є можливість застосовувати алгоритми шифрування, вбудовані в різні програмні продукти. Досить придбати, наприклад, текстовий редактор Word, редактор електронних таблиць Excel або операційні системи Windows NT і NetWare. Крім вбудованих алгоритмів шифрування, всі ці програмні продукти мають ще одну спільну властивість: вони виготовлені в Сполучених Штатах. Перш ніж почати торгувати ними за кордоном, американські виробники в обов'язковому порядку повинні отримати дозвіл у свого уряду на експорт даних продуктів за межі США. Багато хто дотримується зараз такої думки: жоден криптографічний алгоритм, дозволений до експорту із США, не є достатньо стійким, щоб його не могли розкрити криптоаналитики з АНБ. Вважається, що американські компанії, які бажають продавати за кордоном свою продукцію, яка дозволяє шифрувати дані, за наполяганням АНБ переробляють використовуються криптографічні алгоритми так, що: час від часу окремі біти ключа підмішуються в шифртекст; ключ має довжину всього 30 біт замість офіційно заявлених 100 біт, оскільки більшість ключів виявляються еквівалентні; на початок кожного шіфруемого повідомлення вставляється фіксований заголовок, щоб полегшити криптоаналітичних атаку зі знанням відкритого тексту; будь шифроване повідомлення містить деякий фрагмент відкритого тексту разом з відповідним йому шифртекста.
...Подобные документы
Широке використання інформаційних технологій у всіх сферах життя суспільства. Інформація як об’єкт захисту. Основні види загроз безпеки інформації в комп’ютерних мережах. Несанкційований доступ до інформації і його мета. Порушники безпеки інформації.
реферат [253,2 K], добавлен 19.12.2010Основи безпеки даних в комп'ютерних системах. Канали проникнення та принципи побудови систем захисту. Ідентифікація і аутентифікація користувачів. Захист даних від несанкціонованого доступу. Технічні можливості зловмисника і засоби знімання інформації.
курс лекций [555,1 K], добавлен 05.12.2010Дослідження криптографічних методів захисту даних від небажаного доступу. Основи безпеки даних в комп'ютерних системах. Класифікаційні складові загроз безпеки інформації. Характеристика алгоритмів симетричного та асиметричного шифрування інформації.
курсовая работа [245,8 K], добавлен 01.06.2014Описання видів загроз безпеки інформації. Комп’ютерні віруси як особливий клас руйнуючих програмних дій, їх життєвий цикл та стадії виконання. Засоби і методи захисту інформації у комп’ютерних системах, механізм їх дії. Класифікація антивірусних програм.
курсовая работа [48,9 K], добавлен 28.09.2011Розрахунок інформаційних потоків у ЛОМ підприємства, планування середнього трафіку і коефіцієнта використання мережі. Планування структурованої кабельної системи. Структура клієнт-серверних компонентів корпоративної комп’ютерної мережі, захист інформації.
курсовая работа [828,7 K], добавлен 01.06.2013Особливість криптографічного захисту інформації. Огляд зарубіжного законодавства в області інформаційної безпеки. Механізми аудита і протоколювання облікові записи. Характеристика комп'ютерних вірусів. Антивірусне програмне забезпечення для компанії.
практическая работа [2,3 M], добавлен 16.11.2022Основи безпеки даних в комп'ютерних системах. Розробка програми для забезпечення захисту інформації від несанкціонованого доступу: шифрування та дешифрування даних за допомогою криптографічних алгоритмів RSA та DES. Проблеми і перспективи криптографії.
дипломная работа [823,1 K], добавлен 11.01.2011Загальна характеристика навчально-наукового комп'ютерного центру. Державні норми влаштування і обладнання кабінетів комп'ютерної техніки. Створення довідкової бази про факультет комп’ютерних систем для приймальної комісії у вигляді сайту для абітурієнтів.
отчет по практике [72,0 K], добавлен 07.07.2010Класифікація систем комп’ютерної графіки, її різновиди та сфери використання. Міні-комп’ютери як зменшена версія магістральних. Загальна структура і функції комп’ютерної графіки. Растрова графіка, класифікація, призначення і функції її прикладних систем.
контрольная работа [12,5 K], добавлен 12.10.2010Аналіз сучасного програмного забезпечення комп'ютерних інформаційних мережевих систем. Загальна економіко-правова характеристика Бершадського відділення Вінницької філії ЗАТ КБ "ПриватБанк", захист інформації та дотримання безпеки в комп’ютерній мережі.
курсовая работа [64,6 K], добавлен 14.05.2011Розвиток комп’ютерної техніки. Основи інформатики. Класифікація персональних комп’ютерів. Складові частини інформатики. Інформація, її види та властивості. Кодування інформації. Структурна схема комп’ютера. Системи числення. Позиційна система числення.
реферат [36,0 K], добавлен 27.10.2003Дослідження історії виникнення комп’ютерної томографії. Створення перших програмованих томографів. Фізико-технічні основи комп'ютерної томографії. Конфігурація сучасного спірального комп'ютерного томографа. Опис режимів сканування та отримання томограми.
отчет по практике [1,8 M], добавлен 01.12.2013Вивчення історії кафедри "Комп’ютерної інженерії". Дослідження процесу складання, монтажу, налагодження, тестування апаратного забезпечення комп’ютерних систем і мереж. Науково-дослідні роботи у лабораторії "Програмного забезпечення комп’ютерних систем".
отчет по практике [23,9 K], добавлен 01.03.2013Арифметичні основи, на яких ґрунтується функціонування комп'ютерної техніки. Основні поняття дискретної обробки інформації. Системи числення, форми подання чисел у комп'ютерах. Арифметичні операції, що виконуються над числами, подані у двійковому коді.
учебное пособие [903,6 K], добавлен 18.12.2010Терміни та визначення в галузі інформаційної безпеки, напрями її забезпечення (правовий, організаційний, інженерно-технічний). Захист інформації у комп’ютерних системах. Види загроз та можливі наслідки від їх реалізації. Суб’єкти та об’єкти захисту.
презентация [481,4 K], добавлен 21.10.2014Поняття та класифікація комп’ютерних ігор. Відтворення гри "Морський бій" у вигляді комп’ютерної програми. Компоненти програмного середовища Delphi, що були використані під час її створення. Алгоритм реалізації ігрового процесу та скріншоти з програми.
дипломная работа [418,2 K], добавлен 12.07.2013Класифікація комп’ютерних мереж і топологій. Побудова функціональної схеми локальної мережі. Організація каналів зв’язку. Вибір способу керування мережею. Вибір конфігурації робочих станцій. Програмне забезпечення локальної мережі та захист інформації.
курсовая работа [2,7 M], добавлен 15.06.2015Злом комп'ютерної системи. Злом через налагодження перемикачів операційних систем. Отримання несанкціонованого доступу до чужої інформації. Аналіз безпеки обчислювальної системи, розробка необхідних вимог і умов підвищення рівня її захищеності.
реферат [19,3 K], добавлен 05.11.2016Теоретичні основи технології віртуалізації як інструменту навчання, проектування мереж та системного адміністрування. Планування складу комп’ютерної мережі, вибір платформи та операційної системи, установка і налаштування програм. Питання охорони праці.
дипломная работа [5,9 M], добавлен 24.04.2014Поняття комп'ютерної мережі як системи зв'язку між двома чи більше комп'ютерами через кабельне чи повітряне середовище. Середовище передачі у комп'ютерних мережах. Передумови інтенсивного розвитку мережних технологій. Мережні сервіси, класифікація мереж.
реферат [20,8 K], добавлен 13.11.2013