Статус: Новичок
Группы: Участники
Зарегистрирован: 13.03.2015(UTC) Сообщений: 8 Откуда: Челябинск
Сказал(а) «Спасибо»: 4 раз
|
Здравствуйте! Подскажите, пожалуйста, возможно ли организация проверки ЭЦП на сервере, где расположен веб-сайт. Подписанный документ будет храниться на сервере, сама подпись в базе данных. Необходимо организовать проверку подписи файла (разделенная подпись), перед тем как клиент скачает с сайта документ. Желательно, чтобы клиент не ставил никакого ПО. Все проверялось на сервере. И что для этого понадобится?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2046 раз в 1586 постах
|
Автор: LeeBH Здравствуйте! Подскажите, пожалуйста, возможно ли организация проверки ЭЦП на сервере, где расположен веб-сайт. Подписанный документ будет храниться на сервере, сама подпись в базе данных. Необходимо организовать проверку подписи файла (разделенная подпись), перед тем как клиент скачает с сайта документ. Желательно, чтобы клиент не ставил никакого ПО. Все проверялось на сервере. И что для этого понадобится? Да, возможна. написать по документации (см. С\COM-интерфейс): Справочник по ЭЦП SDK
|
|
1 пользователь поблагодарил Андрей * за этот пост.
|
LeeBH оставлено 30.03.2015(UTC)
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 13.03.2015(UTC) Сообщений: 8 Откуда: Челябинск
Сказал(а) «Спасибо»: 4 раз
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 02.04.2015(UTC) Сообщений: 11 Откуда: Казань
|
Каким образом можно вытащить на сервере сведения о том, кто подписал документ? И каким образом для этого надо документ подписывать? Так подписываю на клиенте: Код:function Sign(dataToSign) {
var oCertificate = GetCertificateBySubjectName();
var oSigner = CreateObject("CAdESCOM.CPSigner");
oSigner.TSAAddress = "https://www.cryptopro.ru/tsp/";
oSigner.Certificate = oCertificate;
var oHashedData = CreateObject("CAdESCOM.HashedData");
oHashedData.Algorithm = CADESCOM_HASH_ALGORITHM_CP_GOST_3411;
oHashedData.DataEncoding = CADESCOM_BASE64_TO_BINARY;
oHashedData.Hash(dataToSign); // dataToSign - это строка base64
var oSignedData = CreateObject("CAdESCOM.CadesSignedData");
var sSignedMessage = "";
try {
sSignedMessage = oSignedData.SignHash(oHashedData, oSigner, CADESCOM_CADES_BES);
} catch (err) {
return;
}
return sSignedMessage;
}
Как из sSignedMessage вытащить автора подписи на сервере (если будет пример на php - будет намного лучше)? И можно ли проверить статус этого автора в УЦ? Отредактировано пользователем 3 апреля 2015 г. 12:09:58(UTC)
| Причина: Не указана
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 13.03.2015(UTC) Сообщений: 8 Откуда: Челябинск
Сказал(а) «Спасибо»: 4 раз
|
Сведения о сертификате можно получить с помощью Крипто Про SDK (см ссылку выше от Андрея). На счет проверки на сервере подписи используя php ТП КриптоПро ответила следующим образом: "Дополню, что имеется вариант использования php раcширение, которое умеет использовать API из КриптоПро ЭЦП SDK. Распространяется он бесплатно клиентам, имеющие сертификат на техническую поддержку SDK." Примеров нет...
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 02.04.2015(UTC) Сообщений: 11 Откуда: Казань
|
можно ли проверить подпись, используя утилиту openssl, без открытого ключа и сертификата того, кто подписал, имя в наличи только файл *.sig (pkcs#7)?
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 02.04.2015(UTC) Сообщений: 11 Откуда: Казань
|
Разобрался: 1. openssl enc -d -base64 -in signedfile.sig -out signedfile // декодируем подпись из base64 2. openssl pkcs7 -in signedfile -print_certs -inform DER -out signercert.pem // извлекаем сертификат из подписи 3. openssl x509 -noout -in signercert.pem -dates // проверка времени действия сертификата
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2046 раз в 1586 постах
|
Автор: plov Разобрался: 1. openssl enc -d -base64 -in signedfile.sig -out signedfile // декодируем подпись из base64 2. openssl pkcs7 -in signedfile -print_certs -inform DER -out signercert.pem // извлекаем сертификат из подписи 3. openssl x509 -noout -in signercert.pem -dates // проверка времени действия сертификата Не заметил, где в этих 3х пунктах проверяется подпись. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 02.04.2015(UTC) Сообщений: 11 Откуда: Казань
|
Автор: Андрей * Автор: plov Разобрался: 1. openssl enc -d -base64 -in signedfile.sig -out signedfile // декодируем подпись из base64 2. openssl pkcs7 -in signedfile -print_certs -inform DER -out signercert.pem // извлекаем сертификат из подписи 3. openssl x509 -noout -in signercert.pem -dates // проверка времени действия сертификата Не заметил, где в этих 3х пунктах проверяется подпись. Под проверкой подписи я имел в виду проверку подлинности сертификата подписи. Кстати, срок действия сертификата проверяется, исходя из самого сертификата, или происходит запрос к серверу УЦ? Как проверять срок действия через сервер УЦ?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2046 раз в 1586 постах
|
Автор: plov Автор: Андрей * Автор: plov Разобрался: 1. openssl enc -d -base64 -in signedfile.sig -out signedfile // декодируем подпись из base64 2. openssl pkcs7 -in signedfile -print_certs -inform DER -out signercert.pem // извлекаем сертификат из подписи 3. openssl x509 -noout -in signercert.pem -dates // проверка времени действия сертификата Не заметил, где в этих 3х пунктах проверяется подпись. Под проверкой подписи я имел в виду проверку подлинности сертификата подписи. Кстати, срок действия сертификата проверяется, исходя из самого сертификата, или происходит запрос к серверу УЦ? Как проверять срок действия через сервер УЦ? Срок действия - задает УЦ в сертификате, при его выпуске. Если сертификат был отозван - срок действия в сертификате никак не изменится. Необходимо проверять статус сертификата (действует\отозван) по CRL\OCSP от УЦ. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close