В Telegram перестали работать плагины

В Telegram перестали работать плагины Электронная цифровая подпись
Содержание
  1. Формирование ЭЦП для исходящих SOAP-сообщений веб-сервиса
  2. Размещение секретного ключа и сертификата на виртуальной дискете на сервере системы
  3. Формирование ЭЦП
  4. Защищаем мобильное приложение с помощью «КриптоПро»
  5. Работа с «КриптоПро»
  6. Импорт «КриптоПро» в мобильное приложение
  7. Контейнер закрытого ключа для работы с «КриптоПро»
  8. Установка контейнера закрытого ключа в приложение
  9. Подпись и проверка подписи приватным ключом
  10. Авторизация при помощи приватного ключа
  11. Полезные ссылки
  12. Архитектурные решения ПАК Крипто Про DSS
  13. Какую КриптоПро CSP установить?
  14. Системные требования КриптоПро DSS
  15. Смена PIN-кода контейнера
  16. Выясняем название контейнера КЭП
  17. Смена PIN командой из terminal
  18. Установка дистрибутива и ключа КриптоПро
  19. Видео-инструкция по установке ЭЦП
  20. Как и зачем VipNet в КриптоПро конвертировать
  21. Похожие новости
  22. Официальный сайт КриптоПро
  23. Подпись файлов в macOS
  24. Выясняем хэш сертификата КЭП
  25. Подпись файла командой из terminal
  26. Установка Apple Automator Script
  27. Ознакомьтесь с нашим каталогом продукции
  28. Также читают:
  29. Ключ для ЕГАИС на Рутокен
  30. Что изменится в работе электронных подписей КЭП в 2021-2022
  31. Вопросы-ответы про электронную подпись
  32. Цифровая платформа для малого и среднего бизнеса в 2021 году
  33. Компании КриптоПро — лидер в защите информации
  34. Основными преимуществами выбора CryptoPro является:
  35. Настройка и запуск Java Gateway, создание проекций классов
  36. Веб-сервисы с поддержкой ЭЦП на базе криптографии ГОСТ
  37. Работа с Крипто Про DSS
  38. Электронная подпись документов
  39. Усовершенствование электронной подписи
  40. Шифрование электронных документов
  41. Расшифрование электронных документов
  42. Проверка электронной подписи
  43. Проверка статуса сертификата
  44. Аудит действий пользователей и операторов
  45. Интерфейс мобильного приложения КриптоПро myDSS
  46. Дешифровка резервных копий WhatsApp
  47. Что нужно для работы с КЭП под macOS
  48. Упс, что-то пошло не так

Формирование ЭЦП для исходящих SOAP-сообщений веб-сервиса

Далее рассмотрим случай, когда все ответы веб-сервиса должны быть подписаны ЭЦП организации. В такой ситуации на сервере системы размещается хранилище, содержащее секретный ключ, который используется при формировании подписи. Кроме того, должен быть доступен сертификат, соответствующий этому ключу. В библиотеке iscjcp.jar реализована работа с хранилищем типа «FloppyStore». Поэтому, для формирования ЭЦП нам потребуется виртуальная дискета с хранилищем ключей.

Размещение секретного ключа и сертификата на виртуальной дискете на сервере системы

Чтобы создать такую дискету, выполните следующие действия:

  1. Установите драйвер, имитирующий FDD привод, например, ImDisk.
  2. Из панели управления Windows запустите программу настройки «ImDisk Virtual Disk Driver» и настройте диск с параметрами:
    • Drive letter: A,
    • Size of virtual disk: 1 Megabyte,
    • Device type: Floppy.
  3. Отформатируйте виртуальную дискету, задав файловую систему FAT.
  4. Распакуйте содержимое архива FDD.zip на диск A:\.

В результате описанных манипуляций на диске A:\ сервера имеем хранилище ключей, содержащее тестовый секретный ключ. Файл A:\SelfSigned.cer представляет собой тестовый сертификат, соответствующий секретному ключу.

Вы можете самостоятельно генерировать ключи и сертификаты с помощью КриптоПро JCP. Эти процедуры описаны в документации продукта.

Формирование ЭЦП

Загруженный ранее архив iscjcp-cos-sources2012.zip с исходным кодом Caché Object Script содержал класс smev.JcpSignature. Импортируйте этот класс в Caché с помощью Studio.

Откройте класс smev.JcpUtils в Studio и отредактируйте значение параметра CERTFILENAME, указав полный путь к файлу сертификата – “A:\SelfSigned.cer”. Этот сертификат соответствует секретному ключу, который будет использоваться при формировании ЭЦП. Скомпилируйте класс.

Теперь, чтобы добавить в метод веб-сервиса функционал по формированию ЭЦП для возвращаемых сообщений, необходимо вставить следующую строку в код этого метода:

do ..SecurityOut.AddElement(##class(smev.JcpSignature).%New())

Это работает на версиях Caché/Ensemble, начиная с 2009.1, по 2012.1 включительно. Ниже приведен пример веб-сервиса, где в метод echo() добавлено подписывание ответа.

Class test.TestService Extends %SOAP.WebService
{
  Parameter SERVICENAME = "TestService";

  Parameter NAMESPACE = "http://test/wsdl";

  Method echo(request As %String) As %String [ ProcedureBlock = 1, SoapAction = "urn:echo",
       SoapBindingStyle = document, SoapBodyUse = literal, WebMethod ]
  {
     do ..SecurityOut.AddElement(##class(smev.JcpSignature).%New())
     quit request
  }

  Method OnPreSOAP(mode As %String, action As %String, request)
  {
    do ##super(mode, action, request)

    #dim stream As %Stream.Object = request

    if '$isObject(stream)
    {
      // на случай MIME attachments
      #dim index As %Integer = %request.NextMimeData("")
      set stream = $select(index="":"", 1:%request.GetMimeData(index))
    }

    if $isObject(stream)
    {
      #dim fault As %SOAP.Fault = ##class(smev.JcpUtils).verifySignatureOnPreSoap(stream)
      if $isObject(fault) set ..SoapFault = fault
    }
  }
}

Защищаем мобильное приложение с помощью «КриптоПро»

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

Работа с «КриптоПро»

Сразу хотелось бы сказать, что осуществление такого уровня защиты и функционала в мобильных приложениях в принципе не может быть столь же простым, как сверстать страницу или отправить запрос на сервер. Читать и изучать придется в любом случае, особенно если вы никогда прежде не работали с криптографией и безопасным соединением через TLS.

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

Разработка рано или поздно приведет вас на форум, и вам придется его перелопатить, чтобы найти ответ. Наибольшую сложность составляет отсутствие информации о том, что и как делать, — это мы и постараемся исправить в нашей статье. Все ссылки на ресурсы, которые могут быть полезными, будут оставлены в конце статьи.

Также придется поработать с С++ и самостоятельно заботиться о выделении и очистке памяти.
Стоит отметить, что статья написана при актуальной версии «КриптоПро CSP 4.0», поэтому описанные ниже пакеты для разработчиков в будущем могут отличаться.

Импорт «КриптоПро» в мобильное приложение

Первый шаг для использования «КриптоПро» в своем приложении — это внедрить фреймворк, скачанный с сайта компании. В пакете для iOS помимо самого фреймворка содержатся также три примера — создание электронной подписи (ЭЦП), создание ssl-тоннеля и пример, позволяющий собрать браузер, обладающий функциональностью создания и проверки ЭЦП на веб-страницах. Подробное описание содержится внутри примеров, в файлах Readme. На их основе легче понять алгоритм действий. Очень поможет пакет для MacOS: в нем содержится много полезных примеров с подробными комментариями. После его установки все примеры будут находиться на диске в разделе opt/cprocsp/src/doxygen/CSP.

Инструкция по импортированию самого фреймворка находится в CPROCSP.framework в файле ReadMe, разберем его по пунктам.

1. От вас требуется зайти в консоль и прописать путь к скаченному фреймворку, далее запустить утилиту, как описано ниже:

cd /Users/agima/КриптоПро/ios-uni/CPROCSP.framework/
./ SetApplicationLicense 40400-W0037-EKVQK-9YDNG-D3F67 license.enc

(указанный ключ прилагается в файле, затем в этой же директории будет создан файл лицензии license.enc).

2. Прежде чем импортировать фреймворк, советуем перенести его файл CPROCSP.framework в папку с проектом. Так вы защитите себя от случайного переноса фреймворка в другую папку, из-за чего «слетят» пути в Xсode.
Теперь к импорту: открываем Xсode, в боковой панели слева выбираем проект и в списке targets выбираем цель сборки

В Telegram перестали работать плагины

Далее во вкладке Build Phases выбираем Link Binary With Libraries, жмем на «+» и затем Add other, чтобы указать путь к фреймворку вручную. Находим его и выбираем Open. Фреймворк импортирован, но использовать его еще не получится.

В Telegram перестали работать плагины

3. Создаем в проекте папку Resources, открываем файл CPROCSP.framework, заходим в папку Resources и перетаскиваем все файлы и папки, кроме локализации (ru.lroj и en.lproj), в созданную нами папку с такими настройками:

В Telegram перестали работать плагины

4. Перетаскиваем в эту же папку файл лицензии, созданный в первом пункте, с настройками как на скриншоте выше.

5. Теперь переносим оставшиеся папки локализации также в Resources приложения, но с другими настройками:

В Telegram перестали работать плагины

Если все сделать правильно, то папки будут выглядеть так:

В Telegram перестали работать плагины

6. Следующим пунктом идет настройка проекта для отладки в эмуляторе. Если этого не сделать, то приложение можно будет запустить только на устройстве. Во вкладке Build Settings проекта в поле Valid Architectures оставляем только armv7. Работы по поддержке 64-битной архитектуры уже ведутся, но пока используем 32-битную. Также в Architectures записываем Optimized (armv7). Должно получиться следующее:

В Telegram перестали работать плагины

На этом приложенная инструкция заканчивается, но запустить приложение в итоге не получится — при компиляции вы увидите что-то вроде этого:

В Telegram перестали работать плагины

Непонятно, по каким причинам разработчики не дописали пару пунктов, но для корректной линковки необходимо добавить еще некоторые библиотеки и «магический флаг». Теперь подробнее.

Аналогично схеме, описанной в пункте 2, добираемся до файла CPROCSP.framework, в нем заходим в папку reader и импортируем запылившуюся там библиотеку librdrpcsc_empty.o. Следующую библиотеку добавляем из заложенных в Xcode, для этого все в том же окне в поиске вводим libz

В Telegram перестали работать плагины

и добавляем ее кнопкой Add.

Но этого тоже будет недостаточно, останется еще одна ошибка:

В Telegram перестали работать плагины

Для ее решения в любое место проекта поместите флаг

extern bool USE_CACHE_DIR;
bool USE_CACHE_DIR = false; 

После этого проблема будет решена и приложение соберется успешно. Данный флаг говорит о том, где вы хотите хранить папку с ключами. В случае с false (как использовали мы, — причина будет раскрыта далее) используется папка

/private/var/root/Documents/cprocsp/keys 

Если поставить true, то они будут храниться в закрытом месте:

/private/var/root/Library/Caches/cprocsp/keys/

На этом импорт фреймворка окончен, и можно запустить приложение на эмуляторе.

Контейнер закрытого ключа для работы с «КриптоПро»

На момент написания статьи «КриптоПро CSP 4.0» не поддерживает работу с сертификатами *.pfx, которые содержат и публичный, и приватный ключ. Необходимо использовать контейнеры *.000, которые можно получить только при использовании «КриптоПро»; их формат нигде не описан, и записываются они, как правило, на ключевых носителях, токенах (флешках, дискетах). В проводнике они выглядят как папки, которые содержат в себе один ключ, разбитый на файлы header.key, masks.key, name.key и primary.key.

Также у компании есть тестовый удостоверяющий центр (УЦ), на котором можно сформировать ключи и получить сертификат УЦ. Здесь необходимо дополнить, что для корректной работы страницы оформления запроса сертификата необходимо использовать Internet Explorer (или любой другой браузер с установленным плагином, который можно скачать в тестовом УЦ), и на компьютере должно быть установлено CSP, иначе на странице оформления заявки на получение сертификата будут недоступны необходимые алгоритмы хеширования ГОСТ Р 34.10-2012.

Установка контейнера закрытого ключа в приложение

Как пишут сами сотрудники «КриптоПро», есть три варианта установки контейнера на устройство:

• Через iTunes File Sharing.
• Использовать отдельное приложение для записи файлов на iOS, типа iExplorer.
• Написать собственный экспорт ключа в блоб (PRIVATEKEYBLOB) и импортировать его в коде приложения. Пример такого способа находится в вышеупомянутом пакете для MacOS под названием EncryptKey/DecryptKey.

Мы использовали первый вариант — как самый быстрый и удовлетворяющий требованиям заказчика. Именно для его реализации при импорте был выбран флаг USE_CACHE_DIR = false; если iTunes File Sharing вами использоваться не будет или вы хотите скрыть от пользователя возможность заглянуть в папку с ключами, то лучше скройте ее, выставив флаг true.
После первого запуска с установленным фреймворком в папке Documents приложения будет создана папка cprocsp:

В Telegram перестали работать плагины

Внутри этой папки и хранятся все контейнеры ключей. Устанавливаемые сертификаты и контейнеры хранятся и относятся к приложению, а не к ключевому хранилищу устройства, поэтому после его удаления будет необходимо установить их заново.

Далее существует два пути: написать все функции самому или использовать уже готовый контроллер, и так как его хватит для решения большинства задач, о нем и поговорим.
Фреймворк содержит в себе хедер-файл с названием PaneViewController.h. Если вы не обременены строгостью по дизайну, то можете импортировать предложенные xib-файлы (находятся в CPROCSP.framework/Resources) и инициализировать криптопанель через них — к примеру, таким образом:

<code>#import “CPROCSP/PaneViewControler.h”
…

PaneViewController *CPROPane;
    
    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
        CPROPane = [[PaneViewController alloc] initWithNibName:@"PaneViewController" bundle:nil];
    else
        CPROPane = [[PaneViewController alloc] initWithNibName:@"PaneViewControllerIPhone" bundle: nil];
    
    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:CPROPane];
    [navController setModalPresentationStyle:UIModalPresentationFullScreen];
    
    [self presentViewController:navController animated:true completion:nil];</code>

Но так как все xib-файлы являются обычными UIView с таблицей, вы легко можете кастомизировать их под свой дизайн.

Читайте также:  Как получить и использовать

В Telegram перестали работать плагины

После открытия панели первое, что необходимо сделать, — это перейти во вкладку «Взаимодействие с УЦ», установить сертификат УЦ (корневой сертификат удостоверяющего центра), пройти процедуру регистрации, отправить запрос на сертификат и получить (установить) его.

В Telegram перестали работать плагины

После установки корневого сертификата УЦ в папке cprocsp/keys должна будет появиться папка mobile. В нее помещаются контейнеры *.000. Чтобы их установить, снова заходим в панель «КриптоПро» и на главном экране выбираем «Установить сертификаты и контейнеры». Контейнеры, содержащиеся в папке cprocsp/keys/mobile должны быть от криптопровайдера «КриптоПро» (если хотя бы один таковым не является или поврежден, то функция вернет ошибку, не установив ни один из них).
На этом установка завершена.

Подпись и проверка подписи приватным ключом

После установки корневого сертификата УЦ и контейнера можно приступать к подписи документов. Функции создания и проверки подписи можно найти в вышеупомянутом пакете для MacOS под названием CryptMsgSign. В них содержатся комментарии по каждой используемой функции. Аналогичные примеры находятся в пакете для iOS, в CreateFile/Classes/SignFie.cpp. Здесь в отличие от предыдущей реализации подписи на вход подается путь к файлу, который необходимо подписать. По причине большого количества функций разбирать каждую в отдельности мы не будем. Рассмотрим отдельные моменты, которые не так очевидны.

Функция подписи начинается с открытия хранилища сертификатов при помощи
CertOpenSystemStore:

<code>hCertStore = CertOpenSystemStore(0, "My");
	if(!hCertStore) {
		ret = CSP_GetLastError();
		fprintf (stderr, "CertOpenSystemStore failed.");
}</code>

Здесь подразумевается не ключевое хранилище устройства, а хранилище, содержащееся в приложении в папке cprocsp/users/mobile/stores. Функция работает так, что если такого хранилища не будет найдено, она его создаст, поэтому вам об этом можно не заботиться. При использовании панели PaneViewController будет создано и использовано хранилище MY.sto.
После получения указателя на сертификат, выделения из него приватного ключа и прочих инициализаций процедура подписи начинается с функции CryptMsgOpenToEncode, которая открывает сообщение для кодирования и возвращает дескриптор открытого сообщения:

if(hMsg = CryptMsgOpenToEncode(TYPE_DER,        		// Encoding type
						0,                        		// Flags
						CMSG_SIGNED,           // Message type
						&SignedMsgEncodeInfo,    // Pointer to structure
						NULL,                    // Inner content object ID
						NULL))                   // Stream information (not used)
    {
		printf("The message to be encoded has been opened. \n");
    } else {
		ret = CSP_GetLastError();
		fprintf (stderr, "OpenToEncode failed");
    }
…

if(hMsg)
     CryptMsgClose(hMsg);</code>

Сообщение остается открытым до вызова CryptMsgClose. Здесь стоит обратить внимание на используемые флаг (второй параметр): если выставить 0, как в примере, то подпись будет присоединенная (attached); для получения отсоединенной (detached) подписи необходимо выставить флаг CMSG_DETACHED_FLAG. После этого подписываемые данные помещаются в сообщение и полученный блоб можно вывести в отдельный файл.

Проверка подписи аналогична ее созданию за небольшим исключением. Вначале открывается сообщение для декодирования, далее вытаскивается сертификат, приложенный к подписи. Открывается хранилище и осуществляется поиск приложенного сертификата. После того как был найден сертификат, проводится проверка подписи функцией CryptMsgControl, которая возвращает true в случае успешной верификации и false, если возникли ошибки:

if(CryptMsgControl(hMsg,                       // Handle to the message
			   0,                          // Flags
			   CMSG_CTRL_VERIFY_SIGNATURE, // Control type
			   pSignerCertificateInfo))    // Pointer to the CERT_INFO
    {
		printf("\nSignature was VERIFIED.\n");
    } else {
		printf("\nThe signature was NOT VERIFIED.\n");
		ret = CSP_GetLastError();
    }</code>

Функция CSP_GetLastError() возвращает код ошибки и краткое описание.

Авторизация при помощи приватного ключа

Для авторизации с использованием приватного ключа нам понадобится сам ключ, установленный вышеописанным образом, установленный корневой сертификат УЦ, настроенный сервер с «КриптоПро» и с добавленным в доверенные нашим ключом. Сервер должен поддерживать работу по TLS версии 1.2 для всех устройств с iOS 9 и выше, а также иметь ГОСТовые cipher suites от «КриптоПро».

Для подключения к серверу мы создали отдельный менеджер и переписали для его NSURLSessionDataTask функцию resume. Так как в нашем приложении есть возможность авторизоваться как по http, так и по https, мы переключались между двумя менеджерами, отвечающими за разное подключение. Создание отдельного менеджера необходимо для того, чтобы использовать cipher suites от «КриптоПро». Если во время хендшейка в Client Hello вы их не положите, то когда с вами «поздоровается» сервер, TLS-соединение будет провалено, так как будет выбран неверный cipher suite.

Для выявления причин ошибок и получения подробной информации по подключению может пригодиться такая программа, как WireShark. В ней есть возможность посмотреть все этапы TLS-соединения и достаточно информации для анализа. Также в ней вы можете посмотреть, какие cipher suites отправляете и какие поддерживает сервер.

В качестве менеджера, который будет отправлять нужные cipher suites, используется UrlRetriever, входящий в состав фреймворка. Открыв хедер, вы увидите множество понятных функций для отправки запроса, но не сразу очевидно, как и чем пользоваться, тем более что документации по этому вы не найдете ни на сайте, ни на форуме. И в самом файле также нет никаких комментариев, за исключением одной //TODO, которые оставили разработчики 🙂
Внутрь класса заглянуть не удастся, поэтому нам все приходилось испытывать вручную и смотреть, что как работает.

Для начала создадим сам ретривер, так как для каждого запроса нам необходимо будет очищать в нем информацию. Вначале функции resume создадим экземпляр класса:

#import <CPROCSP/CPROCSP.h>
#import <CPROCSP/UrlRetriever.h>

UrlRetriever *retriever = new UrlRetriever();

И зададим настройки безопасности:

retriever->set_verify_host(true);
retriever->set_verify_server(true);</code>

После этого запишем хедеры. Так как они уже содержатся в нашем NSUrlRequest, возьмем их оттуда и преобразуем в нужный для ретривера вид:


__block UrlHeaders headers;

[self.request.allHTTPHeaderFields enumerateKeysAndObjectsUsingBlock:^(NSString * _Nonnull key, NSString * _Nonnull obj, BOOL * _Nonnull stop) {
        NSString *result = [NSString stringWithFormat:@"%@: %@", key, obj];
        std::string *string = new std::string([result cStringUsingEncoding:[NSString defaultCStringEncoding]]);
        
        headers.push_back(*string);
    }];

retriever->set_headers(headers);

Теперь записываем сам запрос:

BYTE *requestBytes = (BYTE *)[self.request.HTTPBody bytes];
retriever->set_postmessage(requestBytes, self.request.HTTPBody.length);</code>

В случае если мы авторизуемся без сертификата, то уже можно отсылать запрос:

retriever->retrieve_url([self.request.URL.absoluteString cStringUsingEncoding:[NSString defaultCStringEncoding]]);
</code>

И вернуть ответ в completion-блок:

NSHTTPURLResponse *response = [[NSHTTPURLResponse alloc] initWithURL:self.request.URL statusCode:retriever->get_code() HTTPVersion:@"HTTP/1.1" headerFields:self.request.allHTTPHeaderFields];

self.requestCompletion(response, [NSData dataWithBytes:retriever->get_data() length:retriever->get_data_len()], nil);
</code>

А в случае ошибки вернуть error:

self.requestCompletion(response, [[NSData alloc] init], [[NSError alloc] initWithDomain:NSURLErrorDomain code:retriever->get_error() userInfo:nil]);</code>

Данный сценарий аналогичен и для авторизации по сертификату, только перед отправкой запроса в ретривер необходимо записать отпечаток сертификата (thumbprint). Существует множество вариантов получения отпечатка — мы покажем самый правильный (на наш взгляд).
Из примеров для подписи возьмем реализацию некоторых функций, таких как CertOpenStore, для открытия хранилища и CertEnumCertificatesInStore — для получения дескриптора сертификата PCCERT_CONTEXT. После этого пишем функцию для получения отпечатка в NSSting:

- (NSString *)getCertificateHashFromCert:(PCCERT_CONTEXT)certContext {
    
    BYTE *pvData = NULL;
    DWORD cbSize = 0;
    DWORD cbHash = 0;
    
    if(!CertGetCertificateContextProperty(certContext, CERT_SHA1_HASH_PROP_ID, NULL, &cbSize))
        NSLog(@"CertGetCertificateContextProperty error %u", CSP_GetLastError());
    if (pvData) {
        free(pvData);
    }

    pvData = malloc(cbSize);
    cbHash = cbSize;

    if(!CertGetCertificateContextProperty(certContext, CERT_SHA1_HASH_PROP_ID, pvData, &cbSize))
        NSLog(@"CertGetCertificateContextProperty error %u", CSP_GetLastError());
    
    DWORD dest;
    if (!CryptBinaryToString(pvData, cbHash, 0, NULL, &dest))
        NSLog(@"CryptBinaryToString error: %u", CSP_GetLastError());
    
    LPWSTR buf = malloc(dest * sizeof(TCHAR));
    
    if (!CryptBinaryToString(pvData, cbHash, 0, buf, &dest))
        NSLog(@"CryptBinaryToString error: %u", CSP_GetLastError());
    
    return [[NSString alloc] initWithData:[NSData dataWithBytes:buf length:dest] encoding:[NSString defaultCStringEncoding]];
}
</code>

Первой используется функция CertGetCertificateContextProperty c параметром CERT_SHA1_HASH_PROP_ID, который говорит функции о параметре, который необходимо получить из сертификата, в данном случае — SHA1 hash. Функция вызывается два раза, первый без подстановки буфера, вместо него ставится NULL. Это делается для получения требуемого размера памяти, которую нужно выделить под буфер. Во втором использовании подставляется буфер теперь уже известного размера. Чтобы преобразовать полученные данные из массива байт в строку, используется функция CryptBinaryToString — тоже два раза (по тем же причинам). После этого вы получите красивое содержимое вида:

—----BEGIN CERTIFICATE-----
Хэш
—---- END CERTIFICATE-----</code>

Но для ретривера нужен другой формат. Для получения необходимого отпечатка в CryptBinaryToString во флаги (третий параметр) требуется записать флаг CRYPT_STRING_HEX. Полученная в результате строка и будет являться отпечатком, который далее ставится в ретривер:

retriever->set_client_cert([thumbPrint cStringUsingEncoding:[NSString defaultCStringEncoding]]);</code>

Если все сделано правильно, соединение будет успешно установлено с использованием ГОСТа алгоритмов шифрования.

Полезные ссылки

MSDN — подробное описание всех функций, входящих в них параметров, а также рабочие примеры.

Форум — форум «КриптоПро», на котором сотрудники ежедневно отвечают на вопросы. Многие ответы на вопросы уже даны, и, несмотря на их давность (порою около 6 лет), они все еще могут вам помочь.

Руководство разработчика — написанное компанией руководство, которое содержит в себе перечень входящих в состав криптопровайдера функций с кратким описанием и примерами.

Описание ошибок — большой список возможных ошибок, возникающих в функциях С++, с их кодом и кратких описанием. Чтобы получить код ошибки, используйте в коде приложения функцию CSP_GetLastError, входящей в состав фреймворка. Она хранит в себе код последней полученной ошибки.

Архитектурные решения ПАК Крипто Про DSS

КриптоПро DSS предлагается в трех вариантах:

  1. ПАК КриптоПро DSS — сервер ЭП и КриптоПро HSM;
  2. КриптоПро DSS Lite является облегченной версией КриптоПро DSS и предназначен для подписания документов электронной подписью в браузере;

КриптоПро DSS Lite позволяет подписывать документы всех распространенных форматов на различных платформах, используя любые веб-браузеры и ключевые носители.

Гибкая модель лицензирования позволяет отказаться от покупки и установки плагинов и дополнительных приложений для подписания различных форматов документов.

Поддерживаются следующие форматы документов:

  • PKCS#7/CMS/CAdES;
  • Microsoft Office;
  • PDF (CMS/CAdES);
  • XMLDSig.

Предоставляет единую точку входа для подписания документов и управления сертификатами пользователя.

КриптоПро myDSS – это приложение для смартфона (myDSS доступен для скачивания в Google Play и App Store), которое позволяет подписывать квалифицированной электронной подписью документы и контролировать действия пользователя в системах дистанционного банкинга, порталах госуслуг, системах ЭДО, электронных торговых площадках и т. д.

КриптоПро myDSS представляет собой совместную разработку компаний КриптоПро и SafeTech на базе программно-аппаратного комплекса облачной электронной подписи КриптоПро DSS и системы подтверждения электронных транзакций PayControl.

КриптоПро myDSS объединяет удобство и экономическую эффективность облачных технологий с максимальным уровнем безопасности, что позволяет использовать все юридические и технические свойства квалифицированной электронной подписи при построении систем онлайн-взаимодействия.

В основе КриптоПро myDSS лежит технология, которая обеспечивает строгую криптографическую аутентификацию пользователей, безопасное online-взаимодействие, отображение документа и подтверждение операций. Это позволяет сервису облачной электронной подписи КриптоПро DSS выполнить требования, предъявляемые регулятором к средствам электронной подписи.

Криптографическая аутентификация и защита канала между приложением и сервером КриптоПро DSS гарантируют, что только легальный пользователь сможет воспользоваться ключами подписи.

Ключи электронной подписи пользователей хранятся в сертифицированном КриптоПро HSM в неизвлекаемом виде.

Комплексное решение КриптоПро myDSS включает:

  • серверную часть, в которой в КриптоПро HSM хранятся ключи электронной подписи,
  • систему, управляющую процессами формирования подписи на стороне сервера,
  • приложение для смартфона, которое визуализирует пользователю подписываемый документ и вырабатывает операции на подписание,
  • защищенные каналы взаимодействия клиентской и серверной частей,
  • является полноценным средством электронной подписи. Условно его можно назвать «большим токеном».

КриптоПро myDSS предназначен для применения в следующих сферах деятельности:

  • системы интернет-банкинга или мобильного банкинга, в которых необходимо использование квалифицированной электронной подписи;
  • порталы государственных услуг, системы сдачи электронной отчетности;
  • системы электронной коммерции;
  • системы электронного документооборота.

Благодаря максимальной гибкости и отсутствию ограничений на бизнес-процессы КриптоПро myDSS может применяться при автоматизации любых видов деятельности, в которых необходимо обеспечить юридическую значимость подтверждения пользователей.

ПАК Крипто Про DSS разворачивается на сервере (Сервер ЭП) и работает в связке с КриптоПро HSM. В частности, создание и хранение ключей электронной подписи пользователей осуществляется с использованием специального защищенного модуля КриптоПро HSM.

КриптоПро HSM предоставляет криптографический сервис пользователям и предназначен для выполнения следующих функций: создание и проверка электронной подписи; вычисление хэш-функции; шифрование и расшифрование блоков данных; вычисление имитовставки блоков данных; генерация и защищенное хранение ключевой информации (все ключи хранятся в зашифрованном виде); управление учетными записями пользователей криптографического сервиса.

Одним из преимуществ использования КриптоПро DSS является отсутствие привязки пользователя к настроенному рабочему месту. Настройку криптографических механизмов и форматов, например, установку средства криптографической защиты (программы КриптоПро CSP), и управление ключами берут на себя серверные компоненты КриптоПро DSS. Доступ к ключу ЭП можно получить с настольного компьютера, с ноутбука, с планшета и со смартфона. Для работы КриптоПро DSS требуется установить лишь удобное средство аутентификации. Варианты аутентификации пользователей для работы с КриптоПро DSS рассмотрены ниже.

Читайте также:  Как зарегистрироваться на Егов без ЭЦП в 2020 году | NUR.KZ

Для безопасного хранения и использования секретных ключей ЭП удостоверяющих центров и пользователей применяется КриптоПро HSM, который выполняет операции формирования, проверки ЭП и вычисления значений хэш-функции, шифрования и расшифровки данных. КриптоПро HSM снабжен датчиками вскрытия, механизмами доверенной генерации и уничтожения ключей, защитой от утечек по побочным каналам и от внутреннего нарушителя (администратора), а также другими уровнями защиты, соответствующими классу КВ2. Ключи становятся неизвлекаемыми и некомпрометируемыми.

Пользователь получает доступ к своим ключам только после прохождения процедуры надежной многофакторной аутентификации в КриптоПро DSS. При этом дополнительно каждый ключевой контейнер может защищаться индивидуальным PIN-кодом, который знает и может сменить только владелец ключа электронной подписи.

Для прохождения аутентификации в КриптоПро DSS реализуются следующие способы:

  • криптографическая аутентификация по алгоритму HMAC в соответствии с Р-50.1.113-2016 с помощью мобильного приложения myDSS или специального апплета на SIM-карте;
  • двухфакторная аутентификация с использованием цифровых сертификатов и USB-токенов или смарт-карт;
  • Для формирования неквалифицированной электронной подписи также могут использоваться:
  • классическая однофакторная аутентификация по логину и паролю с защитой доступа по протоколу TLS;
  • двухфакторная аутентификация с дополнительным вводом одноразового пароля, доставляемого пользователю посредством SMS (OTP-via-SMS)..

Управление пользователями КриптоПро DSS осуществляется администратором (оператором), который имеет возможность посредством веб-интерфейса или API выполнять следующие действия:

  • создание пользователя;
  • блокирование и удаление пользователя;
  • генерация ключа электронной подписи пользователя;
  • формирование и передача в удостоверяющий центр запроса на создание сертификата ключа проверки электронной подписи;
  • установку полученного сертификата пользователю;
  • настройку параметров аутентификации пользователей;
  • аудит и формирование аналитической отчетности по выполняемым пользователями операциям;
  • сброс пароля в случае его утраты пользователем.

КриптоПро DSS позволяет интегрировать использование сервера электронной подписи в существующие бизнес-процессы и системы (например, ЭДО, ДБО и т. д.). На рисунке 1 приведен пример того, как может быть развернут КриптоПро DSS и приведены стадии подписания электронного документа ЭП в системе электронного документооборота (ЭДО). При этом вместо ЭДО может быть и другая система, например, система дистанционного банковского обслуживания (ДБО).

Рисунок 2. Пример архитектурного решения КриптоПро DSS, интегрированного с системой ЭДО

Пример архитектурного решения КриптоПро DSS, интегрированного с системой ЭДО

  1. Пользователь формирует и отправляет электронный документ в систему ЭДО.
  2. Система ЭДО, используя штатные механизмы КриптоПро DSS (HTTP API), перенаправляет пользователя на веб-интерфейс КриптоПро DSS, передавая в этом перенаправлении подписанный маркер доступа (SAML-токен), содержащий информацию о пользователе (имя пользователя, номер мобильного телефона и т. п.), и подписываемый документ.
  3. Для подтверждения подписания документа КриптоПро DSS направляет пользователю SMS-сообщение, содержащее код подтверждения подписания. Либо через мобильное приложение КриптоПро myDSS у пользователя запрашивается разрешение на подпись документа.
  4. Пользователь вводит полученный код подтверждения в поле формы веб-интерфейса КриптоПро DSS. Если используется КриптоПро myDSS, то документ отображается в приложении, для подтверждения операции пользователь вводит пароль (или, если пароль сохранен, проходит аутентификацию Touch ID/Face ID).
  5. КриптоПро DSS, используя функции ПАКМ КриптоПро HSM, отправляет запрос на подписание документа с использованием закрытого ключа пользователя.
  6. КриптоПро HSM направляет подписанный документ обратно на сервер ЭП (КриптоПро DSS).
  7. КриптоПро DSS перенаправляет пользователя в систему ЭДО, передавая в перенаправлении подписанный документ.

Какую КриптоПро CSP установить?

Для начала можно воспользоваться бесплатной пробной версией на 90 дней. Но для дальнейшей работы программу придется покупать. Для работы с подписью на одном компьютере лучше всего приобрести лицензию на 1 год. Обратите внимание, что при покупке программы пользоваться ей вы сможете только с одного компьютера. Лицензия привязывается к конкретной подписи и одному ПК. В случае если у вас не одна подпись, понадобится приобрести лицензию на неограниченное количество ЭЦП на один компьютер. Если вы планируете использовать КЭП постоянно, лучше приобрести бессрочную лицензию.

Если пользоваться электронной подписью вы будете на сайтах, вам потребуется установить бесплатный плагин КриптоПро ЭЦП Browser plug-in. Плагин предназначен для работы исключительно в браузерах.

Системные требования КриптоПро DSS

КриптоПро DSS предоставляет пользователям интерактивный веб-интерфейс для управления криптографическими ключами и создания ЭП под документом, который пользователь загружает на КриптоПро DSS. Таким образом, для работы с КриптоПро DSS пользователю необходим только веб-браузер, никаких СКЗИ или средств электронной подписи устанавливать не нужно. Благодаря этому использовать функции КриптоПро DSS можно с любого устройства с любой аппаратной платформой с любой операционной системой, где есть веб-браузер.

КриптоПро DSS поддерживает все основные операционные системы, такие как Microsoft Windows, macOS, Linux.

Например, КриптоПро DSS функционирует на платформах Microsoft Windows 7 и выше (x86 и x64) под управлением Microsoft .NET Framework версии 2.0 и выше.

При этом на персональном компьютере должны отсутствовать установленные криптопровайдеры, несовместимые с КриптоПро CSP. А также должны отсутствовать установленные программные продукты, использующие КриптоПро CSP версии ниже 4.0.

Веб-браузеры, которыми пользователи могут воспользоваться для работы с КриптоПро DSS:

  • Microsoft Internet Explorer версии не ниже 11;
  • Mozilla Firefox;
  • Google Chrome;
  • Opera;
  • Apple Safari;
  • Яндекс.Браузер.

В процессе работы возможна перенастройка параметров безопасности обозревателя Microsoft Internet Explorer (добавление надежных узлов, разрешение выполнения сценариев ActiveX для узлов из зоны надежных). При этом могут потребоваться действия по корректированию доменной политики безопасности.

Перед началом работы с КриптоПро DSS необходимо установить расширение для браузера CryptoPro Extension for CAdES Browser Plug-in и плагин.

Мобильное приложение КриптоПро myDSS поддерживает Android 4.0 и выше, iOS 8.0 или более поздние версии.

Смена PIN-кода контейнера

Пользовательский PIN-код на Рутокен по-умолчанию 12345678, и оставлять его в таком виде никак нельзя. Требования к PIN-коду Рутокен: 16 символов max., может содержать латинские буквы и цифры.

Выясняем название контейнера КЭП

На usb-токене и в других хранилищах может храниться несколько сертификатов, и нужно выбрать правильный. При вставленном usb-токене получаем список всех контейнеров в системе командой в terminal:

/opt/cprocsp/bin/csptest -keyset -enum_cont -fqcn -verifycontext

Команда должна вывести минимум 1 контейнер и вернуть

[ErrorCode: 0x00000000]

Нужный нам контейнер имеет вид

\.\Aktiv Rutoken lite\XXXXXXXX

Если таких контейнеров выводится несколько – значит значит на токене записано несколько сертификатов, и вы в курсе какой именно вам нужен. Значение XXXXXXXX после слэша нужно скопировать и подставить в команду ниже.

Смена PIN командой из terminal

/opt/cprocsp/bin/csptest -passwd -qchange -container "XXXXXXXX"

где XXXXXXXX – название контейнера, полученное на шаге 1 (обязательно в кавычках).

Появится диалог КриптоПро с запросом старого PIN-кода для доступа к сертификату, затем еще один диалог для ввода нового PIN-кода. Готово.

Скриншот

В Telegram перестали работать плагины

Установка дистрибутива и ключа КриптоПро

Программа КриптоПро CSP устанавливается на правах администратора с официального сайта разработчика:

Установка cryptopro

  1. Выберите версию программы соответственно вашей оперативной системе
  2. Появится окно установщика, нажмите далее
  3. Программа преложит регистрацию считывателей ключевой информации и сделать соответствующие настройки служб хранения для ключей
  4. После завершения установки программа потребует перезагрузить компьютер
  5. Откройте программу от имени администратора и подключите ЭЦП
  6. Откройте раздел «Оборудование» и выберите настройку типов носителей, управление ключевыми носителями
  7. Появится список, в котором нужно выбрать вашу подпись и кликнуть «Добавить»
  8. Запустится окно программы-установщика, выберите подпись, укажите название ключа и разметку карты
  9. Закончите установку

Видео-инструкция по установке ЭЦП

Как и зачем VipNet в КриптоПро конвертировать

    <!–
  • Автор: –><!–
  • –>

  • 16-12-2021, 09:00
  • 799
  • <!–

  • Комментариев: –><!–
  • –>

Чем ближе 1 января, тем больше появляется вопросов по получению электронной подписи (ЭП) в УЦ ФНС и ее дальнейшему использованию.

Например: что делать, если подпись Налоговая выдала на криптопровайдере (СКЗИ) КриптоПро, а на компьютере, где эта ЭП будет использоваться, установлен VipNET?

Ведь одновременно обе программы использовать нельзя, они конфликтуют между собой.

Есть решение: с помощью бесплатного конвертера от АО «Калуга Астрал» можно действующий сертификат ЭП на VipNET преобразовать в сертификат на КриптоПро (работает для операционных систем Windows 7 и новее, МасOS не поддерживается).

НО (!) без возможности обратного перевода, изменения будут необратимы. К тому же, лицензию КриптоПро придется приобрести отдельно.

Поэтому перед проведением конвертации настоятельно рекомендуем проконсультироваться со специалистом.

Пока это – единственный вариант.

Появятся другие – расскажем обязательно.

Похожие новости

Официальный сайт КриптоПро

На официальном сайте разработчика КриптоПро.ру можно найти всю информацию о существующих программах, компании и технологиях. В разделе с продуктовой линейкой можно найти криптопрограммы, некоторые из которых идут вместе со смарт-картами и USB ключами, и список систем идентификации. В центре загрузки можно найти все необходимое для корректной работы программного обеспечения. Цены на программы для юридических и физических лиц отличаются.

Подпись файлов в macOS

В macOS файлы можно подписывать в ПО КриптоАрм (стоимость лицензии 2500= руб.), или несложной командой через terminal – бесплатно.

Выясняем хэш сертификата КЭП

На токене и в других хранилищах может быть несколько сертификатов. Нужно однозначно идентифицировать тот, которым будем впредь подписывать документы. Делается один раз.
Токен должен быть вставлен. Получаем список сертификатов в хранилищах командой из terminal:

/opt/cprocsp/bin/certmgr -list

Команда должна вывести минимум 1 сертификат вида:

Certmgr 1.1 © “Crypto-Pro”, 2007-2018.
program for managing certificates, CRLs and stores
= = = = = = = = = = = = = = = = = = = =
1——-
Issuer: [email protected],… CN=ООО КОРУС Консалтинг СНГ…
Subject: [email protected],… CN=Захаров Сергей Анатольевич…
Serial: 0x0000000000000000000000000000000000
SHA1 Hash: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Container: SCARD\rutoken_lt_00000000\0000\0000

= = = = = = = = = = = = = = = = = = = =
[ErrorCode: 0x00000000]

У нужного нам сертификата в параметре Container должно быть значение вида SCARD\rutoken…. Если сертификатов с такими значениями несколько, то значит на токене записано несколько сертификатов, и вы в курсе какой именно вам нужен. Значение параметра SHA1 Hash (40 символов) нужно скопировать и подставить в команду ниже.

Подпись файла командой из terminal

В terminal переходим в каталог с файлом для подписания и выполняем команду:

/opt/cprocsp/bin/cryptcp -signf -detach -cert -der -strict -thumbprint ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ FILE

где ХХХХ… – хэш сертификата, полученный на шаге 1, а FILE – имя файла для подписания (со всеми расширениями, но без пути).

Команда должна вернуть:

Signed message is created.
[ErrorCode: 0x00000000]

Будет создан файл электронной подписи с расширением *.sgn – это отсоединенная подпись в формате CMS с кодировкой DER.

Установка Apple Automator Script

Чтобы каждый раз не работать с терминалом, можно один раз установить Automator Script, с помощью которого подписывать документы можно будет из контекстного меню Finder. Для этого скачиваем архив – скачать.

  1. Распаковываем архив ‘Sign with CryptoPro.zip’
  2. Запускаем Automator
  3. Находим и открываем распакованный файл ‘Sign with CryptoPro.workflow’
  4. В блоке Run Shell Script меняем текст ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ на значение параметра SHA1 Hash сертификата КЭП, полученное выше.
  5. Сохраняем скрипт: ⌘Command + S
  6. Запускаем файл ‘Sign with CryptoPro.workflow’ и подтверждаем установку.
  7. В Finder вызываем контекстное меню любого файла, и в разделе Quick Actions и/или Services выбрать пункт Sign with CryptoPro
  8. В появившемся диалоге КриптоПро ввести PIN-код пользователя от КЭП
  9. В текущем каталоге появится файл с расширением *.sgn – отсоединенная подпись в формате CMS с кодировкой DER.

Скриншоты

Окно Apple Automator:

System Preferences:
В Telegram перестали работать плагины

Контекстное меню Finder:

В Telegram перестали работать плагины

Ознакомьтесь с нашим каталогом продукции

В нашем интернет-магазине и офисах продаж можно найти широкий ассортимент кассового и торгового оборудования

Понравилась статья? Поделись ею в соцсетях.

Также читают:

В Telegram перестали работать плагины

Ключ для ЕГАИС на Рутокен

Ключ для ЕГАИС на Рутокен — специальный инструмент для получения доступа и работы в Единой Государственной Автоматизированной Информационной Системе, может также применяться в электронном документообороте (например, госуслуги). Представляет собой аппаратный…


580
Узнать больше

В Telegram перестали работать плагины

Что изменится в работе электронных подписей КЭП в 2021-2022

В 2021 г. намечаются изменения в электронной подписи. Они коснутся участников торгов, тех, кто сдает отчеты в режиме онлайн, а также использует ЭЦП для иных целей. Электронная подпись для онлайн-кассы …


1033
Узнать больше

В Telegram перестали работать плагины

Вопросы-ответы про электронную подпись

Начиная с 1 июля 2021 года вступили в силу некоторые изменения, касающиеся электронных подписей и правил их выдачи. В связи с этим предприниматели и организации начали задаваться вопросами о том,…


607
Узнать больше

Цифровая платформа для малого и среднего бизнеса в 2021 году

Минэкономразвития России до конца 2021 года запустит цифровую платформу для малого и среднего бизнеса. На настоящий момент проводится тестирование проекта, но запуск окончательной версии состоится уже к концу декабря этого…


948
Узнать больше

Компании КриптоПро — лидер в защите информации

Компания CryptoPro была основана в 2000 году и на сегодня является лидирующей по разработкам средств криптозащиты. Компания уже распространила более, чем 4 млн. лицензий на применение криптозащиты. При создании своих продуктов CryptoPro основывается на международных стандартах защиты информации. Вся линейка программ полностью отвечает требованиям ФАПСИ и существующем в сфере ГОСТам. Криптопро имеет более 850 дилеров. Программы нашли свое применение в таких крупных компаниях, как: ВТБ, Альфа-Банк, Лукойл и др.

Основными преимуществами выбора CryptoPro является:

  • Огромный опыт в создании и применении продуктов в сфере информационной безопасности
  • Широкая совместимость продуктов с другими программами и операционными системами
  • Консультации и обучение по имеющимся решениям
  • Наличие множества наград и сертификатов

Настройка и запуск Java Gateway, создание проекций классов

Чтобы стало возможным вызывать Java-классы из Caché/Ensemble, необходимо настроить и запустить Java Gateway, а также создать проекции используемых Java-классов.

Добавим новую запись в таблицу настроек Java Gateway в области %SYS:

insert into %Net_Remote.ObjectGateway(Name, Type, Server, Port, JavaHome) values (‘JCPGate’, ‘1’, ‘127.0.0.1’, ‘55555’, ‘C:\Program Files\Java\jdk1.6.0_20\jre’)

Здесь в поле Name указано значение “JCPGate” – это имя нового Java Gateway. В поле JavaHome необходимо указать путь к JRE, для которой была произведена установка JCP. В поле Port указывается TCP-порт, используемый для общения с этим Java Gateway из Caché.

Теперь можно запустить новый Java Gateway, выполнив в терминале Caché следующую команду:

write ##class(%Net.Remote.Service).StartGateway(“JCPGate”)

Чтобы остановить его, вызовите метод StopGateway:

write ##class(%Net.Remote.Service).StopGateway(“JCPGate”)

Запускать/останавливать Java Gateway можно из любой области.

Перейдем в область, где ведется разработка веб-сервисов, и создадим проекцию для Java-класса isc.jcp.JcpFacade, выполнив в терминале Caché следующую команду:

do ##class(%Net.Remote.Java.JavaGateway).%ExpressImport(“isc.jcp.JcpFacade”, “55555”)

Здесь 55555 – это номер TCP-порта, который используется для общения с Java Gateway. Этот порт был указан нами ранее при добавлении записи в таблицу %Net_Remote.ObjectGateway.

Веб-сервисы с поддержкой ЭЦП на базе криптографии ГОСТ

Начиная с версии 2008.2, в Caché и в Ensemble встроена поддержка WS-Security, включающая механизмы проверки и формирования электронной подписи SOAP-сообщений. На текущий момент имеется «out of the box» поддержка ЭЦП на базе крипто алгоритмов семейства RSA.

К системам, создаваемым для российских заказчиков, зачастую предъявляется требование применения сертифицированных СКЗИ, использующих крипто алгоритмы ГОСТ. Далее описан один из подходов к разработке веб-сервисов Caché, защищенных ЭЦП на базе ГОСТ’овской криптографии.

В качестве сертифицированного СКЗИ, будем использовать продукт КриптоПро JCP, представляющий собой набор Java библиотек, в которых реализован алгоритм подписи — ГОСТ Р 34.10-2001, а также алгоритм хэширования ГОСТ Р 34.11-94.

Работа с Крипто Про DSS

Работа с КриптоПро DSS проводилась на базе тестового сервиса ЭП, предоставляемого компанией «КриптоПро».

Перед началом работы с КриптоПро DSS необходимо установить расширение для браузера (CryptoPro Extension for CAdES Browser Plug-in) и плагин. Если вы не сделаете этого до входа в КриптоПро DSS, то система после аутентификации сама предложит вам, что нужно сделать.

Рисунок 3. Установка расширения и плагина для работы с КриптоПро DSS

Установка расширения и плагина для работы с КриптоПро DSS

Для входа в веб-интерфейс пользователя КриптоПро DSS нужно пройти регистрацию или войти с уже имеющимися учетными данными.

Рисунок 4. Вход в веб-интерфейс пользователя КриптоПро DSS

Вход в веб-интерфейс пользователя КриптоПро DSS

После регистрации или ввода логина и пароля пользователь попадает на стартовую страницу КриптоПро DSS, на которой отображается список его сертификатов. Если у пользователя их нет, то он может либо отправить запрос на получение сертификата, либо подгрузить уже имеющийся.

Рисунок 5. Интерфейс пользователя КриптоПро DSS

Интерфейс пользователя КриптоПро DSS

Для создания запроса на сертификат необходимо в разделе «Сертификаты» нажать кнопку «Создать запрос на сертификат».

Рисунок 6. Создание запроса на сертификат в КриптоПро DSS

Создание запроса на сертификат в КриптоПро DSS

В появившейся форме необходимо:

1. Выбрать удостоверяющий центр.

Рисунок 7. Выбор УЦ при создании запроса на сертификат в КриптоПро DSS

Выбор УЦ при создании запроса на сертификат в КриптоПро DSS

2. Выбрать криптопровайдера.

Рисунок 8. Выбор криптопровайдера при создании запроса на сертификат в КриптоПро DSS

Выбор криптопровайдера при создании запроса на сертификат в КриптоПро DSS

3. Заполнить поля формы.

Рисунок 9. Заполнение данных при создании запроса на сертификат в КриптоПро DSS

Заполнение данных при создании запроса на сертификат в КриптоПро DSS

4. Выбрать шаблон сертификата

Рисунок 10. Заполнение данных и выбор шаблона сертификата в КриптоПро DSS

Заполнение данных и выбор шаблона сертификата в КриптоПро DSS

5. Задать PIN-код к закрытому ключу.

Рисунок 11. Ввод PIN-кода для доступа к закрытому ключу в КриптоПро DSS

Ввод PIN-кода для доступа к закрытому ключу в КриптоПро DSS

Также доступна загрузка уже имеющегося сертификата из файла.

Рисунок 12. Загрузка файла сертификата в КриптоПро DSS

Загрузка файла сертификата в КриптоПро DSS

После того как мы создали запрос на сертификат или загрузили его на вкладке «Сертификаты», можно следить за статусом наших сертификатов.

Рисунок 13. Статус сертификатов в КриптоПро DSS

Статус сертификатов в КриптоПро DSS

Теперь рассмотрим остальные возможности КриптоПро DSS.

Электронная подпись документов

В разделе «Подписать» можно формировать электронные подписи электронных документов пользователя. Но чтобы пользователь мог подписывать электронные документы, ему необходимо иметь хотя бы один действующий сертификат.

Рисунок 14. Раздел «Подписать» в КриптоПро DSS

Раздел «Подписать» в КриптоПро DSS

Для формирования ЭП электронного документа нужно загрузить электронный документ, который нужно подписать, выбрать нужный формат ЭП, выбрать параметры ЭП, после чего выбрать нужный сертификат и подписать документ, при этом будет запрошен PIN-код к ключу.

Рисунок 15. Запрос PIN-кода к закрытому ключу в КриптоПро DSS

Запрос PIN-кода к закрытому ключу в КриптоПро DSS

Усовершенствование электронной подписи

Раздел «Усовершенствовать подпись» предназначен для усовершенствования или дополнения ЭП до формата усовершенствованной ЭП: CAdES-T (добавление штампа времени к ЭП), CAdES-XLT1 (добавление статуса сертификата на момент подписания и штампа времени).

Рисунок 16. Раздел «Усовершенствовать подпись» в КриптоПро DSS

Раздел «Усовершенствовать подпись» в КриптоПро DSS

Шифрование электронных документов

Для адресного шифрования электронного документа нужен файл электронного документа и сертификат адресата.

Рисунок 17. Раздел «Зашифровать» в КриптоПро DSS

Раздел «Зашифровать» в КриптоПро DSS

Для адресного шифрования электронного документа необходимо загрузить файл документа, который нужно зашифровать, после чего загрузить сертификат адресата, для которого будет шифроваться электронный документ. Нужно нажать кнопку «Зашифровать» и загрузить полученный зашифрованный электронный документ.

Рисунок 18. Шифрование документа в разделе «Зашифровать» в КриптоПро DSS

Шифрование документа в разделе «Зашифровать» в КриптоПро DSS

Расшифрование электронных документов

Для расшифрования электронного документа нужен зашифрованный файл электронного документа. Чтобы пользователь мог подписывать электронные документы, ему необходимо иметь хотя бы один действующий сертификат.

Рисунок 19. Раздел «Расшифровать» в КриптоПро DSS

Раздел «Расшифровать» в КриптоПро DSS

Проверка электронной подписи

Также с помощью КриптоПро DSS можно проверить ЭП. Раздел «Проверить подпись» предназначен для проверки подписи электронных документов (присоединенная/отсоединенная, подпись данных / подпись хэш-функции). Для проверки подписи электронного документа нужен файл подписи электронного документа и файл электронного документа (для отсоединенной подписи).

Рисунок 20. Раздел «Проверить подпись» в КриптоПро DSS

Раздел «Проверить подпись» в КриптоПро DSS

Рисунок 21. Проверка подписи загруженного документа в разделе «Проверить подпись» в КриптоПро DSS

Проверка подписи загруженного документа в разделе «Проверить подпись» в КриптоПро DSS

Проверка статуса сертификата

В разделе «Проверка сертификата» можно проверить статус сертификатов (действителен ли сертификат) — для этого нужен файл сертификата.

Рисунок 22. Раздел «Проверка сертификата» в КриптоПро DSS

Раздел «Проверка сертификата» в КриптоПро DSS

Аудит действий пользователей и операторов

В разделе «Аудит» отображается журнал событий, связанных с действиями пользователей и операторов, с возможностью фильтрации по типам событий.

Рисунок 23. Раздел «Аудит» в КриптоПро DSS

Раздел «Аудит» в КриптоПро DSS

Интерфейс мобильного приложения КриптоПро myDSS

Приложение myDSS является интерфейсной частью КриптоПро DSS и предназначено для осуществления аутентификации, управления ключами и осуществления подтверждения операций (вход пользователя в КриптоПро DSS, подписание документа и т. д.).

С помощью мобильного приложения КриптоПро myDSS:

  • подписание документов осуществляется в одно нажатие;
  • не требуется никаких дополнительных устройств и программных средств (токенов, генераторов паролей и т. д.);
  • возможна работа в офлайн-сценариях, когда смартфон находится вне сети;
  • нет никаких задержек и отмены операций, связанных с ожиданием или недоставкой push-уведомлений и SMS-сообщений;
  • возможна интеграция со средствами биометрической идентификации — подписание по отпечатку пальца, изображению лица и прочим признакам.

Рисунок 24. Перечень возможностей КриптоПро myDSS

Перечень возможностей КриптоПро myDSS

В качестве примера рассмотрим, как проходит процесс подписания документа с использованием приложения myDSS:

Первоначально необходимо загрузить в КриптоПро DSS документ, выбрать сертификат для подписи и нажать кнопку «Подписать».

Рисунок 25. Выбор параметров для создания подписи документа в КриптоПро DSS

Выбор параметров для создания подписи документа в КриптоПро DSS

Далее предлагается подтвердить операцию с использованием мобильного устройства.

Рисунок 26. Запрос на подтверждение операции подписания документа в КриптоПро DSS

Запрос на подтверждение операции подписания документа в КриптоПро DSS

После — ввести PIN-код от контейнера ключа подписи.

Рисунок 27. Запрос PIN-кода к ключевому контейнеру в КриптоПро DSS

Запрос PIN-кода к ключевому контейнеру в КриптоПро DSS

Далее следует предложение на подтверждение операции с использованием мобильного приложения.

Рисунок 28. Запрос на подтверждение операции в КриптоПро DSS

Запрос на подтверждение операции в КриптоПро DSS

После в приложении myDSS придет уведомление о том, что есть операции, требующие подтверждения. Для подтверждения операции нажимаем кнопку «Подтвердить», выбираем нужный ключ авторизации и вводим пароль к нему.

После чего в приложении для ознакомления и подтверждения отобразится информация о подписываемом документе. Нажимаем кнопку «Подтвердить», и затем появится уведомление об успешном подтверждении операции.

Рисунок 29. Подтверждение операции подписания документа в приложении КриптоПро myDSS

Подтверждение операции подписания документа в приложении КриптоПро myDSS

После успешного подтверждения операции в приложении в КриптоПро DSS у пользователя появится сообщение об успешном завершении операции.

Рисунок 30. Успешное завершение операции подписания документа в КриптоПро DSS

Успешное завершение операции подписания документа в КриптоПро DSS

Также в приложении myDSS можно осуществлять управление ключами (переименование, изменение пароля и удаление ключа).

Рисунок 31. Возможности по управлению ключами в КриптоПро myDSS

Возможности по управлению ключами в КриптоПро myDSS

Таким образом, мы рассмотрели основные возможности работы КриптоПро DSS и мобильного приложения myDSS, доступные пользователям.

Дешифровка резервных копий WhatsApp

Для расшифровки резервных копий используется криптографический ключ, который создается в момент, когда пользователь впервые делает копию данных в облаке. Ключ генерируется на сервере WhatsApp и не попадает в облако.

В Android-устройствах ключ находится в каталоге data/data/сom.whatsapp/files. В iOS-устройствах ключ хранится в кейчейне и не попадает в облачные и iTunes-бэкапы.

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

Для извлечения ключа шифрования необходимо выполнить физическое извлечение данных из устройства. Но это не всегда возможно из-за проблем с программным или аппаратным обеспечением некоторых мобильных устройств.

В мобильной криминалистике эксперты часто сталкиваются с проблемами, которые не позволяют им провести полноценную экспертизу устройств и получить доступ к информации, хранимой в WhatsApp, из-за следующих проблем:

  • Устройство заблокировано.
  • Невозможно снять физический образ устройства или дешифровать его.
  • Приложение удалено с устройства владельца.

Такие проблемы возможно решить с помощью опенсорсных решений или применить специализированные программы.

Что нужно для работы с КЭП под macOS

  1. КЭП на USB-токене Рутокен Lite или Рутокен ЭЦП
  2. криптоконтейнер в формате КриптоПро
  3. со встроенной лицензией на КриптоПро CSP
  4. открытый сертификат должен храниться в контейнере закрытого ключа

Поддержка 
eToken и JaCarta в связке с КриптоПро под macOS под вопросом. Носитель Рутокен Lite – оптимальный выбор, стоит недорого, шустро работает и позволяет хранить до 15 ключей.

Криптопровайдеры VipNet, Signal-COM и ЛИССИ в macOS не поддерживаются. Преобразовать контейнеры никак не получится. КриптоПро – оптимальный выбор, стоимость сертификата в себестоимости от 500= руб. Можно выпустить сертификат с встроенной лицензией на КриптоПро CSP, это удобно и выгодно. 
Если лицензия не зашита, то необходимо купить и активировать полноценную лицензию на КриптоПро CSP.

Обычно открытый сертификат хранится в контейнере закрытого ключа, но это нужно уточнить при выпуске КЭП и попросить сделать как нужно. Если не получается, то импортировать открытый ключ в закрытый контейнер можно самостоятельно средствами КриптоПро CSP под Windows.

Упс, что-то пошло не так

Если что-то не получается, а программа выдает ошибки, то стоит обратиться в службу поддержки с 9 до 6 часов: [email protected]

Обращаем ваше внимание на то, что получить электронную подпись можно в аккредитированном удостоверяющем центре. Там вам помогут с установкой программного обеспечения на ваш компьютер.

В Telegram перестали работать плагины

Нужна помощь с электронной подписью?

Не теряйте время, мы окажем бесплатную консультацию и оформим ЭЦП и поможем настроить компьютер.

Оцените статью
ЭЦП Эксперт
Добавить комментарий