Криптографічні рішення. Від криптопровайдерів до браузерних плагінів

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

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

В даному матеріалі зроблена спроба класифікувати засоби криптографічного захисту інформації (СКЗІ).
  • Розглянуті в основному ЗКЗІ, що використовуються для захисту клієнт-серверні з'єднання TLS, для організації ЕЦП, шифрування переданих даних;
  • Не розглядаються ЗКЗІ, застосовувані для створення VPN і шифрування файлової системи, збережених даних, а так само УЦ;
  • Окремо виділені апаратні криптографічні пристрою.
Класифікація побудована на основі:
  • технологій інтеграції (Crypto API, Active-X, NPAPI та ін), які підтримують ЗКЗІ для вбудовування в додатки і прикладні системи;
  • інтерфейсів, які надають ЗКЗІ для вбудовування в додатки і прикладні системи.
Крім того, показані способи інтеграції ЗКЗІ з Web-додатками і можливість його використання на мобільних платформах

Загальна схема класифікації наведена в таблиці:
Криптопровайдери Нативні бібліотеки openssl-style, PKCS#11, NSS, власні інтерфейси) Локальні проксі Браузерні плагіни Хмарна підпис Браузери з російської криптографією
Поштові клієнти з російської криптографією Російська криптографія в фреймворках, платформах, інтерпретаторів Настільні криптографічні програми Криптографія в UEFI BIOS Сервіс-провайдери ЕЦП Емулятори довіреної середовища
Апаратні засоби
У першій статті розглянемо рішення, починаючи з криптопровайдерів за браузерні плагіни включно. У наступних статтях будуть розглянуті інші засоби.



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

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

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

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



Специфікація Microsoft CSP, Microsoft CNG, Crypto API 1.0 -> Crypto API 2.0
Платформи Сімейство Windows. Є порт на GNU\Linux, OS X, iOS, Android
криптографічні Алгоритми та протоколи ЕЦП, шифрування, хеш-функція, імитозахист, HMAC, VKO;
TLS, EAP-TLS, Kerberos
Інтеграція з PKI X.509, PKCS#10, CMS, CRL, OCSP, TSP
Механізми ЕЦП Нативний програмний інтерфейс, Сі-style;
Вбудовування в програми
Механізми аутентифікації Клієнтська аутентифікація в рамках TLS.
KERBEROS-сервер у домені Windows.
Власні механізми аутентифікації на базі ЕЦП випадкових даних
Механізми «гостирования» TLS Вбудовування в системний TLS
Підтримка прикладних протоколів HTTPS, SMTPS, IMAPS, POP3S, RDP, NNTPS, FTPS, LDAPS
Формати захищених повідомлень PKCS#7, CMS, XMLSec, S/MIME;
CADES (КриптоПро ЕЦП), PDF signature (Кріптопро PDF), MS Office Signature (КриптоПро Office Signature)
Інтеграція з браузером ЕЦП в IE через ActiveX CAPICOM, PKCS#10 через ActiveX XEnroll/CertEnrool
TLS в IE через вбудовування в SSPI-провайдер
ЕЦП в різних браузерах через власні плагіни (КриптоПро ЕЦП Browser Plugin)
TLS-проксі (КриптоПро sTunnel)
Кастомні браузери (КриптоПро Fox, Захищений браузер Digital Design)
Інтеграція зі службою каталогів MS Active Directory; клієнтська частина з довільним LDAP каталогом
Мобільні платформи Порт КриптоПро CSP на iOS, Android
Команднострочная утиліта
Сховища ключів Реєстру, UBS-токени
Взаємодія з USB-токенами Сховище ключів і сертифікатів
Використання апаратної реалізації алгоритмів
Через PKCS#11, PC/SC, APDU
Програми IE, Microsoft Office, Microsoft Outlook Express, Microsoft Outlook, Microsoft Word/Excel, Microsoft Authenticode, Microsoft RDP, Microsoft Certification Authority, Microsoft IIS, Microsoft Exchange, Microsoft Terminal Server, Winlogon, Microsoft EFC
Пропрієтарні програми
СПО (sTunnel, FireFox, Apache через Trusted SSL, патч для OpenVPN)
Adobe Reader
SAP
Інтеграція з фреймворками Microsoft.NET (КриптоПро.NET)
Інсталяція Програма встановлення, потрібні права системного адміністратора
Приклади (ГОСТ) КриптоПро CSP
ViPNet CSP
Signal-COM CSP
Ліссі CSP
КриптоПро Рутокен CSP
Валидата CSP
Проблеми:
  • Відсутність нормальної кроссплатформенности;
  • Встановлення з правами адміністратора, налаштування;
  • Установка служби Windows update може вимагати поновлення провайдера;
  • Необхідність вбудовування в додатку допомогою модифікації коду «на льоту»;
  • CSP — нерідний інтерфейс для не-Windows-додатків.
Плюси:
  • Широке охоплення Windows-додатків;
  • Багатий інструментарій для розробників захищених систем;
  • Апробована на великій кількості проектів технологія.


Нативні бібліотеки

OpenSSL-style

Open Source бібліотека OpenSSL володіє широкими криптографічними можливостями і зручним механізмом її розширення іншими криптоалгоритмами. OpenSSL є основним криптоядром для широкого спектру додатків Open Source.

Після того, як в цю бібліотеку компанією Криптоком були додані Гости, з'явилися патчі для «гостификации» багатьох популярних додатки, що використовують OpenSSL. На базі OpenSSL деякі вендори розробили і сертифікували ЗКЗІ, крім того в ряд продуктів OpenSSL входить «неявним».



Специфікація OpenSSL API — один з де-факто стандартів для СПО
Платформи Сімейство Windows, GNU\Linux, OS X, iOS, Android
криптографічні Алгоритми та протоколи ЕЦП, шифрування, хеш-функція, імитозахист, HMAC, VKO;
TLS
Інтеграція з PKI X.509, PKCS#10, CMS, CRL, OCSP, TSP
Механізми ЕЦП Нативний програмний інтерфейс, Сі-style;
Механізми аутентифікації клієнтська аутентифікація в рамках TLS
власні механізми на базі ЕЦП випадкових даних
Механізми «гостирования» TLS TLS з російської криптографією підтриманий в бібліотеці (у разі використання OpenSSL як браузерно криптодвижка)
TLS-проксі на базі OpenSSL (наприклад, sTunnel)
Формати захищених повідомлень PKCS#7, CMS, XMLSec (при використанні з бібліотекою www.aleksey.com/xmlsec/, в тому числі ГОСТ), S/MIME
Інтеграція з браузером Через TLS-проксі
Через власні плагіни
Chromium OpenSSL один з можливих криптодвижков
Інтеграція зі службою каталогів OpenLDAP
Мобільні платформи iOS, Android
Команднострочная утиліта
Сховища ключів Файли, UBS-токени
Взаємодія з USB-токенами Сховище ключів і сертифікатів
Використання апаратної реалізації алгоритмів
Через PKCS#11
Програми OpenVPN, Apache, sTunnel, Nginx, Postgre SQL, postfix, dovecot
Пропрієтарні програми
Інтеграція з фреймворками OpenSSL інтегрований у велику кількість фреймворків (PHP, Python, .NET та ін), але Госту немає. Потрібно випускати патчі до фреймворкам
Інсталяція Програма інсталяції, в цілому не потрібні права системного адміністратора
Копіювання
Запуск використовують гкриптосредства програм з ФЛЕШ-пам'яті USB-токена
Приклади (ГОСТ) МагПро КриптоПакет
ЛирССЛ
OpenSSL (несерт.)
OpenSSL + engine PKCS11_GOST + Рутокен ЕЦП
Проблеми:
  • OpenSSL і його аналоги не підтримується Windows-додатками;
  • Необхідність патчити СПО, яке підтримує OpenSSL, для включення Гостів.
Плюси:
  • Кросплатформеність;
  • Використання у величезній кількості проектів, відкриті вихідні коди більшої частини проекту — виявлення і усунення вразливостей (як приклад, недавнє виявлення heartbleed);
  • Поширюється копіюванням — можна робити програми, які не потребують інсталяції;
  • Широке охоплення додатків СПО, на базі яких можна робити захищені сертифіковані продукти;
  • Широка інтеграція в фреймворки, але при цьому проблеми з ГОСТами.


PKCS#11

Бібліотека PKCS#11 надає універсальний багатоплатформовий програмний інтерфейс до USB-токенам і смарт-картах.

Функції поділяються на:
  • Опції доступу до пристрою;
  • Функції запису/читання довільних даних;
  • Функції роботи з ключами (пошук, створення, видалення, імпорт, експорт);
  • Функції роботи з сертифікатами (пошук, імпорт, експорт);
  • Функції ЕЦП;
  • Функції хешування;
  • Функції шифрування;
  • Функції обчислення імітовставки;
  • Функції вироблення ключа погодження (Діффі-Хэльман);
  • Опції експорту/імпорту сесійного ключа;
Таким чином, стандарт PKCS#11 підтримує повний набір криптопримітивів, придатний для реалізації криптографічних форматів (PKCS#7/CMS/CADES, PKCS#10, X.509 та ін) і протоколів (TLS, IPSEC, openvpn і ін).

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

У стандарті PKCS#11, починаючи з версії 2.30, підтримуються ГОСТ Р 34.10-2001, ГОСТ Р 34.11-94, ГОСТ 28147-89.

Використання бібліотеки PKCS#11 забезпечує сумісність З різних вендорів при роботі з токенами. Через PKCS#11 інтерфейс вміють працювати програми, написані на на базі Crypto API, NSS, OpenSSL.

Приклад сумісності додатків наведено на схемі. Таким чином, можливе використання відповідного додатку у відповідному місці інфосистеми.



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

Приклади — PKCS#11 інтегрований в NSS (Mozilla), проект aToken, бібліотека Агава-Про.

У компанії Крипто-Про є бібліотека PKCS#11, реалізована на базі MS Crypto API:



Існують PKCS#11-бібліотеки для мобільних платоформ. Прикладом подібної бібліотеки служить бібліотека для Рутокен ЕЦП Bluetooth, яка дозволяє використовувати пристрій на iOS і Android.

NSS

NSS являє собою криптографічну бібліотеку від спільноти Mozilla. NSS використовується такими додатками, як браузер Mozilla Firefox, поштовий клієнт Mozilla Thunderbird.

В даний момент існують два проекти з «гостификации» NSS:

  • Компанія Ліссі періодично публікує на своєму сайті доступні для скачування актуальні версії Mozilla Firefox і Mozilla Thunderbird, пересобранные з підтримкою російської криптографії. Крім того, існує ряд продуктів цієї компанії, побудований на базі модифікованої бібліотеки NSS — високорівнева бібліотека NSSCryptoWrapper, плагін LCSignPlugin, десктопное додаток для ЕЦП під Android SignMaker-A.
    Слід зазначити, що модифікований фахівцями цієї компанії NSS дозволяє використовувати як програмні PKCS#11-токени, так і апаратні (Рутокен ЕЦП, eToken ГОСТ, JaCarta ГОСТ, MS_KEY).
  • Atoken — це open source проект компанії R-Альфа. В рамках проекту створено програмний PKCS#11-токен з російської криптографією і викладені патчі для певної версії NSS і компонента Security Manager, що дозволяють використовувати в продуктах Mozilla россиийскую криптографію (TLS, ЕЦП, PKI). Крім того R-Альфа пропонує реалізацію програмного PKCS#11-токена з підтримкою сертифікованої бібліотеки Агава-З під назвою Агава-Про.


Бібліотеки c власним інтерфейсом

Власні бібліотеки надають власний API для вбудовування в додатки. В даний список можна внести:
  • Агава-З
  • Крипто-C
  • Крипто-КОМ


Локальні проксі

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

Деякі локальні проксі крім того доповнені механізмом ЕЦП спеціальним чином промаркованих WEB-форм (Inter-PRO, МагПро КриптоТуннель). Існують локальні проксі, які надають для браузера WEB API ЕЦП (систему HTTP-запитів і відповідей, аналогічних програмного API криптобиблиотеки).



Специфікація -
Платформи Сімейство Windows, GNU\Linux, OS X. На базі СПО iOS, Android
криптографічні Алгоритми та протоколи ЕЦП, шифрування, хеш-функція, імитозахист, HMAC, VKO;
TLS
Інтеграція з PKI X.509, PKCS#10, CMS, CRL, OCSP, TSP
Механізми ЕЦП Підпис WEB-форм при проходженні трафіку
WEB API
Механізми аутентифікації клієнтська аутентифікація в рамках TLS
Механізми «гостирования» TLS Через механізм проксі серверів
Формати захищених повідомлень PKCS#7, CMS
Інтеграція з браузером Через механізм проксі серверів
Мобільні платформи iiOS, Android на базі СПО sTunnel
Сховища ключів Реєстру, файли, UBS-токени
Взаємодія з USB-токенами Сховище ключів і сертифікатів
Використання апаратної реалізації алгоритмів
Через PKCS#11, PC/SC, APDU
Програми Браузери
WEB-сервера
RDP
Поштові клієнти і сервери
Інсталяція Програма інсталяції, в цілому не потрібні права системного адміністратора
Копіювання, запуск
Запуск з ФЛЕШ-пам'яті USB-токена
Приклади (ГОСТ) МагПро КриптоТуннель
Inter-PRO
VPNKey-TLS
LirTunnel
КриптоПро sTunnel
sTunnel
Проблеми:
  • проксі повинен бути запущений;
  • додаток повинен працювати через проксі, потрібно «навчити» його цього;
  • можуть використовуватися нестандартні порти, звідси проблеми у файрволом
  • якщо додаток «ходить» через localhost, то, наприклад, в адресному рядку браузера прописано localhost… — нестандартно
  • додаткові обмеження на розробку web-сайту — в ряді випадків використання тільки відносних посилань, щоб не «вилетіти» з тунелю
  • проксі налаштований на проксіювання кінцевої групи сайтів, розширення групи — це оновлення клієнтського конфига
  • робота через зовнішній проксі вимагає додаткового налаштування локального проксі, при цьому можуть бути проблеми з аутентифікацією користувача на зовнішньому проксі


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


Браузерні плагіни

Для того, щоб з скриптів WEB-сторінки викликати нативну бібліотеку більшість браузерів підтримують спеціальні розширення — ActiveX для IE і NPAPI-плагін для GH, MF, Opera, Sаfari та ін В даний момент на ринку існує широкий спектр продуктів, що належать до браузерних плагінів. Архітектурно дані плагіни можуть бути виконані по-різному. Деякі працюють на базі Crypto API і вимагають додаткової установки криптопровайдера, інші використовують як криптоядра PKCS#11-сумісні пристрої і не вимагають установки додаткових ЗКЗІ на робоче місце клієнта. Є універсальні плагіни, які підтримують основні криптопровайдери, так і широкий спектр апаратних ЗКЗІ.

Кросбраузерні плагіни



Специфікація -
Платформи Сімейство Windows, GNU\Linux, OS X
криптографічні Алгоритми та протоколи ЕЦП, шифрування, хеш-функція, імитозахист, HMAC
Інтеграція з PKI X.509, PKCS#10, CMS, CRL, OCSP (КриптоПро ЕЦП Browser plugin), TSP (КриптоПро ЕЦП Browser plugin)
Механізми ЕЦП Програмний інтерфейс для використання в JavaScript
Механізми аутентифікації ЕЦП випадкових даних
Механізми «гостирования» TLS -
Формати захищених повідомлень PKCS#7, CMS, XMLSec (КриптоПро ЕЦП Browser plugin), CADES (КриптоПро ЕЦП Browser plugin)
Інтеграція з браузером ActiveX (для IE)
NPAPI
Мобільні платформи не підтримуються
Сховища ключів Реєстру, файли, UBS-токени
Взаємодія з USB-токенами Сховище ключів і сертифікатів
Використання апаратної реалізації алгоритмів
Через PKCS#11, через Crypto API
Програми Браузери
Інсталяція Програма встановлення, не потрібні права системного адміністратора
Приклади (ГОСТ) КриптоПро ЕЦП Browser plugin
eSign-PRO
КриптоПлагин Ліссі
Плагін порталу держпослуг
JC-WebClient
Рутокен Плагін
Плагін BSS
Кріптоарм Browser plugin
Проблеми:
  • відсутність TLS
  • видалення NPAPI з Chromium
  • браузерів на мобільних платформах не підтримують плагіни
  • налаштування безпеки IE можуть блокувати виконання плагіна
Плюси:
  • кросплатформеність для плагінів на базі PKCS#11
  • кросбраузерність
  • плагіни на базі PKCS#11 не вимагають установки ЗКЗІ
  • прозоре використання для користувача


ActiveX

Компанія Microsoft розробила два основних клієнтських ActiveX-компоненти, які транслюють функціонал Crypto API в скрипти, в браузер.
Для генерації ключа та створення PKCS#10-запиту застосовується компонент XEnroll/CertEnroll, а для ЕЦП/шифрування та роботи з сертифікатами компонент CAPICOM.



В наступних статтях будуть детально розглянуті залишилися рішення.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.