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

Уведомление

Icon
Error

5 Страницы«<2345>
Опции
К последнему сообщению К первому непрочитанному
Offline tarzan_pasha  
#31 Оставлено : 18 октября 2018 г. 14:12:00(UTC)
tarzan_pasha

Статус: Участник

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

Сказал(а) «Спасибо»: 4 раз
Автор: vgNikoz Перейти к цитате
Автор: Антонимиус Перейти к цитате
Язык на сервере php
Но клиент то работает с плагином. Собственно вопрос как передать фаил с сервера плагину? И как потом подписанный фаил вернуть на сервер? То есть плагин что возвращает форму с файлом и достаточно сделать ее пост?
Есть простые примеры реализации?


я взял пример https://www.cryptopro.ru...age/cades_bes_file.html, тут вся работа построена на js, вам нужны файлы Code.js, cadesplugin_api.js, для firefox нужен еще async_code.js
Я работал через firefox поэтому вносил корректировки в файл async_code.js, там есть функция подписания файла SignCadesBES_Async_File.
Получается, что вы работаете только в браузере, выбираете файл и ключ которым подписать. При загрузке файла он перекодируется в строку base64, затем эта строка подписывается ключем и возвращается этот же файл с подписью тоже в base64, для обратного преобразования этой строки я добавил функции в этот файл:
Код:

function saveFile(Signature, file, mime) {
    urltoFile(Signature, file, mime).then(function(file){
        var data = new FormData();

        data.append('file', file);

        $.ajax({
            type: 'POST',
            url: '/ajax/test.php',
            data: data,
            cache: false,
            dataType: 'json',
            processData: false,
            contentType: false,
            success: function(response) {
                console.log(response);
            }
        });
    });
}

function urltoFile(url, filename, mimeType){
    console.log(url);
    return (fetch(url)
            .then(function(res){return res.arrayBuffer();})
            .then(function(buf){return new File([buf], filename, {type:mimeType});})
    );
}

а в функции SignCadesBES_Async_File перед выводом этой строки подписанного файла в textarea добавил вызов saveFile('data:application/pdf;base64,' + Signature, 'test.pdf', 'application/pdf');
только нужно еще доделал определение формата загруженного файла и подставлять именно его. а в файле test.php я работаю с $_FILES и просто сохраняю файл

здравствуйте! я кажется занимаюсь той же задачей, что и вы. только вы отправляете файл конкретного вида (pdf ) и подписываете его. а я использую универсальный подписыватель файлов. В вашем случае если хотите чтобы файл можно было просмотреть, нужно сначала снять с него подпись.
Вы мне можете подсказать? то, что мы видем в текстовом поле - это получается присоединенная к файлу подпись закодированная в base64? Ее получается нужно раскодировать прежде, чем мы будем проверять правильность подписи любым онлайн сервисом, который проверяет подпись?
Offline two_oceans  
#32 Оставлено : 19 октября 2018 г. 5:56:58(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,602
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 394 раз в 366 постах
По идее сервис должен автоматически определить тип подписи и раскодировать ее соответствующим образом. У меня под рукой не нашлось присоединенной cades загрузил xmldsig, результат = Подпись не действительна. Дополнительная информация=
Подпись математически корректна. Не удается построить цепочку сертификатов для доверенного корневого центра.
Загрузил отсоединенный cades пришлось выбрать Подпись в формате CMS, Подпись данных, отсоединенная подпись, алгоритм хэширования гост-94, загрузить исходный документ.
Дополнительная информация= Не удалось проверить подпись CAdES-BES. Ошибка: [Процесс отмены не может быть продолжен - проверка сертификатов недоступна]. Код: [0x800b010e].Ошибка проверки конечного сертификата на отзыв.
То есть подпись корректна, но сервис не нашел сертификат для УЦ. Это нормально, просто Вам нужно будет реализовать проверку сертификата.
Offline Андрей Писарев  
#33 Оставлено : 19 октября 2018 г. 9:04:25(UTC)
Андрей *

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

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

Сказал «Спасибо»: 500 раз
Поблагодарили: 2045 раз в 1586 постах
Автор: tarzan_pasha Перейти к цитате


Помогите мне пожалуйста. Подписываю обычный текстовый файл при помощи
https://www.cryptopro.ru/sites/d...page/cades_bes_file.html
С сертификатом вроде порядок:
sert
подписываю файл. Как я понял на выходе получаем присоединенную подпись.
Копирую ее в файл test.txt.sig
и иду на сервис проверить
http://qs.cryptopro.ru/SVS/Verify/
parametrs
потом проверка выдает ошибку.
ошибка

Как мне добиться, чтобы все работало? Моя задача - реализовать функционал, подписывающий прикрепленные файлы и чтобы их можно было потом проверить. В данном случае для проверки я использую http://qs.cryptopro.ru/SVS/Verify/ - ведь мне нужно убедиться, что все подписывается правильно и после этого уже реализовывать проверку сертификата и подписи на стороне сервера.

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




Здравствуйте.
Вы подписываете сертификатом, который выдал УЦ, к которому нет доверия на стороне этого сервиса.
Вероятно используете тестовый УЦ?


Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
tarzan_pasha оставлено 19.10.2018(UTC)
Offline tarzan_pasha  
#34 Оставлено : 19 октября 2018 г. 9:58:10(UTC)
tarzan_pasha

Статус: Участник

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

Сказал(а) «Спасибо»: 4 раз
Автор: Андрей Писарев Перейти к цитате


Здравствуйте.
Вы подписываете сертификатом, который выдал УЦ, к которому нет доверия на стороне этого сервиса.
Вероятно используете тестовый УЦ?




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

И пожалуйста помогите. Я весь форум перерыл. И нашлись вопросы, на которые не имею точного ответа.

1)Если не ставить платный серверный КриптоПро CSP, то у меня не будет на сервере Linux работать:
- php расширение
- cryptcp
- Крипто Про SDK.

?

для проверки подписи на стороне сервера, для извлечения присоединенной подписи, для проверки отозванности сертификатов и их действительности.

Или же в любом случае придется для этого приобрести КриптоПро CSP 4? Вроде в документации написано, что и
- php расширение
- cryptcp
- Крипто Про SDK.
требуют установленного, а значит купленного КриптоПро CSP 4
Но еще и не понятно - отдельно в документации написано, что Крипто Про SDK тоже дается только на 90 дней. Значит и ее тоже нужно покупать?
Плюс в одной из веток упоминалось о том, что можно установить некие ЭКспериментальные версии Крипто Про. А где их найти? на сайте только есть сертифицированные версии и несертифицированные.

Отредактировано пользователем 19 октября 2018 г. 10:09:14(UTC)  | Причина: Не указана

Offline vgNikoz  
#35 Оставлено : 19 октября 2018 г. 10:19:01(UTC)
vgNikoz

Статус: Участник

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

Поблагодарили: 2 раз в 2 постах
Автор: Антонимиус Перейти к цитате
Правильно ли я понимаю что текст который выводится после "Подпись сформирована успешно" это и есть base64 строка, которую потом вы принимаете по аяксу в test.php а там идет сохранение в фаил что то на подобии такого:
Цитата:
$data = base64_decode($pdf_string);
file_put_contents('file.pdf',$data);


Функции, что я описал, уже делают обратное преобразование в pdf и формируют массив файла для передачи в файл test.php
Offline vgNikoz  
#36 Оставлено : 19 октября 2018 г. 10:49:11(UTC)
vgNikoz

Статус: Участник

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

Поблагодарили: 2 раз в 2 постах
Автор: two_oceans Перейти к цитате
То есть подпись корректна, но сервис не нашел сертификат для УЦ. Это нормально, просто Вам нужно будет реализовать проверку сертификата.


Та же самая ситуация, подпись не тестовая. При проверке сертификата по ссылке появляется та же ошибка. Можете уточнить, что значит реализовать проверку сертификата? Как именно это нужно сделать?
Offline vgNikoz  
#37 Оставлено : 19 октября 2018 г. 10:50:38(UTC)
vgNikoz

Статус: Участник

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

Поблагодарили: 2 раз в 2 постах
Автор: tarzan_pasha Перейти к цитате
А где их найти? на сайте только есть сертифицированные версии и несертифицированные.


Это они и есть, просто установить сертифицированную версию и все, она будет работать
thanks 1 пользователь поблагодарил vgNikoz за этот пост.
tarzan_pasha оставлено 19.10.2018(UTC)
Offline tarzan_pasha  
#38 Оставлено : 19 октября 2018 г. 10:57:02(UTC)
tarzan_pasha

Статус: Участник

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

Сказал(а) «Спасибо»: 4 раз
Автор: vgNikoz Перейти к цитате
Автор: tarzan_pasha Перейти к цитате
А где их найти? на сайте только есть сертифицированные версии и несертифицированные.


Это они и есть, просто установить сертифицированную версию и все, она будет работать


а работать только 90 дней? или без ограничения?
Offline vgNikoz  
#39 Оставлено : 19 октября 2018 г. 11:02:16(UTC)
vgNikoz

Статус: Участник

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

Поблагодарили: 2 раз в 2 постах
Автор: tarzan_pasha Перейти к цитате
а работать только 90 дней? или без ограничения?


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

А у вас получилось разобраться с проверкой подписанного документа?

Отредактировано пользователем 19 октября 2018 г. 11:03:48(UTC)  | Причина: Не указана

Offline tarzan_pasha  
#40 Оставлено : 19 октября 2018 г. 11:30:38(UTC)
tarzan_pasha

Статус: Участник

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

Сказал(а) «Спасибо»: 4 раз
Автор: vgNikoz Перейти к цитате
Автор: tarzan_pasha Перейти к цитате
а работать только 90 дней? или без ограничения?


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

А у вас получилось разобраться с проверкой подписанного документа?


пока не получилось. примера асинхронной работы js в плане проверки нигде нет. все перерыл. а до проверки на сервере я еще не дошел. Да и сертификаты у меня учебные. А вы проверку на сервере будете делать? Мои планы такие - добиться того, чтобы отсоединенную и присоединенную подпись можно было проверить на каком-нибудь онлайн сервисе. А после этого убедившись, что она проходит проверку начать уже настраивать Ubuntu и php расширение чтобы на серверной стороне проверить по новой. при помощи php. Жаль много хлопот с установкой php расширения. Ни одного не нашел на форуме завершенного решения. У всех возникали какие-либо глюки. то с Curl то еще с чем-то.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
5 Страницы«<2345>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.