Презентацію до лекції Ви можете завантажити тут.
мета лекції
- Розглянути коло завдань, на вирішення яких спрямований CryptoAPI
- Вивчити архітектуру CryptoAPI і CNG API
- Розглянути різні типи криптопровайдерів
- Вивчити функції і механізм роботи DPAPI
текст лекції
Cryptographic Application Programming Interface (CryptoAPI)
Інтерфейс Microsoft CryptoAPl 2.0 містить як функції, які здійснюють базові криптографічні перетворення, так і функції, що реалізують перетворення вищого рівня - роботу з сертифікатами Х.509, роботу з криптографічними повідомленнями PKCS # 7 [9.4. 9.5] та інші функції, що підтримують так звану інфраструктуру відкритих ключів (Public Key Infrastructure). Набір функцій з CryptoAPI 2.0, реалізують базові криптографічні перетворення (base cryptography functions), називають також CryptoAPI 1.0 [9.2]. Функції високого рівня, призначені для реалізації криптографічних перетворень, викликають саме функції CryptoAPI 1.0. Таким чином, саме інтерфейс CryptoAPI 1.0 є криптографічним ядром прикладного рівня сучасних операційних систем Microsoft.
Коло завдань, на вирішення яких спрямований CryptoAPI [9.3]:
- надійне приховування даних;
- можливість передачі прихованих даних третім особам;
- надійна система перевірки достовірності прийшла від третіх осіб інформації;
- розшифрування отриманих конфіденційних даних;
- робота з "ідентифікаційними посвідченнями" третіх осіб;
- забезпечення роботи з визнаними криптографічними стандартами;
- можливість розширення і роботи з поки ще невідомими алгоритмами.
Реалізація всіх алгоритмів повністю виведена зі складу CryptoAPI і реалізується в незалежних динамічних бібліотеках - "криптопровайдера" (див. Розділ "Криптопровайдери"). CryptoAPI надає кінцевому користувачеві уніфікований інтерфейс роботи з функціями криптопровайдера.
CryptoAPI досить повно підтримує набір стандартів "PKCS" [9.6], запропонований компанією RSA Security. і дозволяє формувати криптографічні додатки, які можуть бути оброблені в подальшому будь-якими програмними продуктами. У підсистемах рівня ядра базові криптографічні перетворення відбуваються безпосередньо в драйверах, що реалізують ці підсистеми. Функції CryptoAPI в таких випадках використовуються для допоміжних операцій на прикладному рівні.
Загальна архітектура CryptoAPI складається з п'яти основних функціональних груп (див. Рис. 9.1):
- Базові криптографічні функції:
- функції шифрування / розшифрування даних;
- функції хешування і отримання цифрового підпису даних;
- функції ініціалізації криптопровайдера і роботи з отриманим контекстом;
- функції генерації ключів;
- функції обміну ключами.
Мал. 9.1. архітектура CrypotAPI
Cryptography Next Generation API (CNG)
Служба CNG надає набір інтерфейсів API для виконання основних криптографічних операцій і завдяки своїй модульній архітектурі дозволяє створювати, оновлювати і використовувати власні алгоритми шифрування в таких додатках і технологіях, як служба сертифікації Active Directory. технології SSL і IPsec. Розробники отримують більший контроль над виконанням криптографічних операцій і спільною роботою алгоритмів.
Мал. 9.2. архітектура CNG
У версіях Windows. попередніх Vista. криптографічні технології, такі як CryptoAPI. працювали тільки в режимі користувача, в той час як режим ядра вимагав застосування зовсім інших API-інтерфейс. CNG містить універсальний набір API-інтерфейс, які вперше надають загальну інфраструктуру шифрування для додатків як для користувача режиму, так і режиму ядра. Виняток становлять механізми зберігання ключів, що надаються NCrypt. вони доступні тільки програмам призначеного для користувача режиму.
Існує два основні підходи до примітивів криптографії. забезпечуваних CNG [9.1]. У першому підході вони розглядаються як набір логічних об'єктів, що надають методи, які можна викликати, і властивості, які можна запитувати і іноді змінювати. До цих об'єктів належать постачальники алгоритмів, функції хешування. ключі і секретні угоди. При іншому підході CNG розглядається як програмний маршрутизатор. або посередник для операцій криптографії. Інтерфейс API CNG будується на основі набору логічних інтерфейсів криптографії. Як приклад можна використовувати інтерфейс хеширования. в якому немає жорстко закодованої реалізації конкретного алгоритму хешування. У більшості інтерфейсів API криптографії використовується підхід, заснований на алгоритмах, в той час як в CNG використовується підхід, заснований на інтерфейсах. Такий підхід забезпечує більшу гнучкість як для розробника, так і для адміністратора, яким може знадобитися замінити алгоритм. використовуваний додатком, але виявився помилковим після випуску програми. На рис. 9.3 [9.1] наведено уявлення CNG на основі інтерфейсів.
CNG дозволяє розробникам запитувати алгоритми, які не вказуючи постачальників алгоритмів. Це дозволяє адміністраторам перенастроювати додатки з метою використання інших реалізацій (докладніше див. Розділ "Шаблони використання криптографічних функцій в корпоративних додатках").
Мал. 9.3. інтерфейси CNG
Мал. 9.4. Інфраструктура Base CSP
Вітаю! Хотілося б прояснити наступне питання: у МТІ припинена державна акредитація та коли буде восстановлена- невідомо, а в диплом про профперепідготовка видається на базі МТІ (як я зрозумів). Як закінчиться справа з отриманням диплома?
Питання важливе й актуальне, тому що необхідно терміново пройти навчання і отримати диплом і не хотілося б витрачати час і платити гроші даремно (якщо диплом виявиться недійсним і т.п.). Роз'ясніть, будь ласка, докладніше ситуацію.
Добрий день, Хотілося б прояснити ви в майбутньому плануєте узгоджувати цю програму, з регуляторами і чи пройде сам диплом зараз, коли вводяться проф стандарти?