Методы шифрования. от плагинов для браузера до криптопровайдеров

Методы шифрования. от плагинов для браузера до криптопровайдеров Электронная цифровая подпись

Проверить работоспособность КриптоПро ЭЦП Browser plug-in можно на официальном сайте КриптоПро по ссылке:

https://www.cryptopro.ru/sites/default/files/products/cades/demopage/cades_bes_sample.html

Успешный результат проверки выглядит следующим образом:

Плагин загружен. Плагин загружен

Неудачный результат проверки выглядит следующим образом:

Плагин не загружен.

С 1 января 2019 года вступил в силу новый ГОСТ 34.10-11.12, регулирующий процессы создания и проверки ключей электронной цифровой подписи (ЭЦП). На официальном сайте провайдера (https://www.cryptopro.ru/) стали доступны две новые версии плагина для браузера, адаптированные под новый ГОСТ. Если ЭЦП куплена раньше и срок ее действия еще не истек, то обновление плагина не обязательно. Для новых подписей необходимо скачать и настроить новый браузер плагин версии 2.0. под используемую ОС.

Содержание

  • 1 Установка плагина на ОС Windows
  • 2 Установка плагина на Unix
  • 3 Как работать с плагином
  • 4 Пример проверяющего наличие расширения кода

Методы шифрования. от плагинов для браузера до криптопровайдеров

FYI. Статья написана в далеком 2019 году, но актуальна и на ноябрь 2021.

Каждый предприниматель и руководитель ООО пользуется электронной подписью. Помимо КЭП для ЕГАИС и облачных КЭП для сдачи отчетности, выдаваемых банками и бухгалтерскими сервисами, особый интерес представляют универсальные УКЭП на защищенных токенах. Такие сертификаты позволяют только логиниться на гос.порталы и подписывать любые документы, делая их юридически значимыми.

Благодаря сертификату КЭП на USB-токене можно удаленно заключить договор с контрагентом или дистанционным сотрудником, направить документы в суд; зарегистрировать онлайн-кассу, урегулировать задолженность по налогам и подать декларацию в личном кабинете на nalog.ru; узнать о задолженностях и предстоящих проверках на Госуслугах.

Представленный ниже мануал поможет работать с КЭП под macOS – без изучения форумов КриптоПро и установки виртуальной машины с Windows.

Содержание

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

Устанавливаем и настраиваем КЭП под macOS

  1. Устанавливаем КриптоПро CSP
  2. Устанавливаем драйверы Рутокен
  3. Устанавливаем сертификаты
    3.1. Удаляем все старые ГОСТовские сертификаты
    3.2. Устанавливаем корневые сертификаты
    3.3. Скачиваем сертификаты удостоверяющего центра
    3.4. Устанавливаем сертификат с Рутокен
  4. Устанавливаем специальный браузер Chromium-GOST
  5. Устанавливаем расширения для браузера
    5.1 КриптоПро ЭЦП Browser plug-in
    5.2. Плагин для Госуслуг
    5.3. Настраиваем плагин для Госуслуг
    5.4. Активируем расширения
    5.5. Настраиваем расширение КриптоПро ЭЦП Browser plug-in
  6. Проверяем что все работает
    6.1. Заходим на тестовую страницу КриптоПро
    6.2. Заходим в Личный Кабинет на nalog.ru
    6.3. Заходим на Госуслуги
  7. Что делать если перестало работать

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

  1. Выясняем название контейнера КЭП
  2. Смена PIN командой из terminal

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

  1. Выясняем хэш сертификата КЭП
  2. Подпись файла командой из terminal
  3. Установка Apple Automator Script

Проверить подпись на документе

Вся информация ниже получена из авторитетных источников (КриптоПро #1, #2 и #3, Рутокен, Корус-Консалтинг, УФО Минкомсвязи), а скачивать ПО предлагается с доверенных сайтов. Автор является независимым консультантом и не связан ни с одной из упомянутых компаний. Следуя данной инструкции, всю ответственность за любые действия и последствия вы принимаете на себя.


Offline

Андрей Казак

 

Оставлено
:

14 ноября 2021 г. 20:29:40(UTC)


Offline

Санчир Момолдаев

 

Оставлено
:

14 ноября 2021 г. 20:47:59(UTC)

thanks 1 пользователь поблагодарил Санчир Момолдаев за этот пост.

AKazak

оставлено 14.11.2021(UTC)


Offline

Андрей Казак

 

Оставлено
:

14 ноября 2021 г. 21:07:47(UTC)

Автор: Санчир Момолдаев Перейти к цитате

Судя по всему, что адрес сервера OCSP сработал!

Теперь получаю вот такую ошибку:

Цитата:

Ошибка: OCSP Responder time is out of sync with Time Stamping Authority (0xC2110130)

Похоже, теперь нужно указать адрес TSP-сервера.

В какую политику заносить адрес TSP-сервера?


Offline

Санчир Момолдаев

 

Оставлено
:

14 ноября 2021 г. 21:45:44(UTC)

коды ошибок смотрите тут

тсп адрес указывается в самом коде

thanks 1 пользователь поблагодарил Санчир Момолдаев за этот пост.

AKazak

оставлено 14.11.2021(UTC)


Offline

Андрей Казак

 

Оставлено
:

14 ноября 2021 г. 21:59:56(UTC)

Автор: Санчир Момолдаев Перейти к цитате

коды ошибок смотрите тут

0xC2110130 Время Службы OCSP рассинхронизировано со Службой штампов времени
Как быстрее всего решить эту проблему?

Автор: Санчир Момолдаев Перейти к цитате

тсп адрес указывается в самом коде

Не понял.
Поясните, пожалуйста, в каком коде нужно указывать адрес TSP-сервера.

Спасибо.


Offline

Санчир Момолдаев

 

Оставлено
:

14 ноября 2021 г. 22:19:20(UTC)

Автор: Андрей Казак Перейти к цитате

0xC2110130 Время Службы OCSP рассинхронизировано со Службой штампов времени
Как быстрее всего решить эту проблему?

связаться с администраторами ФНС и fasie.ru (наверное они указывают адрес тсп) чтобы они синхронизировали время на серверах

Автор: Андрей Казак Перейти к цитате

Не понял.
Поясните, пожалуйста, в каком коде нужно указывать адрес TSP-сервера.
Спасибо.

адрес скорее всего указывается в коде сайта. либо “приколочен” намертво, либо в где-то в лк можно его указать


Offline

Андрей Казак

 

Оставлено
:

15 ноября 2021 г. 7:22:49(UTC)

Автор: Санчир Момолдаев Перейти к цитате

Автор: Андрей Казак Перейти к цитате

0xC2110130 Время Службы OCSP рассинхронизировано со Службой штампов времени
Как быстрее всего решить эту проблему?

связаться с администраторами ФНС и fasie.ru (наверное они указывают адрес тсп) чтобы они синхронизировали время на серверах

Автор: Андрей Казак Перейти к цитате

Не понял.
Поясните, пожалуйста, в каком коде нужно указывать адрес TSP-сервера.
Спасибо.

адрес скорее всего указывается в коде сайта. либо “приколочен” намертво, либо в где-то в лк можно его указать

Понятно.
Буду связываться сегодня.

Эту проверку времени можно отключить программно?


Offline

Санчир Момолдаев

 

Оставлено
:

15 ноября 2021 г. 7:31:18(UTC)


Offline

Андрей Казак

 

Оставлено
:

15 ноября 2021 г. 8:02:03(UTC)

Добавил http://uc.nalog.ru/tsp/tsp.srf в политику Службы штампов: адрес службы штампов времени по умолчанию, но не помогло — ошибка осталась такой же.

Я правильно понял, что по закону использование OCSP и TSP не обязательно и выполняется по желанию УЦ?


Offline

Санчир Момолдаев

 

Оставлено
:

15 ноября 2021 г. 8:03:10(UTC)

по желанию сайта / портала / принимающей стороны


Offline

Андрей Казак

 

Оставлено
:

15 ноября 2021 г. 8:21:59(UTC)

Автор: Санчир Момолдаев Перейти к цитате

по желанию сайта / портала / принимающей стороны

Хм…
А что делать, если принимающая сторона требует, а УЦ не предоставляет или не прописывает в сертификате?
Возможно ли после выпуска сертификатат попросить УЦ дописать в него необходимые поля? Или потребуется перевыпуск сертификата?


Offline

Санчир Момолдаев

 

Оставлено
:

15 ноября 2021 г. 8:28:54(UTC)

Ocsp либо перевыпуск, либо указание у клиента, а тсп указывает тот кто создает подпись. Точнее указывается в коде.
Для xlt1 подписи должны быть доступны обе службы


Offline

Андрей Казак

 

Оставлено
:

15 ноября 2021 г. 8:44:36(UTC)

Автор: Санчир Момолдаев Перейти к цитате

а тсп указывает тот кто создает подпись. Точнее указывается в коде

То есть адрес TSP-сервера указывается в коде страницы OCSP-сервера, то есть http://uc.nalog.ru/ocsp/ocsp.srf?


Offline

Санчир Момолдаев

 

Оставлено
:

15 ноября 2021 г. 9:11:43(UTC)


Offline

Андрей Казак

 

Оставлено
:

15 ноября 2021 г. 14:46:16(UTC)

В УЦ предположили, что скорее всего при выпуске сертификата произошёл сбой в системе и предложили подойти и перевыпустить сертификат.
Такое может быть?


Offline

Санчир Момолдаев

 

Оставлено
:

15 ноября 2021 г. 15:40:57(UTC)

На нашей демостранице xlt1 подпись создается?


Offline

Андрей Казак

 

Оставлено
:

15 ноября 2021 г. 16:40:44(UTC)

Автор: Санчир Момолдаев Перейти к цитате

На нашей демостранице xlt1 подпись создается?

Пришлите, пожалуйста, ссылку на демо-страницу.


Offline

Санчир Момолдаев

 

Оставлено
:

15 ноября 2021 г. 16:46:06(UTC)

она была выше.
дублирую тут


Offline

Андрей Казак

 

Оставлено
:

15 ноября 2021 г. 16:50:32(UTC)


Offline

Санчир Момолдаев

 

Оставлено
:

15 ноября 2021 г. 16:59:52(UTC)

после выбора сертифката нажимали “подписать”? указывали tsp службу?

В данной статье рассмотрим использование электронно-цифровой подписи на сайте.

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

1) СКЗИ (средство криптографической защиты информации)
Мой опыт работы показывает, что порядка 90% использует КриптоПро CSP (скачать), который в явном или неявном виде продвигают удостоверяющие центры. Порядка 10% VipNet CSP (), который можно использовать бесплатно. С остальными СКЗИ на практике не встречался.
2) КриптоПро ЭЦП Browser plug-in (страница плагина).
3) Установленная подпись (хотя бы одна).

Проверка возможности осуществления подписи
javascript (+jquery)

1) Попытка создать объект cades.
Нужно сделать примечание, что тут и далее, будет деление на браузер с ActiveX(читай IE) и остальные.
Проверка будет осуществляться:

return ('ActiveXObject' in window);

для ActiveX:

try {
    store = new ActiveXObject('CAdESCOM.store');
    status = true;
} catch (e) {
    status = false;
}

Для остальных:

if (navigator.mimeTypes['application/x-cades']) {
    status = true;
} else {
    status = false;
}

Если проверка прошла неудачно, то уведомляем об этом пользователя.
Стоит иметь ввиду, что после обновления хрома до версии 42 (спасибо статье за информацию) нужно включить:

chrome://flags/#enable-npapi

Следующая проверка — а разрешен ли плагин для запуска (не для IE проверка)?

try {
    store = objSign.CreateObject('CAPICOM.store');
    status = true;
} catch (e) {
    status = false;
}

Где objSign:

objSign = $('<object/>', {
    'id': 'cadesplugin',
    'type': 'application/x-cades',
    'css': {
        'visibility': 'hidden',
        'height': '0px',
        'width': '0px',
        'position': 'absolute'
    }
}).appendTo('body').get(0);

Проверяем на СКЗИ путем попытки открыть хранилище.

try {
    store.Open();
    status = true;
} catch (e) {
    status = false;
}

Проверяем на существование сертификатов в хранилище:

if ('Certificates' in store) {
    certs = store.Certificates;
}

И их количество (бывает, что Certificates есть, но пуст, что нам тоже не подойдет):

if (certs.Count) {
    status = true;
} else {
    status = false;
}

Первый шаг сделали — проверили возможность подписания чего-либо.

Выбор электронной цифровой подписи

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

1) Группируем по удостоверяющим центрам
Информация об удостоверяющем центре хранится в сертификате.

certs.Item(i).GetInfo(1)
где certs — сертификаты из хранилища, см выше
i — порядковый номер сертификата от 1 (обратите внимание) до certs.Count.
Обратите внимание, что, в случае «кривых» сертификатов, вернуться может и undefined, имеет смысл сделать один дефолтный УЦ для таких случаев.

Теперь мы знаем список УЦ, услугами которых воспользовался клиент.
Запоминаем их и выведем через optgroup.
Сам text у option будет таким:

cert.GetInfo(6) + ' (' + formatDate(cert.ValidFromDate) + ' - ' + formatDate(cert.ValidToDate) + ')'

в cert.GetInfo(6) — кому выдан сертификат
в ValidFromDate — с какого срока сертификат начал/начнет действие
в ValidToDate — соответственно, до какого срока

Ну и форматирование даты стандартное:

function formatDate(d) {
    try {
        d = new Date(d);
        return ('0' + d.getDate()).slice(-2) + '.' + ('0' + (d.getMonth() + 1)).slice(-2) + '.' + d.getFullYear();
    } catch (e) {
        return '';
    }
}

Еще можно подсветить option.
Зеленым — для работоспособных сертификатов, красным — нет.
Информацию можно получить при помощи самого сертификата.

try {
    return cert.IsValid().Result;
} catch (e) {
    return false;
}

Стоит отметить, что сама по себе данная проверка имеет малую ценность, ибо все причины не может отсечь.
Но самые базовые, например, проверка даты — проверяет.

В value у option запишем отпечаток cert.Thumbprint.
Можно порядковый номер записать, можно другие данные — на ваше усмотрение.

Подписание
Ну и, собственно, самый главный шаг, к которому мы стремились — подписание.

1) Находим выбранный сертификат.
Для нашего примера:

certs.Find(0, thumbprint).Item(1)

0 — означает, что мы ищем по отпечатку
1 — что используем первый результат выборки (по факту единственный)

2) Подписываем:

if (isActiveX()) {
    var CPSigner = new ActiveXObject('CAdESCOM.CPSigner');
} else {
    var CPSigner = objSign.CreateObject('CAdESCOM.CPSigner');
}
CPSigner.Certificate = cert;
if (isActiveX()) {
    var SignedData = new ActiveXObject('CAdESCOM.CadesSignedData');
} else {
    var SignedData = objSign.CreateObject('CAdESCOM.CadesSignedData');
}
SignedData.Content = text;
return SignedData.SignCades(CPSigner, 1, false);

где cert — сертификат, при помощи которого подписываем
text — собственно, что подписываем
Ну а в return возвращается подписанное сообщение.

p.s. По максимуму код постарался вычистить от специфики проекта. Если кому-то этот материал пригодится и будет интересно — напишу и серверную часть. Проверка подписанного сообщения (с цепочкой и без), проверка сертификата (ocsp и без), использования tsp и т.д.

Содержание
  1. Настройки КриптоПро CSP
  2. Настройки на сервере
  3. Настройки на ПК
  4. Настройки в системе
  5. Настройки в профиле пользователя
  6. Проверить подпись на документе
  7. Установка плагина на ОС Windows
  8. Процесс настройки
  9. Что нужно для работы с КЭП под macOS
  10. Установка плагина на Unix
  11. Процесс настройки
  12. Смена PIN-кода контейнера
  13. Выясняем название контейнера КЭП
  14. Смена PIN командой из terminal
  15. Криптопровайдеры
  16. Нативные библиотеки
  17. OpenSSL-style
  18. PKCS#11
  19. NSS
  20. Библиотеки c собственным интерфейсом
  21. Локальные прокси
  22. Как работать с плагином
  23. Пример проверяющего наличие расширения кода
  24. Устанавливаем и настраиваем КЭП под macOS
  25. Устанавливаем КриптоПро CSP
  26. Устанавливаем драйверы Рутокен
  27. Устанавливаем сертификаты
  28. Удаляем все старые ГОСТовские сертификаты
  29. Устанавливаем корневые сертификаты
  30. Скачиваем сертификаты удостоверяющего центра
  31. Устанавливаем сертификат с Рутокен
  32. Конфигурируем CryptoPro для работы ссертификатами ГОСТ Р 34. 10-2012
  33. Устанавливаем специальный браузер Chromium-GOST
  34. Устанавливаем расширения для браузера
  35. 1 КриптоПро ЭЦП Browser plug-in
  36. Плагин для Госуслуг
  37. Настраиваем плагин для Госуслуг
  38. Активируем расширения
  39. Настраиваем расширение КриптоПро ЭЦП Browser plug-in
  40. Проверяем что все работает
  41. Заходим на тестовую страницу КриптоПро
  42. Заходим в Личный Кабинет на nalog
  43. Заходим на Госуслуги
  44. Что делать, если перестало работать
  45. ВНИМАНИЕ! Обновление ЭТП для работы в современных браузерах
  46. Криптографические решения. От криптопровайдеров до браузерных плагинов
  47. Подпись файлов в macOS
  48. Выясняем хэш сертификата КЭП
  49. Подпись файла командой из terminal
  50. Установка Apple Automator Script
  51. Браузерные плагины
  52. Кроссбраузерные плагины
  53. ActiveX

Настройки КриптоПро CSP

В этой статье рассмотрим настройку ПК с ОС Windows для использования ЭП КриптоПро CSP. Для примера используем тестовый сервер: www.cryptopro.ru/certsrv.

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

Настройки на сервере

  1. Скачать и установить КриптоПро CSP.
  2. Скачать и установить КриптоПро .NET. Эта программа позволяет использовать средство криптографической защиты информации КриптоПро CSP на платформе Microsoft.
  3. Перезагрузить компьютер.
  4. Установить все корневые сертификаты в папку Доверенные корневые центры сертификации. Аналогично тому, как описано в настройках на ПК.
  5. В настройках системы указать адрес сервера штампа времени. Его можно узнать у поставщика сертификата.
  6. Сервер ELMA4 должен иметь доступ к адресу со списком отзыва сертификатов. Адрес можно узнать у поставщика сертификата.

Настройки на ПК

  1. Скачать и установить КриптоПро CSP.
  2. Установить КриптоПро Browser plug-in (КриптоПро CADESCOM), настроить и разрешить его использование в расширениях браузера.
  3. Перезагрузить компьютер.
  4. Проверить plug-in. Для этого перейдите по ссылке www.cryptopro.ru/sites/default/files/products/cades/demopage/simple.html.
  5. Настроить plug-in. Для этого перейдите в папку C:\Program Files (x86)\Crypto Pro\CAdES Browser Plug-in и откройте файл .

На открывшейся странице добавьте веб-узлы в список надёжных и сохраните. Примеры:

  • http://localhost:8000
  • http://127.0.0.1:8000
  • http://elmatest.elewise.local:8000
  • http://w0098.elewise.localhost:8000
  • http://w0098:8000
  • https://www.cryptopro.ru/
  1. На открывшейся странице нажмём и отправить запрос на сертификат. Далее заполним форму: введём персональные данные и установим флажок Пометить ключ как экспортируемый.

server-pc-settings-1

Нажмём кнопку Выдать &gt;.

  1. В открывшемся окне выберем носитель для хранения контейнера закрытого ключа и нажмём .

server-pc-settings-2

Начнётся генерирование ключа.

  1. После этого придумаем пароль для контейнера, введём его и нажмём.

server-pc-settings-3

  1. Далее на открывшейся странице нажмём Установить этот сертификат.

server-pc-settings-4

В появившемся окне введём ранее созданный пароль. После этого появится уведомление, что сертификат успешно установлен.

Вы можете проверять подлинность сертификата, используя программу КриптоАРМ.

  1. После того как получите сертификат, запустите консоль управления (mmc). В появившемся окне нажмите . После этого выберите и нажмите .

server-pc-settings-5

Далее выберите вариант учетной записи компьютера, нажмите кнопку Далее, укажите локальным компьютером, нажмите Готово, а затем ОК.

  1. Далее в окне консоли управления (mmc) разверните Сертификаты (локальный компьютер). В контекстном меню папки Доверенные корневые центры сертификации выберите Все задачи — Импорт.

server-pc-settings-6

  1. Появится окно Мастер импорта сертификатов. В нём выполните следующие действия

Шаг 1. Укажите расположение хранилища Локальный компьютер и нажмите Далее.

Шаг 2. После этого выберите сертификат отпечатков штампов времени и нажмите Далее. Мы выберем tsa.cer.

  1. Таким же способом добавьте сертификат удостоверяющего центра. Мы выберем .
  2. Откройте КриптоПро CSP. Перейдите на вкладку . Нажмите .

server-pc-settings-7

  1. Когда скачаете сертификат, в его контекстном меню выберите Установить список отзыва (CRL).
  2. В открывшемся окне Мастер импорта сертификатов выполните следующие действия.

Шаг 1. Нажмите Далее.

  1. Перед использованием ЭП, на ПК откройте Управление лицензиями КриптоПро PKI и убедитесь, что не истёк срок действия продуктов КриптоПро.

Настройки в системе

О них читайте в статье «Настройки ЭП в системе».

Настройки в профиле пользователя

Настроить подписание в профиле пользователя может администратор системы или сам пользователь.

Выполните следующие действия:

  1. Вверху страницы профиля наведите курсор на кнопку панели инструментов и выберите Подписание — Выбор криптопровайдера для подписания.
  2. В появившемся окне укажите данные и нажмите .

cryptopro-csp-settings-1

В первом поле выберите криптопровайдер КриптоПро CSP.

Во втором поле вы можете выбрать тип подписи. Подробнее о типах читайте в статье «Настройки ЭП в системе».

  1. После этого привяжите сертификат для подписания. Для этого на странице профиля наведите курсор на кнопку панели инструментов и выберите Подписание — Привязать сертификат для подписания. В появившемся окне выберите сертификат, введите пароль и нажмите кнопку .

Нашли опечатку? Выделите текст, нажмите ctrl + enter и оповестите нас

Проверить подпись на документе

Если содержимое документа не содержит секретов и тайн, то проще всего воспользоваться web-сервисом на портале Госуслуг – https://www.gosuslugi.ru/pgu/eds. Так можно сделать скриншот с авторитетного ресурса и быть уверенным что с подписью все ок.

Скриншоты

Методы шифрования. от плагинов для браузера до криптопровайдеров

Методы шифрования. от плагинов для браузера до криптопровайдеров

Установка плагина на ОС Windows

Установить криптопро браузер плагин просто: с официального сайта необходимо скачать плагин, после чего кликнуть на сохраненный файл и запустить автоматический процесс установки:

Установка плагина на виндовз

Когда установка завершится, нужно нажать «Ок» и перезапустить интернет-браузер. Без этого изменения не вступит в силу. Для полного завершения установки и подстройки процессов необходимо также перезагрузить ПК.

Процесс настройки

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

Разрешение операции

Если ошибок нет и установка прошла успешно, то система выдаст сообщение:

Плагин загружен

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

Для браузера Firefox нужно скачать с официальной страницы расширение. После этого программа устанавливается на ПК:

Расширение для файерфокс

Далее пользователю нужно добавить новый плагин в список расширений и предоставить ему доступ к данным на всех используемых интернет-сайтах:

Разрешение на доступ

Браузер перезапускают и проверяют настройку плагина в разделе «Дополнения».

Для работы с ЭЦП через Google Chrome браузер необходимо обновить до последней версии. В процессе загрузки плагина откроется окно, запрашивающее разрешение на установку:

Плагин на хром

Если требуется настройка расширения в ручном режиме, то плагин нужно скачать с официального интернет-магазина Chrome и нажать «Установить». Завершение установки происходит после перезапуска браузера. Данное расширение можно также использовать для работы с ЭЦП в любых браузерах, основанных на Chromium, в т.ч. Yandex-браузер и Opera.

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

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

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

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

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

Установка плагина на Unix

Работа с ЭЦП в системе Unix возможна с браузерами Firefox, Opera версии 35, Chromium, Chrome, а также Яндекс.

Предварительно необходимо установить провайдер CSP версии выше 4.0. Скачать его можно на официальном сайте (https://cryptopro.ru/products/csp). Также обязательна предварительная установка cprocsp-rdr-gui-gtk и удаление (если имеется) пакета пакета cprocsp-rdr-gui.

Далее нужно скачать и распаковать архив cades_linux_amd64.zip или cades_linux_ia32.zip. Затем пользователь устанавливает из данного архива пакеты cprocsp-pki-2.0.0-cades.rpm cprocsp-pki-2.0.0-plugin, а в пакетах для семейства ОС Debian предварительно необходимо провести конвертацию в формат deb. Обычно для этого задействуют утилиту alien.

Процесс настройки

Последующая настройка зависит от типа используемого ПО.

Для Chrome:

  • запустить программу и дождаться уведомления о новом расширении;
  • включить расширение;
  • перезапустить Chrome.

Настройка плагина для хром

Для Firefox загрузка расширения происходит вручную, а затем требуется его установка через панель управления:

Настройка плагина для файерфокс

Расширение в IE обычно начинает работу в автоматическом режиме и не требует действий по настройке со стороны пользователя.

Смена 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-кода. Готово.

Скриншот

Методы шифрования. от плагинов для браузера до криптопровайдеров

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

Де-факто стандартом отрасли является класс криптосредств, известных как криптопровайдеры. Криптопровайдер — это предоставляющая специальный API и специальным образом зарегистрированная в ОС библиотека, которая позволяет расширить список поддерживаемых в ОС криптоалгоритмов.

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

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

Методы шифрования. от плагинов для браузера до криптопровайдеров

СпецификацияMicrosoft CSP, Microsoft CNG, CryptoAPI 1.0 -> CryptoAPI 2.0
ПлатформыСемейство Windows. Есть порт на GNU\Linux, OS X, iOS, Android
Алгоритмы и криптографические протоколыЭЦП, шифрование, хэш-функция, имитозащита, HMAC, VKO;
TLS, EAP-TLS, Kerberos
Интеграция с PKIX.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
Команднострочная утилитаЕсть
Хранилища ключейРеестр, USB-токены
Взаимодействие с 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 TLS, патч для OpenVPN)
Adobe Reader
SAP
Интеграция с фреймворкамиMicrosoft.NET (КриптоПро.NET)
ИнсталляцияПрограмма установки, требуются права системного администратора
Примеры (ГОСТ)КриптоПро CSP
ViPNet CSP
Signal-COM CSP
Лисси CSP
КриптоПро Рутокен CSP
Валидата CSP

Проблемы:

  • Отсутствие нормальной кроссплатформенности;
  • Установка с правами администратора, настройка;
  • Установка обновления Windows может потребовать обновления провайдера;
  • Необходимость встраивания в приложения посредством модификации кода «на лету»;
  • 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
Интеграция с PKIX.509, PKCS#10, CMS, CRL, OCSP, TSP
Механизмы ЭЦПНативный программный интерфейс, Си-style;
Механизмы аутентификацииклиентская аутентификация в рамках TLS
собственные механизмы на базе ЭЦП случайных данных
Механизмы “гостирования” TLSTLS с российской криптографией поддержан в библиотеке (в случае использования OpenSSL в качестве браузерного криптодвижка)
TLS-прокси на базе OpenSSL (например, sTunnel)
Форматы защищенных сообщенийPKCS#7, CMS, XMLSec (при использовании с библиотекой www.aleksey.com/xmlsec, в том числе ГОСТ), S/MIME
Интеграция с браузеромЧерез TLS-прокси
Через проприетарные плагины
В Chromium OpenSSL один из возможных криптодвижков
Интеграция со службой каталоговOpenLDAP
Мобильные платформыiOS, Android
Команднострочная утилитаЕсть
Хранилища ключейФайлы, USB-токены
Взаимодействие с USB-токенамиХранилище ключей и сертификатов
Использование аппаратной реализации алгоритмов
Через PKCS#11
ПриложенияOpenVPN, Apache, sTunnel, Nginx, Postgre SQL, postfix, dovecot
Проприетарные приложения
Интеграция с фреймворкамиOpenSSL интегрирован в большое количество фреймворков (PHP, Python, .NET и др.), но ГОСТа нет. Требуется выпускать патчи к фреймворкам
ИнсталляцияПрограмма установки, в целом не требуются права системного администратора
Копирование
Запуск использующих rкриптосредства приложений с FLASH-памяти USB-токена
Примеры (ГОСТ)МагПро КриптоПакет
ЛирССЛ
OpenSSL (несерт.)
OpenSSL + engine PKCS11_GOST + Рутокен ЭЦП

Проблемы:

  • OpenSSL и его аналоги не поддерживается приложениями Microsoft;
  • Необходимость патчить СПО, которое поддерживает OpenSSL, для включения ГОСТов.

Плюсы:

  • Кроссплатформенность;
  • Использование в огромном количестве проектов, открытые исходники большей части проекта — выявление и устранение уязвимостей (как пример, недавнее выявление heartbleed);
  • Распространяется копированием — можно делать приложения, не требующие инсталляции;
  • Широкий охват приложений СПО, на базе которых можно делать защищенные сертифицированные продукты;
  • Широкая интеграция в фреймворки, но при этом проблемы с ГОСТами.

PKCS#11

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

Функции делятся на:

  • Функции доступа к устройству;
  • Функции записи/чтения произвольных данных;
  • Функции работы с ключами (поиск, создание, удаление, импорт, экспорт);
  • Функции работы с сертификатами (поиск, импорт, экспорт);
  • Функции ЭЦП;
  • Функции хэширования;
  • Функции шифрования;
  • Функции вычисления имитовставки;
  • Функции выработки ключа согласования (Диффи-Хeллман);
  • Функции экспорта/импорта сессионного ключа;

Таким образом, стандарт 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 интерфейс умеют работать приложения, написанные на на базе CryptoAPI, NSS, OpenSSL.

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

Методы шифрования. от плагинов для браузера до криптопровайдеров

PKCS#11 бывают также без поддержки аппаратных устройств с программной реализацией криптоалгоритмов и хранением объектов в файловой системе.

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

У компании Крипто-Про есть библиотека PKCS#11, реализованная на базе MS CryptoAPI:

Методы шифрования. от плагинов для браузера до криптопровайдеров

Существуют 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 Manаger, позволяющие использовать в продуктах 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
Интеграция с PKIX.509, PKCS#10, CMS, CRL, OCSP, TSP
Механизмы ЭЦППодпись WEB-форм при прохождении траффика
WEB API
Механизмы аутентификацииклиентская аутентификация в рамках TLS
Механизмы “гостирования” TLSЧерез механизм проксирования
Форматы защищенных сообщенийPKCS#7, CMS
Интеграция с браузеромЧерез механизм проксирования
Мобильные платформыiiOS, Android на базе СПО sTunnel
Хранилища ключейРеестр, файлы, USB-токены
Взаимодействие с USB-токенамиХранилище ключей и сертификатов
Использование аппаратной реализации алгоритмов
Через PKCS#11, PC/SC, APDU
ПриложенияБраузеры
WEB-сервера
RDP
Почтовые клиенты и сервера
ИнсталляцияПрограмма установки, в целом не требуются права системного администратора
Копирование, запуск
Запуск с FLASH-памяти USB-токена
Примеры (ГОСТ)МагПро КриптоТуннель
Inter-PRO
VPNKey-TLS
LirTunnel
КриптоПро sTunnel
sTunnel

Проблемы:

  • прокси должен быть запущен;
  • приложение должно работать через прокси, нужно «научить» его этому;
  • могут использоваться нестандартные порты, отсюда проблемы в файрволом
  • если приложение «ходит» через localhost, то, например, в адресной строке браузера прописано localhost… — нестандартно
  • дополнительные ограничения на разработку web-сайта — в ряде случаев использование только относительных ссылок, чтобы не «вылететь» из туннеля
  • прокси сконфигурирован на проксирование конечной группы сайтов, расширение группы — это обновление клиентского конфига
  • работа через внешний прокси требует дополнительного конфигурирования локального прокси, при этом могут быть проблемы с аутентификацией пользователя на внешнем прокси

Плюсы:

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

Как работать с плагином

Для начала работы с расширением необходимо перейти на демо-страницу (https://www.cryptopro.ru/sites/default/files/products/cades/demopage/main.html) с одним из примеров ЭЦП (CAdES BES, XML и т.д.). Далее следуя подсказкам помощника страницы выбрать сертификат ЭЦП, ввести все необходимые данные и нажать «Продолжить».

Плагин готов к работе

После проверки данных расширение будет готово к работе.

Пример проверяющего наличие расширения кода

Чтобы активировать объекты расширения Browser plug-in, необходимо подключить файл cadesplugin_api.js к странице.

Через HTML это можно сделать так:

< language=»java»src=»cadesplugin_api.js»></> < language=»java»>cadesplugin.then(function () { // код }, function(error) { // уведомление о системной ошибке } ); </>

Через JavaScript делают так:// Создание объектаcryptopro ЭЦП Browser plug-in varoStore =cadesplugin.CreateObject(«CAdESCOM.Store»); varoSigner =cadesplugin.CreateObject(«CAdESCOM.CPSigner»); var oPrivateKey =cadesplugin.CreateObject(«X509Enrollment.CX509PrivateKey»).

Согласно новому ГОСТу все владельцы ЭЦП обязаны использовать последнюю версию плагина, отвечающую требованиям безопасности ФСБ. Загрузка расширения на ОС Windows проходит в автоматическом режиме, а последующая настройка зависит от используемого браузера. Работа с расширением в системах Unix требует скачивания и распаковки архивов, подходящих под битность ОС. Последующая настройка схожа с ОС Windows. Перед началом работы с плагином необходимо через демо-страницу ввести данные пользователя и сертификата ЭЦП.

https://youtube.com/watch?v=JjBLzOncP0A%3Ffeature%3Doembed

Устанавливаем и настраиваем КЭП под macOS

Очевидные вещи

  • все загружаемые файлы скачиваются в каталог по-умолчанию: ~/Downloads/;
  • во всех установщиках ничего не меняем, все оставляем по-умолчанию;
  • если macOS запрашивает пароль пользователя и разрешение на управление компьютером – нужно ввести пароль и со всем согласиться.

Устанавливаем КриптоПро CSP

Регистрируемся на сайте КриптоПро и со страницы загрузок скачиваем и устанавливаем версию КриптоПро CSP 4.0 R4 для macOSскачать.

Устанавливаем драйверы Рутокен

На сайте написано что это опционально, но лучше поставить. Со страницы загрузок на сайте Рутокен скачиваем и устанавливаем Модуль поддержки Связки Ключей (KeyChain)скачать.

Далее подключаем usb-токен, запускаем terminal и выполняем команду:

/opt/cprocsp/bin/csptest -card -enum

В ответе должно быть:

Aktiv Rutoken…
Card present…
[ErrorCode: 0x00000000]

Устанавливаем сертификаты

Удаляем все старые ГОСТовские сертификаты

Если ранее были попытки запустить КЭП под macOS, то необходимо почистить все ранее установленные сертификаты. Данные команды в terminal удалят только сертификаты КриптоПро и не затронут обычные сертификаты из Keychain в macOS.

sudo /opt/cprocsp/bin/certmgr -delete -all -store mroot

sudo /opt/cprocsp/bin/certmgr -delete -all -store uroot

/opt/cprocsp/bin/certmgr -delete -all

В ответе каждой команды должно быть:

No certificate matching the criteria

или

Deleting complete

Устанавливаем корневые сертификаты

Корневые сертификаты являются общими для всех КЭП, выданных любым удостоверяющим центром. Скачиваем со страницы загрузок УФО Минкомсвязи:

  • https://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=4BC6DC14D97010C41A26E058AD851F81C842415A
  • https://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=8CAE88BBFD404A7A53630864F9033606E1DC45E2
  • https://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=0408435EB90E5C8796A160E69E4BFAC453435D1D

Устанавливаем командами в terminal:

sudo /opt/cprocsp/bin/certmgr -inst -store mroot -f ~/Downloads/4BC6DC14D97010C41A26E058AD851F81C842415A.cer

sudo /opt/cprocsp/bin/certmgr -inst -store mroot -f ~/Downloads/8CAE88BBFD404A7A53630864F9033606E1DC45E2.cer

sudo /opt/cprocsp/bin/certmgr -inst -store mroot -f ~/Downloads/0408435EB90E5C8796A160E69E4BFAC453435D1D.cer

Каждая команда должна возвращать:

Installing:

[ErrorCode: 0x00000000]

Скачиваем сертификаты удостоверяющего центра

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

Альтернативно, сертификаты любого УЦ можно скачать с сайта УФО Минкомсвязи. Для этого в форме поиска нужно найти УЦ по названию, перейти на страницу с сертификатами и скачать все действующие сертификаты – то есть те, у которых в поле ‘Действует’ вторая дата еще не наступила. Скачивать по ссылке из поля ‘Отпечаток’.

Скриншоты

Методы шифрования. от плагинов для браузера до криптопровайдеров

Методы шифрования. от плагинов для браузера до криптопровайдеров

На примере УЦ Корус-Консалтинг: нужно скачать 4 сертификата со страницы загрузок:

  • https://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=15EB064ABCB96C5AFCE22B9FEA52A1964637D101
  • https://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=B9F1D3F78971D48C34AA73786CDCD138477FEE3F
  • https://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=55EC48193B6716D38E80BD9D1D2D827BC8A07DE3
  • https://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=A0D19D700E2A5F1CAFCE82D3EFE49A0D882559DF

Скачанные сертификаты УЦ устанавливаем командами из terminal:

sudo /opt/cprocsp/bin/certmgr -inst -store mroot -f ~/Downloads/B9F1D3F78971D48C34AA73786CDCD138477FEE3F.cer

sudo /opt/cprocsp/bin/certmgr -inst -store mroot -f ~/Downloads/A0D19D700E2A5F1CAFCE82D3EFE49A0D882559DF.cer

sudo /opt/cprocsp/bin/certmgr -inst -store mroot -f ~/Downloads/55EC48193B6716D38E80BD9D1D2D827BC8A07DE3.cer

sudo /opt/cprocsp/bin/certmgr -inst -store mroot -f ~/Downloads/15EB064ABCB96C5AFCE22B9FEA52A1964637D101.cer

где после ~/Downloads/ идут имена скачанных файлов, для каждого УЦ они будут свои.

Каждая команда должна возвращать:

Installing:

[ErrorCode: 0x00000000]

Устанавливаем сертификат с Рутокен

Команда в terminal:

/opt/cprocsp/bin/csptestf -absorb -certs

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

OK.
[ErrorCode: 0x00000000]

Конфигурируем CryptoPro для работы ссертификатами ГОСТ Р 34. 10-2012

Для корректной работы на nalog.ru с сертификатами, выдаваемыми с 2019 года, инструкция на сайте CryptoPro рекомендует:

Команды в terminal:

sudo /opt/cprocsp/sbin/cpconfig -ini '\cryptography\OID\1.2.643.7.1.1.1.1!3' -add string 'Name' 'GOST R 34.10-2012 256 bit'

sudo /opt/cprocsp/sbin/cpconfig -ini '\cryptography\OID\1.2.643.7.1.1.1.2!3' -add string 'Name' 'GOST R 34.10-2012 512 bit'

Команды ничего не возвращают.

Устанавливаем специальный браузер Chromium-GOST

Для работы с гос.порталами потребуется специальная сборка браузера сhromium – Chromium-GOST скачать.
Исходный код проекта открыт, ссылка на репозиторий на GitHub приводится на сайте КриптоПро. По опыту, другие браузеры CryptoFox и Яндекс.Браузер для работы с гос.порталами под macOS не годятся.

Скачиваем, устанавливаем копированием или drag&amp;drop в каталог Applications. После установки принудительно закрываем Chromium-Gost командой из terminal и пока не открываем (работаем из Safari):

killall Chromium-Gost

Устанавливаем расширения для браузера

1 КриптоПро ЭЦП Browser plug-in

Со страницы загрузок на сайте КриптоПро скачиваем и устанавливаем КриптоПро ЭЦП Browser plug-in версия 2.0 для пользователейскачать.

Плагин для Госуслуг

Со страницы загрузок на портале Госуслуг скачиваем и устанавливаем Плагин для работы с порталом государственных услуг (версия для macOS)скачать.

Настраиваем плагин для Госуслуг

Скачиваем корректный конфигурационный файл для расширения Госуслуг для поддержки macOS и новых ЭЦП в стандарте ГОСТ2012 – скачать.

Выполняем команды в terminal:

sudo rm /Library/Internet\ Plug-Ins/IFCPlugin.plugin/Contents/ifc.cfg

sudo cp ~/Downloads/ifc.cfg /Library/Internet\ Plug-Ins/IFCPlugin.plugin/Contents


sudo cp /Library/Google/Chrome/NativeMessagingHosts/ru.rtlabs.ifcplugin.json /Library/Application\ Support/Chromium/NativeMessagingHosts

Активируем расширения

Запускаем браузер Chromium-Gost и в адресной строке набираем:

chrome://extensions/

Включаем оба установленных расширения:

  • CryptoPro Extension for CAdES Browser Plug-in
  • Расширение для плагина Госуслуг

Скриншот

Методы шифрования. от плагинов для браузера до криптопровайдеров

Настраиваем расширение КриптоПро ЭЦП Browser plug-in

В адресной строке Chromium-Gost набираем:

/etc/opt/cprocsp/trusted_sites.html

На появившейся странице в список доверенных узлов по-очереди добавляем сайты:

https://*.cryptopro.ru
https://*.nalog.ru
https://*.gosuslugi.ru

Жмем “Сохранить”. Должна появиться зеленая плашка:

Список доверенных узлов успешно сохранен.

Скриншот

Методы шифрования. от плагинов для браузера до криптопровайдеров

Проверяем что все работает

Заходим на тестовую страницу КриптоПро

В адресной строке Chromium-Gost набираем:

https://www.cryptopro.ru/sites/default/files/products/cades/demopage/cades_bes_sample.html

Должно выводиться “Плагин загружен”, а в списке ниже присутствовать ваш сертификат.
Выбираем сертификат из списка и жмем “Подписать”. Будет запрошен PIN-код сертификата. В итоге должно отобразиться

Подпись сформирована успешно

Скриншот

Методы шифрования. от плагинов для браузера до криптопровайдеров

Заходим в Личный Кабинет на nalog

По ссылкам с сайта nalog.ru зайти может не получиться, т.к. не будут пройдены проверки. Заходить нужно по прямым ссылкам:

  • Личный кабинет ИП: https://lkipgost.nalog.ru/lk
  • Личный кабинет ЮЛ: https://lkul.nalog.ru

Скриншот

Методы шифрования. от плагинов для браузера до криптопровайдеров

Заходим на Госуслуги

При авторизации выбираем “Вход с помощью электронной подписи”. В появившемся списке “Выбор сертификата ключа проверки электронной подписи” будут отображены все сертификаты, включая корневые и УЦ, нужно выбрать ваш с usb-токена и ввести PIN.

Скриншот

Методы шифрования. от плагинов для браузера до криптопровайдеров

Методы шифрования. от плагинов для браузера до криптопровайдеров

Что делать, если перестало работать

  1. Переподключаем usb-токен и проверяем что он виден с помощью команды в terminal:

    sudo /opt/cprocsp/bin/csptest -card -enum

  2. Очищаем кеш браузера за все время, для чего в адресной строке Chromium-Gost набираем:

    
chrome://settings/clearBrowserData


  3. Переустанавливаем сертификат КЭП с помощью команды в terminal:

    /opt/cprocsp/bin/csptestf -absorb -certs

  4. Если команды Cryptopro не отрабатывают (csptest и csptestf превратились в corrupted) – нужно переустановить Cryptopro.

ВНИМАНИЕ! Обновление ЭТП для работы в современных браузерах

Все новости

20.01.2022 23:18

Для работы на нашей ЭТП Вам больше не требуется устаревший браузер Internet Explorer. Закройте его и откройте сайт ЭТП в современном браузере, таком как Chrome, Firefox, Яндекс.Браузер, Edge.

Для работы с электронной подписью Вам потребуется перенастроить компьютер, это легко – скачайте по ссылке КриптоПро ЭЦП Browser Plugin (http://www.cryptopro.ru/products/cades/plugin/get_2_0) версии 2.0 и установите плагин, запустив загруженный файл.

Обратите внимание: если у Вас по каким-то причинам уже была установлена более ранняя версия плагина, ее необходимо удалить и установить новую версию по приведенной ссылке.

После установки плагина достаточно перезапустить браузер, после чего можно работать на площадке с использованием электронной подписи.

Дополнительно проверить корректность установки плагина Вы можете на сайте КриптоПро (https://www.cryptopro.ru/sites/default/files/products/cades/demopage/simple.html) – если плагин установлен корректно, будет отображено сообщение “Плагин загружен”. Проверить корректность формирования тестовой электронной подписи на площадке Вы можете в разделе Проверить электронную подпись.

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

Производители средств криптографической защиты информации (СКЗИ) предлагают различные механизмы для интеграции криптосредств в информационные системы. Существуют решения, ориентированные на поддержку систем с Web-интерфейсом, мобильных и десктопных приложений, серверных компонентов. СКЗИ интегрируются в приложения Microsoft и в продукты Open Source, обеспечивают поддержку различных прикладных протоколов и форматов электронной подписи.

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

В данном материале сделана попытка классифицировать средства криптографической защиты информации.

  • Рассмотрены в основном СКЗИ, использующиеся на клиентских местах для защиты клиент-серверных соединений по протоколу TLS, для организации ЭЦП, шифрования передаваемых данных;
  • Не рассматриваются СКЗИ, применяемые для создания VPN и шифрования файловой системы, хранимых данных, а так же УЦ;
  • Отдельно выделены аппаратные криптографические устройства.

Классификация построена на основе:

  • технологий интеграции (CryptoAPI, Active-X, NPAPI и др.), которые поддерживают СКЗИ для встраивания в приложения и прикладные системы;
  • интерфейсов, которые предоставляют СКЗИ для встраивания в приложения и прикладные системы.

Кроме того, показаны способы интеграции СКЗИ с Web-приложениями и возможность его использования на мобильных платформах

Общая схема классификации приведена в таблице:

КриптопровайдерыНативные библиотеки (openssl-style, PKCS#11, NSS, собственные интерфейсы)Локальные проксиБраузерные плагиныОблачная подписьБраузеры с российской криптографией
Почтовые клиенты с российской криптографиейРоссийская криптография в фреймворках, платформах, интерпретаторахНастольные криптографические приложенияКриптография в BIOS UEFIСервис-провайдеры ЭЦПЭмуляторы доверенной среды
Аппаратные средства

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

Подпись файлов в 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:
Методы шифрования. от плагинов для браузера до криптопровайдеров

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

Методы шифрования. от плагинов для браузера до криптопровайдеров

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

Для того, чтобы из скриптов WEB-страницы вызвать нативную библиотеку большинство браузеров поддерживают специальные расширения — ActiveX для IE и NPAPI-плагин для GH, MF, Opera, Sаfari и др. В данный момент на рынке существует широкий спектр продуктов, относящихся к браузерным плагинам. Архитектурно данные плагины могут быть исполнены по-разному. Некоторые работают на базе CryptoAPI и требуют дополнительной установки криптопровайдера, другие используют в качестве криптоядра PKCS#11-совместимые устройства и не требуют установки дополнительных СКЗИ на рабочее место клиента. Есть универсальные плагины, которые поддерживают как все основные криптопровайдеры, так и широкий спектр аппаратных СКЗИ.

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

Методы шифрования. от плагинов для браузера до криптопровайдеров

Спецификация
ПлатформыСемейство Windows, GNU\Linux, OS X
Алгоритмы и криптографические протоколыЭЦП, шифрование, хэш-функция, имитозащита, HMAC
Интеграция с PKIX.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
Мобильные платформыне поддерживаются
Хранилища ключейРеестр, файлы, USB-токены
Взаимодействие с USB-токенамиХранилище ключей и сертификатов
Использование аппаратной реализации алгоритмов
Через PKCS#11, через CryptoAPI
ПриложенияБраузеры
ИнсталляцияПрограмма установки, не требуются права системного администратора
Примеры (ГОСТ)КриптоПро ЭЦП Browser plugin
eSign-PRO
КриптоПлагин Лисси
Плагин портала госуслуг
JC-WebClient
Рутокен Плагин
Плагин BSS
КриптоАРМ Browser plugin

Проблемы:

  • отсутствие TLS
  • удаление NPAPI из Chromium
  • браузеры на мобильных платформах не поддерживают плагины
  • настройки безопасности IE могут блокировать исполнение плагина

Плюсы:

  • кроссплатформенность для плагинов на базе PKCS#11
  • кроссбраузерность
  • плагины на базе PKCS#11 не требуют установки СКЗИ
  • прозрачное использование для пользователя

ActiveX

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

Методы шифрования. от плагинов для браузера до криптопровайдеров

В следующих статьях будут подробно рассмотрены оставшиеся решения.

Читайте также:  Шлюз приема отчетности в ФСС f4 fss
Оцените статью
ЭЦП Эксперт
Добавить комментарий