Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline IvanC  
#1 Оставлено : 13 июля 2017 г. 23:44:34(UTC)
IvanC

Статус: Новичок

Группы: Участники
Зарегистрирован: 13.07.2017(UTC)
Сообщений: 3
Российская Федерация

Добрый день.
Пытаюсь пройти по примерам для browser plugin (https://www.cryptopro.ru/sites/default/files/products/cades/demopage/main.html)

При переходе на страницу:
https://www.cryptopro.ru...des/demopage/simple.html

Появляется сообщение о плагине:
Плагин загружен.
Версия плагина: 2.0.12888 Версия криптопровайдера: 4.0.9842
Криптопровайдер: Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider

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

Перехожу на страницу получения сертификата ключа подписи (https://www.cryptopro.ru/certsrv/certrqma.asp)
Поле CSP с надписью "Загрузка..." не дает ничего сделать.
Пробовал генерировать в Firefox, IE.

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

ОС: windows 10 x64
Браузер: Firefox 54.01
Offline giannirodari  
#2 Оставлено : 14 июля 2017 г. 12:13:14(UTC)
Михаил Селезнёв

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 05.04.2017(UTC)
Сообщений: 362
Мужчина
Российская Федерация

Сказал «Спасибо»: 3 раз
Поблагодарили: 54 раз в 53 постах
Добрый день!
Если имеется антивирусное ПО - отключите его на время формирования запроса на сертификат. Добавьте адрес https://www.cryptopro.ru/ в "Надёжные сайты (узлы)" настройках браузера и плагина. Запуск настроек КриптоПро ЭЦП Browser Plug-in осуществляется через Пуск.
Для формирования запроса рекомендую использовать IE. В Firefox хитрая настройка работы плагина, которая у Вас вероятно не произведена. Дополнительно прошу сообщить для чего Вам нужен тестовый сертификат. У Вас нет личного? Как планируете использовать плагин в дальнейшем?
Offline IvanC  
#3 Оставлено : 14 июля 2017 г. 13:24:17(UTC)
IvanC

Статус: Новичок

Группы: Участники
Зарегистрирован: 13.07.2017(UTC)
Сообщений: 3
Российская Федерация

Задача стоит следующая:
Есть карточка с полями в закрытой сети (аналог платежного поручения из примеров).
Человек заходит в карточку, заполняет требуемые поля, вставляет USB брелок, нажимает подписать и подписывает заполненные поля своей подписью.

Подпись сохраняется в БД вместе с введенными данными, при просмотре подписанной карточки должна быть видна информация о том, кто подписал карточку и то, что данные в карточке актуальны и их не меняли с момента подписания.



Пока это делается для демонстрации заказчику.



Как я понял требуется создать криптоконтейнер (папка с видом XXXX.000 в корне диска) где будет храниться закрытый ключ, открытый ключ и сертификатом.
При попытки подписи требуется сообщить плагину, о существовании контейнера и позволить выбрать его для подписи.

Пока не попал на документацию по созданию самого криптоконтейнера.
Online Андрей Писарев  
#4 Оставлено : 14 июля 2017 г. 13:28:50(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,629
Мужчина
Российская Федерация

Сказал «Спасибо»: 493 раз
Поблагодарили: 2034 раз в 1578 постах

Получить тестовый сертификат можно в тестовом УЦ
https://cryptopro.ru/certsrv/
Техническую поддержку оказываем тут
Наша база знаний
Offline IvanC  
#5 Оставлено : 20 июля 2017 г. 23:01:19(UTC)
IvanC

Статус: Новичок

Группы: Участники
Зарегистрирован: 13.07.2017(UTC)
Сообщений: 3
Российская Федерация

Спасибо, были проблемы с IE. Получилось решить и сгенерировать сертификат.

Пытаюсь сделать валидацию подписи (пока только асинхрронная версия), но в любых случаях подпись считается валидной.
Только изменение самой подписи приводит к ошибке, исходные строка никак не влияют на проверку подписи (Chrome,Firefox,Opera).

Сделал тестовую страницу: http://vbsite.ru/crypto/

Подскажите, что делаю не так?


Листинг ниже:

Код:



    var CADESCOM_CADES_BES = 1;
    var CAPICOM_CURRENT_USER_STORE = 2;
    var CAPICOM_MY_STORE = "My";
    var CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED = 2;
    var CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME = 1;
    var CADESCOM_BASE64_TO_BINARY = 1;
    
    
    function SignCreate(certSubjectName, dataToSign) {
        return new Promise(function(resolve, reject){
            cadesplugin.async_spawn(function *(args) {
            	
                try {
                    var oStore = yield cadesplugin.CreateObjectAsync("CAdESCOM.Store");
                   *****************************
                    var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
                    yield oSignedData.propset_ContentEncoding(CADESCOM_BASE64_TO_BINARY);
                    yield oSignedData.propset_Content(dataToSign);

                    var sSignedMessage = yield oSignedData.SignCades(oSigner, CADESCOM_CADES_BES);

                    yield oStore.Close();
                }
                catch (err)
                {
                    args[3]("Failed to create signature. Error: " + cadesplugin.getLastError(err));
                }
            }, certSubjectName, dataToSign, resolve, reject);
        });
    }

 function run() {
        var oCertName = document.getElementById("CertName");
        var sCertName = oCertName.value;
        if ("" == sCertName) {
            alert("Введите имя сертификата (CN).");
            return;
        }
        
        // Строку в base64
        var dataInBase64 = window.btoa(document.getElementById("source").value);
        var thenable = SignCreate(sCertName, dataInBase64);

        thenable.then(
            function (result){
            	document.getElementById('signature').value=result;
            }, function(err) {
            	document.getElementById('signature').value = '';
            	alert(err)
            });
        
    }


    function Verify(sSignedMessage, dataToVerify) {
    	return new Promise(function(resolve, reject){
            cadesplugin.async_spawn(function *(args) {
			    
			    var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
			    try {
			        // Значение свойства ContentEncoding должно быть задано
			        // до заполнения свойства Content
			        yield oSignedData.propset_ContentEncoding(CADESCOM_BASE64_TO_BINARY);
			        yield oSignedData.propset_Content(dataToVerify);
			        yield oSignedData.VerifyCades(sSignedMessage, CADESCOM_CADES_BES);
			        args[2]("Verify");
			        
			    } catch (err) {
			        args[3]("Failed to verify signature. Error: " + cadesplugin.getLastError(err));
			    }
			    
			}, sSignedMessage, dataToVerify, resolve, reject);
        });
    }

	function ver() {
        // Строку в base64
    	var dataInBase64 = window.btoa(document.getElementById("source").value);
    	var sSignedMessage = document.getElementById('signature').value;
		var verifyResult = Verify(sSignedMessage, dataInBase64);
		verifyResult.then(function(res){
			alert(res)
		}, function(err){
			alert(err)
		});
	}
   

Offline cross  
#6 Оставлено : 31 июля 2017 г. 13:38:46(UTC)
Анатолий Беляев

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
По коду не понятно что вы изменяете и где не работает. Вы создаете подпись и ее тут же проверяете, почему ей вдруг стать не валидной? Когда внутрь генератора аргументы передаются через args то их лучше всех получать через args[i] а не только те которые resolve reject.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.