Загальні вказівки до виконання лабораторних робіт 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Загальні вказівки до виконання лабораторних робіт



ЗМІСТ

Загальні вказівки до виконання лабораторних робіт..................................................................................  
Лабораторна робота №1. Основні методи захисту інформації........................................................................  
Лабораторна робота №2. Аутентифікація користувачів web-систем засобами технології рнр…  
Лабораторна робота № 3. Захист інформації за допомогою пароля……………………………………..  
Лабораторна робота № 4. Шифр Цезаря……...……...  
Лабораторна робота № 5. Шифр Віженера..………...  
Лабораторна робота № 6. Блочний шифр tea………  
Лабораторна робота № 7. Дослідження крипто-алгоритму шифрування rsa………………………….  
Лабораторна робота № 8. Дослідження електронного цифрового підпису (ецп) rsa……………………….  
Лабораторна робота № 9. Вивчення крипто-алгоритму шифрування ель гамаля………………….  
Лабораторна робота № 10. Вивчення електронного цифрового підпису (ецп) ель гамаля……………….  
Перелік рекомендованих джерел..…... ………............  

ЗАГАЛЬНІ ВКАЗІВКИ ДО ВИКОНАННЯ ЛАБОРАТОРНИХ РОБІТ

 

Дані методичні вказівки містять опис і порядок виконання лабораторних робіт з дисциплін «Захист інформації у комп'ютерних системах» і «Основи захисту інформації».

Метою лабораторних робіт є дослідження методів захисту інформації в комп'ютерних системах і мережах.

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

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

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

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


ЛАБОРАТОРНА РОБОТА №1

ОСНОВНІ МЕТОДИ ЗАХИСТУ ІНФОРМАЦІЇ

Мета: ознайомитися з основними методами криптографічного захисту інформації. Одержати практичні навички створення ПО по криптографічних перетвореннях інформації.

Тривалість роботи – 1 години

 

ОСНОВНІ ТЕОРЕТИЧНІ ВІДОМОСТІ

 

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

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

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

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

Криптоаналіз - займається розкриттям шифру без знання ключа (перевірка стійкості шифру).

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

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

Більшість засобів захисту інформації базується на використанні криптографічних шифрів і процедур шифрувания-дешифрування. Відповідно до стандарту ГОСТ 28147-89 під шифром розуміють сукупність оборотних перетворень множини відкритих даних на множину зашифрованих даних, що задаються ключем і алгоритмом перетворення.

У криптографії використовуються наступні основні алгоритми шифрування:

- алгоритм заміни (підстановки) - символи відкритого тексту заміняються символами того ж або іншого алфавіту відповідно до заздалегідь обумовленої схеми заміни;

- алгоритм перестановки - символи відкритого тексту переставляються за певним правилом у межах деякого блоку цього тексту;

- гамірування - символи відкритого тексту складаються із символами деякої випадкової послідовності;

- аналітичне перетворення - перетворення відкритого тексту за деяким аналітичним правилом (формулою).

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

Симетричніі криптосистеми

Шифри перестановки

У шифрах середніх століть часто використовувалися таблиці, за допомогою яких виконувалися прості процедури шифрування, засновані на перестановці букв у повідомленні. Ключем у цьому випадку є розміри таблиці. Наприклад, повідомлення "Неясне стає ще більше незрозумілим" записується в таблицю з 5 рядків і 6 стовпців по стовпцях.

Н Е Щ Ь З М
Е С Е Ш Р І
Я Т Б Е О Л
С А І Н З И
Н Є Л Е У М

 

Для отримання шифрованого повідомлення текст зчитується по рядкам і групується по 5 букв:

НЕЩЬЗ МЕСЕШ РІЯТБ ЕОЛСА ІНЗИН ЄЛЕУМ

 

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

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

Шифри простої заміни

Система шифрування Цезаря - окремий випадок шифру простої заміни. Метод заснований на заміні кожної літери повідомлення на іншу літеру того ж алфавіту, шляхом зсуву від вихідної літери на k літер.

Відома фраза Юлія Цезаря VEN1 VINI VICI - прийшов, побачив, переміг зашифрована за допомогою даного методу, перетвориться в SBKF SFAF SFZF (при зсуві на 4 символи).

Грецьким письменником Полібієм за 100 років до н.е. був винайдений так званий полібіанський квадрат розміром 5*5, заповнений алфавітом у випадковому порядку. Грецький алфавіт має 24 букви, а 25-м символом є пробіл. Для шифрування на квадраті знаходили літеру тексту й записували в шифротекст літеру, розташовану нижче неї в тому ж стовпці. Якщо буква виявлялася в нижньому рядку таблиці, то брали верхню літеру з того ж стовпця.

Шифри складної заміни

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

Нехай за ключ використовується група з тpьоx цифр - 314, тоді:

- Повідомлення АБСОЛЮТНО СЕКРЕТНО;

- Ключ 3143143143143143143;

- Шифровка ФПИСЬИОССАХИЛФИУСС.

Гамірування

Процес зашифрування полягає в генерації гами шифру й накладенні цієї гами на вихідний відкритий текст. Перед шифруванням відкриті дані розбиваються на блоки Т(0), однакової довжини (по 64 біта). Гама шифру генерується у вигляді послідовності блоків Г(ш), аналогічної довжини (Т(ш)=Г(ш) +Т(0), де + -побітове додавання, i=1…m).

Процес розшифровування зводиться до повторної генерації шифру тексту й накладення цієї гами на зашифровані дані Т(0) =Г(ш) +Т(ш).

ПОРЯДОК ВИКОНАННЯ РОБОТИ

 

Мовою C++ або Pascal написати програму шифрування або дешифрування текстового файлу методом, зазначеним викладачем.

КОНТРОЛЬНІ ЗАПИТАННЯ

1 Мета й завдання криптографії.

2 Симетричні криптосистеми: шифри перестановки.

3 Симетричні криптосистеми: шифри простої заміни.

4 Симетричні криптосистеми: шифри складної заміни.

5 Симетричні криптосистеми: гаммірування.

6 Асиметричні криптосистеми, схема шифрування Ель Гамаля.


ЛАБОРАТОРНА РОБОТА № 2

 

ЗАСОБАМИ ТЕХНОЛОГІЇ РНР

 

Мета: вивчення принципів аутентифікації користувачів в Web-системах на прикладі РНР-сеансів.

Тривалість роботи – 1 години

Принципи аутентифікації

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

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

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

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

Паролі можуть перехоплюватися електронним шляхом. Використовуючи програми перехоплення клавіатурного введення на терміналах або аналізатори мережних протоколів (sniffers), зломщики можуть перехоплювати цікаві пари ім'я користувача - пароль. Шифрування мережного потоку даних дозволяє знизити ризик перехоплення паролів.

Механізми аутентифікації вбудовані в найбільш популярні Web-Браузери й сервери. Аутентифікація користувачів - це досить поширена задача й існують можливості аутентифікації вбудовані в HTTP-Протокол (Hypertext Transfer Protocol - протокол передачі гіпертекстів). Сценарії й Web-Сервери можуть запитувати аутентифікацію у Web-Браузера. Після цього Web-Браузер повинен вивести на екран діалогове вікно або щось подібне й запросити в користувача необхідну інформацію. Хоча Web-Сервер запитує нові деталі аутентифікації в кожному запиті користувача, Web-браузеру немає необхідності запитувати цю інформацію для кожної сторінки. У загальному випадку браузер зберігає деталі аутентифікації, поки відкрито вікно браузера, і автоматично відправляє їх без втручання з боку користувача.

Описана можливість HTTP-протоколу називається базовою аутентифікацією. Базову аутентифікацію можна включити засобами Web-сервера.

Запуск сеансу

Перш ніж можна буде скористатися функціональними можливостями сеансу, варто запустити сам сеанс. Існує кілька способів зробити це.

Але найпростіший полягає в тому, що сценарій починається з виклику функції:

Session start ();

Ця функція перевіряє, чи існує ідентифікатор поточного сеансу. Якщо ні, вона його створює. Якщо ж ідентифікатор поточного сеансу вже існує, вона завантажує зареєстровані змінні сеансу.

Реєстрація змінних сеансу

Для того щоб одержати можливість відслідковувати змінні від одного сценарію до іншого, їх необхідно зареєструвати. Це робиться шляхом виклику функції session_register (). Наприклад, для реєстрації змінної $myvarзастосовується наступний код:

$myvar=5; session register("myvar");

Даний оператор реєструє ім'я змінної й відслідковує її значення. Відстеження змінної буде здійснюватися, поки не завершиться сеанс, або поки вручну не відміниться її реєстрація.

За один прийом можна зареєструвати більше одної змінної, передавши розділений комами список імен змінних:

Session register ("myvar1","myvar2");.

Використання змінних сеансу

Щоб зробити змінну сеансу доступною для використання, спочатку необхідно запустити сеанс.

Після цього з'являється доступ до цієї змінної. Якщо включено опцію register_globals, то доступ до цієї змінної можна одержати через скорочену форму її ім'я, наприклад, $myvar. Якщо ж згадана опція не включена, одержати доступ до змінноїо можна через асоціативний масив$HTTP_SESSION_VARS, наприклад, $HTTP_SESSIQN_VARS["myvar”].

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

$result=session_is_registered("myvar");

Ця функція перевірить, чи є $myvarзареєстрованою змінною сеансу, і поверне trueабо false.

Можна зробити іншим шляхом – перевірити масив $HTTP SESSION_VARSна предмет наявності в ньому змінної.

Приклад сеансу

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

Приклад включає три простих сценарії. Перший, index.php, забезпечує форму для вхідної реєстрації й аутентифікації користувачів Web-сайту. Другий, secret.php, представляє інформацію тільки для тих користувачів, які успішно пройшли вхідну реєстрацію. Третій, logout.php, реалізує вихід користувача із системи.

Вихідна сторінка, відображувана сценарієм index.php, надає користувачеві можливість увійти в систему. У випадку якщо він почне спробу отримати доступ до секрет­ної сторінки, не пройшовши вхідну реєстрацію, буде видане відповідне повідомлення.

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

Подивимося на код додатка. Більша частина коду зосереджена в сценарії index.php.

<?php

session_start ();

if (isset ($userid, $password))

if ($userid && $password)

{

if ($userid=="test" && $password=="test")

{

$valid_user = $userid; session_register("valid_user");

}

}

?>

<html>

<body>

<?php

if (session_is_registered ("valid_user"))

{

echo "Ви зареєстровані в системі як". $valid_user. "<br>";

echo "<a href=\"logout.php\">Log out</a><br>";

}

else

{

if (isset ($userid))

{

// якщо користувач намагався зареєструватися,

//але виникла помилка

echo "Неможливо ввійти";

} else

{

// якщо користувач або не намагався зареєструватися,

// або покинув сайт

echo "Ви не зареєстровані в системі. <br>";

}

//provide form to log in

echo "<form method=post action=\"index.php\">";

echo "<table>";

echo "<tr><td>Логін:</td>";

echo "<td><input type=text name=userid></td></tr>"; echo <tr><td>Пapoль:</td>”;

echo "<td><input type=password name=password></td></tr>";

echo "<tr><td colspan=2 align=center>";

echo "<input type=submit value=\"Увійти\"></td></tr>";

echo "</table></form>";

}

?>

<br>

<a href="secret.рhр">Секретна сторінка</а>

</body>

</html>

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

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

Першим в сценарії виконується виклик session start(). Ця функція завантажує змінну сеансу $valid_user, якщо остання була зареєстрована.

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

echo "<form method=post action=\" index. php\">";

echo "<table>";

echo "<tr><td>Логін:</td>";

echo "<td><input type=text name=userid></td></tr>";

echo "<tr><td>Пapoль:</td>";

echo "<td><input type=password name=password></td></tr>";

echo "<tr><td colspan=2 align=center>";

echo "<input type=submit value=\"Увійти\"></td></tr>";

echo "</table></form>";

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

if ($userid && $password)

{

if ($userid=="test" && $password=="test")

{

$valid_user = $userid; session_register ("valid_user");

}

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

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

if (session_is_registered("valid_user"))

{

echo "Ви зареєстровані в системі як. $valid_user. "<br>";

echo "<a href=\"logout.php\">Log out</a> <br>";

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

 

if (isset($userid)}

{

// якщо користувач намагався зареєструватися, але

виникла помилка

echo"Неможливо ввійти"; }

Оскільки $valid_userє зареєстрованою змінною сеансу, її не можна перезаписати шляхом передачі іншого значення через URL, наприклад так:

members only. php?valid user=testuser

Розглянемо секретну сторінку.

<?php

session_start();

echo "<h2> Ця сторінка тільки для зареєстрованих коритсувачів</h2>";

// перевірити змінні сеансу

if (session_is_registered("valid_user"))

{ echo "<р> Ви зареєстровані в системі як:$valid_user.</р>";

echo "<р><hз>Це секретна інформація. Вона доступна тільки зареєстрованим користувачам. </h3></p>";

}

else

{ echo "<р>Ви не зареєстровані в системі.</р>";

echo "<р>Сторінка доступна тільки зареєстрованим користувачам. </р>";

}

echo "<a href=\"index.php\">Ha головну сторінку</а>";

?>

</body> </html>

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

Розглянемо сценарій logout.php, що завершує реєстрацію користувача в системі.

<?

session_start ();

$old_user = $valid_user;

// зберегти для перевірки чи реєструвався користувач

$result = session_unregister ("valid_user"); session_destroy ();

?>

<html> <body>

<І>Вихід із системи</h1>

<?

if (!empty ($old_user))

{ if ($result)

{ //якщо користувач був зареєстрований, не залишив систему echo "Ви вийшли із системи. <br>";

}

else

{ // якщо користувач був зареєстрований

// і не може залишити систему

echo "Неможливо вийти. <br>";

}

}

else

{ // якщо користувач не був зареєстрований,

/ / але якось потрапив на цю сторінку

echo "Ви не входили в систему, тому не можете вийти. <br>";

}

?>

<а href="index.php">Ha головну сторінку</а>

</body> </html>

Ми запускаємо сеанс, запам'ятовуємо старе ім'я користувача, скасовуємо реєстрацію змінної $valid_userі завершуємо сеанс. Після цього користувачеві видається одне з наступних повідомлень: він вийшов із системи, не може вийти із системи, оскільки спочатку навіть не зареєструвався.

Наведений вище набір простих сценаріїв є основою для багатьох проектів.

ПОРЯДОК ВИКОНАННЯ РОБОТИ

 

1 Вивчити принципи аутентифікації користувачів в Web- системах.

2 Реалізувати систему аутентифікації за допомогою РНР-сеансів.

КОНТРОЛЬНІ ЗАПИТАННЯ

1 В чому полягає суть атаки на інформацію?

2 Якими категоріями володіє інформація з погляду інформаційної безпеки?

3 Якими категоріями володіє інформаційна система з погляду інформаційної безпеки?

4 Які існують моделі захисту інформації?

5 Основні вимоги до інформаційної безпеки.


ЛАБОРАТОРНА РОБОТА № 3

Атаки на пароль

На сьогоднішній день пароль є найбільш прийнятним і тому найбільше часто використовуваним засобом встановлення автентичності, що ґрунтується на знаннях суб'єктів доступу.

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

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

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

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

Кілька років назад, коли обчислювальної потужності для повного перебору всіх паролів не вистачало, хакерами був придуманий метод, заснований на тому, що в якості паролю людиною вибирається існуюче слово або деяка інформація про себе або своїх знайомих (ім'я, дата народження й т.ін.). А оскільки в будь-якій мові не більше 100000 слів, то їхній перебір займе досить невеликий час, і від 40 до 80 % існуючих паролів можуть бути вгадані за допомогою простої схеми, названою “атакою по словнику”. До речі, до 80 % цих паролів може бути вгадане з використанням словника розміром усього 1000 слів.

Сьогодні користувачі вже розуміють, що вибирати такі паролі не можна, але, видимо, ніколи експерти по комп'ютерній безпеці не дочекаються використання таких простих і що радують душу паролів, як 34jхs5U@bта!6;). Тому навіть досвідчений користувач хитрить і вибирає такі паролі, як hоре1, user1997, раsSwOr, toor, roottoor, раго1, gfhjkm, asхz. Видно, що всі вони, як правило, базуються на осмисленому слові й деякому простому правилі його перетворення: додати цифру, додати рік, перевести через букву в інший регістр, записати слово навпаки, додати записане навпаки слово, записати російське слово латинськими буквами, набрати російське слово на клавіатурі з латинською розкладкою, скласти пароль із поруч розташованих на клавіатурі клавіш.

Тому не треба дивуватися, якщо такий “хитрий” пароль буде розкритий хакерами, які вже вставили у свої програми ті правила, за якими може йти перетворення слів. У самих "просунутих" програмах (John The Ripper, Password Cracking library) ці правила можуть бути програмувальними й задаватися за допомогою спеціальної мови самим хакером.

Приведемо приклад ефективності такої стратегії перебору. У багатьох книгах по безпеці пропонується вибирати за надійний пароль два осмислених слова, розділених деяким знаком (наприклад, good!password). Підрахуємо, за скільки часів у середньому будуть зламані такі паролі, якщо таке правило включене в набір програми-зломщика (нехай словник 10000 слів, розділовими знаками можуть бути 10 цифр і 32 розділові знаки й спеціальні символи. Машина класу Pentium зі швидкістю 15000 паролів/сек): 10000*(32+10)*10000/15000*2=140000 секунд або менш 1,5 дня.

Чим більша довжина пароля, тим більшу безпеку буде забезпечувати система, тому що будуть потрібні більші зусилля для його відгадування. Це обставина можна представити в термінах очікуваного часу розкриття пароля або очікуваного безпечного часу. Очікуваний безпечний час (Тб) – половина добутку числа можливих паролів і часу, необхідного для того, щоб спробувати кожний пароль із послідовності запитів. Представимо це у вигляді формули:

(3.1)

де t- час, необхідний на спробу введення пароля, рівний E/R; E - число символів у переданому повідомленні при спробі одержати доступ (включаючи пароль і службові символи); R - швидкість передачі (символи/хв) у лінії зв'язку; S - довжина пароля; А - число символів в алфавіті, з яких складається пароль. Якщо після кожної невдалої спроби підбора автоматично передбачається десятисекундна затримка, то безпечний час різко збільшується.

Тому при використанні аутентифікації на основі паролів захищеною системою повинні дотримуватися наступні правила:

а) не дозволяються паролі менше 6-8 символів;

б) паролі повинні перевірятися відповідними контролерами;

в) символи пароля при їхньому введенні не повинні з'являтися в явному вигляді;

г) після введення правильного пароля видається інформація про останній вхід у систему;

д) обмежується кількість спроб введення пароля;

е) уводиться затримка часу при неправильному паролі;

ж) при передачі по каналах зв'язку паролі повинні шифруватися;

з) паролі повинні зберігатися в пам'яті тільки в зашифрованому вигляді у файлах, недоступних користувачам;

і) користувач повинен мати можливість самому змінювати пароль;

к) адміністратор не повинен знати паролі користувачів, хоча може їх змінювати;

л) паролі повинні періодично змінюватися;

м) встановлюються терміни дії паролів, після закінчення яких треба зв'язатися з адміністратором.

Проблема вибору пароля

Вибір довжини пароля у значній мірі визначається розвитком технічних засобів, їхньою елементною базою і її швидкодією. У цей час широко застосовуються багатосимвольні паролі, де S>10. У зв'язку із цим виникають питання: як і де його зберігати і як зв'язати його з аутентифікацією особистості користувача. На ці питання відповідає комбінована система паролів, у якій код пароля складається із двох частин. Перша частина складається з 3- 4-х десяткових знаків, якщо код цифровий, і більше 3- 4-х, якщо код буквений, які легко запам'ятати людині. Друга частина містить кількість знаків, обумовлена вимогами до захисту й можливостями технічної реалізації системи, вона міститься на фізичному носії й визначає ключ-пароль, розрахунок довжини коду якого ведеться за зазначеною вище методикою. У цьому випадку частина пароля буде недоступна для порушника.

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

Для перевірки уразливості паролів використовуються спеціальні контролери паролів. Наприклад, відомий контролер Кляйна, здійснює спроби злому пароля шляхом перевірки використання в якості паролю вхідного ім'я користувача, його ініціалів і їхніх комбінацій, перевірки використання в якості паролю слів з різних словників, починаючи від найбільш уживаних в паролі, перевірки різних перестановок слів, а також перевірки слів мовою користувача-іноземця. Перевірка паролів в обчислювальних мережах за допомогою контролера Кляйна показала досить високі результати - більшість користувачів використовують прості паролі. Показовий приклад, коли контролер Кляйна дозволив визначити 100 паролів з 5 символів, 350 паролів з 6 символів, 250 паролів з 7 символів і 230 паролів з 8 символів.

Наведений аналіз дозволяє сформулювати наступні правила зниження уразливості паролів і спрямовані на протидію відомим атакам на них:

- розширити застосовуваний у паролі алфавіт - використовувати прописні й малі літери латинських і російських алфавітів, цифри й знаки;

- не використовувати в паролі осмислені слова;

- не використовувати повторювані групи символів;

- не застосовувати паролі довжиною менше 6-8 символів, тому що запам'ятати їх не важко, а пароль саме потрібно запам'ятовувати, а не записувати. З тієї ж причини не має змісту вимагати довжину неосмисленого пароля більше 15 символів, тому що запам'ятати його людині практично неможливо;

- не використовувати той самий пароль у різних системах, тому що при взламі одного пароля постраждають всі системи;

- перевіряйте паролі перед їхнім використанням контролерами паролів.

Для складання пароля можна дати рекомендації, якими користуватися треба дуже обережно:

- виберіть кілька рядків з пісні або поеми (тільки не ті, які Ви повторюєте першому зустрічному) і використовуйте першу (або другу) букву кожного слова - при цьому пароль повинен мати більшу довжину (більше 15 символів), інакше потрібно міняти регістри літер, застосовувати латинські літери або можна вставляти цифри й знаки;

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

Що таке поганий пароль?

- власне ім'я;

- слово, що є в словнику;

- ідентифікатор, привласнений Вам якою-небудь системою, або будь-які його варіації;

- дата народження;

- повторений символ (наприклад: AAA);

- пароль менше 6 символів;

- пароль наданий Вам чужою людиною;

- пароль, що складається із символів сусідніх на клавіатурі (наприклад: QWERTY або ЙЦУКЕ);

- пароль, що містить паспортні дані: персональний номер, номер прав водія й т.д.

Що таке гарний пароль?

- безглузда фраза;

- випадковий набір символів упереміш із буквами.

ПОРЯДОК ВИКОНАННЯ РОБОТИ

КОНТРОЛЬНІ ЗАПИТАННЯ

1 Які види атак на пароль Ви знаєте? Як довжина пароля впливає на ймовірність розкриття пароля?

2 Якими категоріями володіє інформація з погляду інформаційної безпеки?

3 Як можна протистояти атаці повним перебором?


ЛАБОРАТОРНА РОБОТА № 4

ШИФР ЦЕЗАРЯ

Мета: Дослідження структури алгоритма і методики практичної реалізації криптосистеми шифрування Цезаря.

Тривалість роботи – 2 години

ПОРЯДОК ВИКОНАННЯ РОБОТИ

1 Скласти блок схему алгоритму і програму для шифрування та дешифрування тексту кодом Цезаря. Значення ключа прийняти рівним порядковому номеру за списком групи. Відкритий текст має бути обраний довільно, не менше 1500 знаків.

2 Здійснити взлом закодованого кодом Цезаря тексту.

 

КОНТРОЛЬНІ ПИТАННЯ

1 Яка існує класифікація криптоалгоритмів?

2 У чому відмінність шифрів перестановки і шифрів заміни?

3 У чому різниця кодування блоковими і потоковими шифрами?

4 Які є методи взлому таємного тексту?

5 До якого класу криптоалгоритів відноситься код Цезаря?


ЛАБОРАТОРНА РОБОТА № 5

ШИФР ВІЖЕНЕРА

Мета: дослідження структури алгоритма і методики практичної реалізації криптосистеми шифрування Віженера

Тривалість роботи – 2 години

 

Криптоаналіз

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

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

Як алфавіт шифрування використовується повна ASCII таблиця символів з кодами 0–255. це дозволяє шифрувати будь-які файли, які містять символи цієї таблиці (текстові, бінарні та інші).

При шифруванні користуємося наступним правилом:

ASCII код шифрованого символу =ASCII код символу в тексті + ASCII код символу ключа.

Таким чином при дешифруванні маємо наступне:

Код символу тексту = код шифрованного символу – код ключа.

В ситуації, коли ми знаємо, яке слово знаходиться в самому початку файлу, ми можемо знайти ключ за наступним правилом:

Код символа ключа = код шифрованого символу – код символу в тексті.

ПОРЯДОК ВИКОНАННЯ РОБОТИ

 

1 Створити довільний текстовий файл (1500 символів).

2 Скласти блок схему алгоритму шифрування-дешифрування тексту кодом Цезаря. Написати відповідні програми.

3 Написати програму криптоаналізу зашифрованого файлу, вважаючи, що ключ шифрування невідомий, але частково відомий вміст зашифрованого файлу.

4 Порівняти знайдений програмою ключ із ключем, яким був зашифрований вихідний файл.

КОНТРОЛЬНІ ЗАПИТАННЯ

1 В чому полягає суть підстановки Віженера?

2 В чому полягає відмінність методу Віженера від методу Цезаря?

3 Від чого залежить криптостійкість багатоалфавітних систем?

4 Яка таблиця використовується в програмі crypter.exe в якості таблиці Віженера?

5 Чи можливо провести криптоаналіз файлу, якщо нам відома частина вихідного файлу, але не відомо її розміщення?


ЛАБОРАТОРНА РОБОТА № 6

БЛОЧНИЙ ШИФР TEA

Мета: дослідити роботу криптоалгоритму TEA.



Поделиться:


Последнее изменение этой страницы: 2016-09-20; просмотров: 286; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.223.123 (0.209 с.)