Система «КАРМА» для разработчика - программиста представляет собой инструментальное средство для использования криптографических функций, таких как шифрование, установка и проверка электронной подписи, в прикладных функциональных системах. «КАРМА» позволяет применять в прикладном ПО криптографические методы защиты информации, использует высокоуровневый интерфейс, не требующий специальных знаний в области криптографии, учитывает особенности использования различных криптографических провайдеров и оперирует специальными криптографическими объектами, такими как ключевые контейнеры, хэш-функции и прочее.

Визуальная оболочка позволяет использовать «КАРМА» в качестве персонального АРМ для криптографической обработки файлов.

 

Архитектура системы «КАРМА»

«КАРМА» состоит из следующих компонентов:

  • сервис поддержки СКЗИ 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.