Система «КАРМА» для разработчика - программиста представляет собой инструментальное средство для использования криптографических функций, таких как шифрование, установка и проверка электронной подписи, в прикладных функциональных системах. «КАРМА» позволяет применять в прикладном ПО криптографические методы защиты информации, использует высокоуровневый интерфейс, не требующий специальных знаний в области криптографии, учитывает особенности использования различных криптографических провайдеров и оперирует специальными криптографическими объектами, такими как ключевые контейнеры, хэш-функции и прочее.
Визуальная оболочка позволяет использовать «КАРМА» в качестве персонального АРМ для криптографической обработки файлов.
Архитектура системы «КАРМА»
«КАРМА» состоит из следующих компонентов:
-
сервис поддержки СКЗИ EOSCrypto;
-
динамические библиотеки, реализующие СОМ-объекты для вызова функций «КАРМА»;
-
файл языковых настроек;
-
графический пользовательский интерфейс для работы с файлами (реализован в виде расширения контекстного меню Windows Explorer);
-
модули для встраивания «КАРМА» в приложения пакета Microsoft Office.
Общая архитектура «КАРМА» представлена на следующей схеме:
Основные функции
Интерфейс криптографических операций обеспечивает выполнение следующих функций:
-
формирование электронной подписи с возможностью заполнения дополнительных реквизитов подписи (комментария, идентификатора подписываемого ресурса, даты и времени установки подписи и пр.);
-
формирование заверяющей электронной подписи (соподписи);
-
формирование присоединённой (attached) и отсоединённой (detached) электронной подписи;
-
проверка электронной подписи;
-
извлечение и показ (посредством GUI сервиса EOSCrypto) подробных данных о контейнере электронной подписи;
-
извлечение реквизитов сертификата открытого ключа из файла CER;
-
показ реквизитов сертификатов открытых ключей (средствами операционной системы);
-
установка сертификата открытого ключа из файла CER в рабочее хранилище;
-
представление в виде текстового отчёта списка отозванных сертификатов из файла CRL;
-
шифрование данных, в том числе и для множества адресатов;
-
расшифрование данных;
-
шифрование непрерывных данных большого объёма;
-
Base64-кодирование контейнера электронной подписи и блока зашифрованных данных.
Интерфейс взаимодействия с инфраструктурой открытых ключей
Интерфейс взаимодействия с инфраструктурой открытых ключей обеспечивает выполнение следующих функций:
-
получить перечень доступных хранилищ сертификатов открытых ключей;
-
выбрать текущее рабочее хранилище сертификатов открытых ключей;
-
получить перечень сертификатов открытых ключей в текущем рабочем хранилище;
-
получить содержимое сертификата открытого ключа по его идентификатору;
-
извлечь реквизиты сертификата открытого ключа с указанным идентификатором;
-
показать реквизиты сертификата открытого ключа с указанным идентификатором (посредством GUI сервиса EOSCrypto);
-
извлечение перечня отозванных сертификатов в текущем рабочем хранилище сертификатов открытых ключей.
Сервис поддержки СКЗИ
Сервис взаимодействия с криптопровайдером представляет собой исполняемое приложение, непосредственно обращающееся к функциям криптопровайдера, обеспечивая корректный вызов последовательности криптографических операций для выполнения поставленной задачи.
Сервис взаимодействия с криптопровайдером может работать в двух режимах:
-
запускаемое приложение;
-
системная служба. В режиме системной службы функциональность модуля ограничена функциями, не требующими предъявления секретного ключа.
Сервис запускается и работает в системном контексте, не зависимом от контекста. Сервис позволяет:
-
автоматически активировать контекст криптопровайдера, соответствующий данным сертификата открытого ключа;
-
выполнять операции шифрования, расшифрования, формирования и проверки электронной подписи в формате S-MIME (PKCS#7 encrypted and signed message) с использованием контекста криптопровайдера, соответствующего указанному в сертификате открытого ключа;
-
осуществлять показ реквизитов электронной подписи и сертификата открытого ключа;
-
запускаться и выгружаться по сигналу COM-интерфейсов;
-
использовать режим системной службы Microsoft Windows или пользовательского приложения.
Интерфейс пользователя
Интерфейс пользователя представляет собой расширение контекстного меню проводника Windows и позволяет:
-
производить операции шифрования и расшифрования файлов;
-
формировать и осуществлять проверку электронной подписи файлов;
-
формировать, сохранять, выполнять и осуществлять управление профилями типовых операций;
Визуализация электронной подписи. Графическая подпись
Подпись имеет свою библиотеку, которая расширяет возможности системы «КАРМА». Она позволяет добавлять к электронной подписи графическое изображение в качестве атрибута. Пользовательский интерфейс, предоставляемый библиотекой, дает возможность создавать изображение посредством мыши, пера или стилуса, используя механизм захвата рукописных данных разработанный корпорацией Microsoft для планшетных ПК. Электронная подпись наряду с ручным созданием изображения имеет интерфейс, поддерживающий импорт распространенных форматов графических файлов.
Интерфейс разработчика библиотеки графической подписи использует стандартный интерфейс системы «КАРМА» для добавления и проверки произвольного параметра электронной подписи, расширяя его возможностью хранения графических объектов.
Языковые настройки
«КАРМА» может общаться с пользователем на любом языке. Все сообщения «КАРМА» хранятся в файле языковых настроек. В нем же содержится указание, на каком языке «КАРМА» будет выдавать сообщения операционной системы. Для изменения языка графического пользовательского интерфейса и сообщений «КАРМА» нужно просто установить соответствующий файл языковых настроек. В настоящее время файл содержит сообщения на русском и английском языках.
«КАРМА» не является программным средством, содержащим в себе непосредственную реализацию криптографических функций. Поэтому на систему не распространяются существующие национальные ограничения на экспорт СКЗИ. Систему «КАРМА» можно без каких-либо ограничений применять и за пределами Российской Федерации с использованием национальных криптопровайдеров.
Расширяемая многоязыковая поддержка «КАРМА» позволяет комфортно использовать её в национальных системах, используя родной язык интерфейсов и сообщений прикладного ПО.
Системные требования
«КАРМА» предназначена для функционирования в операционной системе Microsoft Windows 2008/2012, XP/Vista/7/8/10.
«КАРМА» обеспечивает работу со следующими криптопровайдерами:
-
стандартными криптопровайдерами, входящими в состав операционной системы Windows - Microsoft Base Cryptographic Provider, Microsoft Enhanced Cryptographic Provider и другими;
-
отечественными криптопровайдерами, такими как «КриптоПро CSP», «Сигнал-КОМ CSP», «Домен-К», «SMART CRYPTO» и другими, поддерживающими спецификацию Microsoft CryptoAPI 2.0.
-
национальными криптопровайдерами других стран, поддерживающими спецификацию Microsoft CryptoAPI 2.0.