Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
НавчПос_ЗОС.doc
Скачиваний:
90
Добавлен:
16.05.2015
Размер:
7.05 Mб
Скачать
    1. Шифрування файлів у програмах Microsoft

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

Microsoft Wordі Mirosoft Excel

Шифрування файлів було реалізоване вже в Microsoft Word 2.0. З пароля за допомогою простого обертаємого алгоритма отримувалась 16-байтова гама, яка накладалась на вміст документа. Але обчислення гами баз пароля не складало труднощів, оскільки гама накладалась на службові області, які мали фіксоване значення у всіх документах.

У Word6.0/95 таExcel5.0/95 алгоритм шифрування не змінився, а змінився лише формат файлів – він став базуватися наOLEStructeredStorage. Для відновлення пароля також треба було знайти 16-байтову гаму, використану для шифрування. А знайти цю гаму можна було, базуючись на статистичному аналізі. У будь-якому тексті найчастіше зустрічається символ “ “ (пробіл). Таким чином, досить визначити код найчастіше викори­стовуваного у тексті символа в кожній з 16 позицій, що відповідають різним байтам гами. Виконавши операціюXORкожного знайденого значення з кодом пробіла (0х20), отримуємо байт гами.

В програмах Word97/2000 таExcel97/2000 дані шифруються за допомогою алгоритмаRC4 з ключем довжиною 40 байтів. Таке шифрування вже не дозволяє миттєво знайти пароль. Можливості обчислювальної техніки за останні роки виросли на стільки сильно, що єдиний можливий ключ шифрування документівWord(з 240можливих) може бути знайдений максимум за чотири доби на комп’ютері з двома процесорамиAMDAthlon2600+.

Починаючи з Office XP, нарешті з’явилась підтримка шифрування документів ключами довжиною більше 40 бітів. Але більшість користувачів до цих пір використовують 40-бітове шифрування, оскільки воно до­зволяє відкривати захищені документи у попередніх версіях офісних програм. Та й зміна налаштувань шифрування вимагає додаткових дій з боку користувача (відкриття діалога налаштувань і вибору потрібного крипто­провайдера), тоді як за замовчуванням використовуються 40-бітові ключі.

Microsoft Access

Бази даних MicrosoftAccessможуть мати два типи паролів: паролі на відкриття і паролі для розмежування прав доступу на рівні користувачів.

Пароль на відкриття, як правило, ніколи не був серьйозним за­хис­том, оскільки, починаючи з Access версії 2.0, він зберігався у заголовку бази даних. Правда, сам заголовок був зашифрований алгоритмом RC4, але це не дуже посилювало стійкість, оскільки в рамках однієї весії формата завжди використовувався один і той самий 32-бітовий ключ шифрування, прошитий у данамічно завантажувану бібліотеку, що відповідає за роботу з файлом бази даних. А враховуючи те, що RC4 – синхронний потоковий шифр, достатньо було один раз знайти гаму, що породжується RC4 з відомим ключем, і після цього пароль можна було визначити, виконавши додавання за модулем 2 гами і потрібних байтів заголовку.

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

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

Інший тип паролів, підтримуваних Microsoft Access, використо­ву­єть­ся не для забезпечення секретності, а для розмежування доступу. Але виявилось, що при проектуванні було допущено декілька помилок, пов’я­за­них з цими паролями. Правильнішим було б зберігати не самі паролі, а їх хеш-значення. Але через незрозумілі причини в системній базі даних, що містить імена, паролі та інші атрибути всіх користувачів, можна знайти самі паролі, зашифровані потрійним використанням DES з двома ключами в режимі EDE (Encrypt-Decrypt-Encrypt), коли перший ключ застосовується двічі, на першому і третьому кроці. Ключі зазвичай є константами і зберігаються у динамічно завантажуваній бібліотеці. Такий захист дозволяє швидко визначити пароль будь-якого користувача, хоча Microsoft й стверджує, що втрачені паролі користувачів не можуть бути відновлені.

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

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

    1. Encrypted File System

Починаючи з Windows 2000 операційні системи, які базуються на ядріNT, підтримують Encrypted File System (EFS)– розширення файлової системиNTFS (New Technology File System), що дозволяє зберігати файли користувачів у зашифрованому вигляді. При цьому шифрування виконується цілком прозоро і не вимагає від користувача додаткових зусиль, окрім одноразового вказання на те, що файл має бути зашифрований.

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

Симетричний ключ, яким зашифровується файл (FileEncryptionKey,FEK), сам зашифрований на відкритому ключі, що належить користувачу, який має право доступу до файла. Ключ зберігається разом із зашифрованим файлом, і для його розширування використовується секретний ключ користувача.

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

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