Курсова робота на тему:«ВИКОРИСТАННЯ ФУНКЦІЙ БІБЛІОТЕКИ CRYPTOAPI»

Зміст

Вступ    3

Розділ І. Загальні відомості    4

1.1 Будова і можливості Crypto API    4

1.2 Криптопровайдери    5

1.3 Контейнери ключів    12

1.4 Алгоритми    13

1.5 Сертифікати    15

Розділ ІІ. Базові функції    17

2.1 Шифрування    17

2.2 Експорт сесійних ключів    20

2.3 Імпорт сесійних ключів    22

2.4 Розшифровка    22

2.5 Хешування    23

2.6 Цифровий підпис    27

2.7 Перевірка цифрового підпису    28

Розділ ІІІ. Високорівневі функції обробки повідомлень    30

3.1 Введення    30

3.2 Шифрування    30

3.3 Розшифровка    33

3.4 Цифровий підпис    35

3.5 Перевірка цифрового підпису    37

3.6 Поєднання цифрового підпису і шифрованих даних    39

3.6 Розшифровка і перевірка поєднаного цифрового підпису і шифрованих даних    42

3.7 Робота з форматом Base64 (PEM)    43

Висновки    45

Список використаної літератури    46

 

 

 

Вступ

 

Споконвіків не було цінності більшої, ніж інформація. ХХІ століття – вік

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

  • зростаючі обсяги збережених і переданих даних;
  • розширення кола користувачів, що мають доступ до ресурсів ЕОМ, програмам і даним;
  • ускладнення режимів експлуатації обчислювальних систем.

Тому все більшу важливість здобуває проблема захисту інформації від несанкціонованого доступу (НСД) при передачі й зберіганні. Сутність цієї проблеми – постійна боротьба фахівців із захисту інформації зі своїми “опонентами”.

Захист інформації – сукупність заходів, методів і засобів, що забезпечують:

  • виключення НСД до ресурсів ЕОМ, програмам і даним;
  • перевірку цілісності інформації;
  • виключення несанкціонованого використання програм (захист програм від копіювання).

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

Випробуваний метод захисту інформації від НСД – шифрування (криптографія). Шифруванням (encryption) називають процес перетворення відкритих даних (plaintext) у зашифровані (шифртекст, ciphertext) або зашифрованих даних у відкриті за певними правилами із застосуванням ключів.

Розділ І. Загальні відомості

1.1 Будова і можливості Crypto API

Перш за все, постараємося описати коло завдань, на вирішення яких орієнтований Crypto API:

  • надійне приховання даних;
  • можливість передачі прихованих даних третім особам;
  • надійна система перевірки достовірності інформації, що прийшла від третіх осіб;
  • розшифровка отриманих конфіденційних даних;
  • робота з «ідентифікаційними посвідченнями» третіх осіб;
  • забезпечення роботи з криптографічними стандартами;
  • можливість розширення і роботи з поки ще невідомими алгоритмами.

Одним із основних задач Crypto API є задача розширення. В Crypto API її розв’язали досить елегантно. Реалізація всіх алгоритмів (шифрування, цифрового підпису і тому подібне) повністю виведена з складу самого Crypto API і реалізується в окремих, незалежних динамічних бібліотеках – «криптопровайдерах» (Cryptographic Service Provider – CSP). Сам же Crypto API просто пред’являє певні вимоги до набору функцій (інтерфейсу) криптопровайдера і надає кінцевому користувачеві уніфікований інтерфейс роботи з CSP. Кінцевому користувачеві для повноцінного використання всіх функцій криптопровайдера досить знати його строкове ім’я і номер типу.

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

У програмних рішеннях рано чи пізно встає питання стандартизації передавання між додатками даних. У сфері криптографії для вирішення даного питання вже давно і успішно застосовує набір стандартів «PKCS», запропонований компанією RSA Security. У даному комплекті стандартів враховуються всі можливі випадки, що виникають в криптографічних застосуваннях. Передбачені стандарти для обміну сертифікатами, зашифрованими і підписаними даними і багато що інше. Crypto API, як основна бібліотека для забезпечення роботи з криптографічними даними в Windows, також достатньо повно підтримує даний комплект стандартів і дозволяє формувати криптографічні застосування, які можуть бути оброблені надалі будь-якими програмними продуктами.

Таким чином, ми можемо розділити весь інтерфейс Crypto API на 5 функціональних груп:

1. Базові криптографічні функції:

  • функції шифрування/розшифровки даних;
  • функції хешування і отримання цифрового підпису даних;
  • функції ініціалізації криптопровайдера і роботи з отриманим контекстом;
  • функції генерації ключів;
  • функції обміну ключами.

2. Функції кодування/декодування. Під кодуванням в даному випадку мається на увазі отримання на виході інформації, що кодується у форматі Asn.1 (Abstract Syntax Notation One).

3. Функції роботи з сертифікатами.

4. Високорівневі функції обробки криптографічних повідомлень.

5. Низькорівневі функції обробки криптографічних повідомлень.

1.2 Криптопровайдери

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

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

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

ЗАВАНТАЖИТИ

Для скачування файлів необхідно або Зареєструватись

Funk CryptoAPI (96.2 KiB, Завантажень: 1)

Сторінка: 1 2 3 4 5 6 7 8 9 10 11
завантаження...
WordPress: 23.23MB | MySQL:26 | 0,326sec