Форум КриптоПро
»
Общие вопросы
»
Общие вопросы
»
Подписание файлов ЭЦП на сайте ЭТП
Статус: Новичок
Группы: Участники
Зарегистрирован: 07.10.2012(UTC) Сообщений: 4 Откуда: Тамбов
|
Добрый день. При написании серверной части ЭТП встал вопрос внедрения возможности подписания загруженных файлов, ЭЦП пользователя. Не могли бы вы прояснить для меня несколько вопросов? На мой взгляд, алгоритм данного дествия должен быть такой: 1. Загрузка пользователем файла. 2. Запрос от сервера, ЭЦП пользователя. 3. Запрос от сервера к УЦ, о действии ЭЦП пользователя. 4. Подписание файла на сервере, ЭЦП пользователя 5. Сохранение файла и полученной сигнатуры. Я прав или что-то неверно/упущенно? Отредактировано пользователем 7 октября 2012 г. 20:34:23(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,022   Сказал «Спасибо»: 609 раз Поблагодарили: 2364 раз в 1860 постах
|
oleg_antonov написал:Добрый день. При написании серверной части ЭТП встал вопрос внедрения возможности подписания загруженных файлов, ЭЦП пользователя. Не могли бы вы прояснить для меня несколько вопросов?
На мой взгляд, алгоритм данного дествия должен быть такой: 1. Загрузка пользователем файла. 2. Запрос от сервера, ЭЦП пользователя. 3. Запрос от сервера к УЦ, о действии ЭЦП пользователя. 4. Подписание файла на сервере, ЭЦП пользователя 5. Сохранение файла и полученной сигнатуры.
Я прав или что-то неверно/упущенно? Каким образом? На сервере будет закрытый ключ пользователя (клиента)? или имеется ввиду другим "пользовательским №2, который используется на сервере", а не из п.2 или п2 это запрос подписи со стороны сервера? Цитата: 3. Запрос от сервера к УЦ, о действии ЭЦП
Действует не ЭЦП, а сертификат, это имелось ввиду? Отредактировано пользователем 7 октября 2012 г. 20:44:34(UTC)
| Причина: Не указана |
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 07.10.2012(UTC) Сообщений: 4 Откуда: Тамбов
|
Действительно, глупость получилось. Тоесть тогда алгоритм следующий: 1. Пользователь загружает файл. 2. Например через CAPICOM подписывает его. 3. На сервере запрос к УЦ о действительности сертификаты. 4. На сервере, верификация сигнатуры 5. Сохранение Файла и сигнатуры
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,022   Сказал «Спасибо»: 609 раз Поблагодарили: 2364 раз в 1860 постах
|
oleg_antonov написал:Действительно, глупость получилось. Тоесть тогда алгоритм следующий: 1. Пользователь загружает файл. 2. Например через CAPICOM подписывает его. 3. На сервере запрос к УЦ о действительности сертификаты. 4. На сервере, верификация сигнатуры 5. Сохранение Файла и сигнатуры между 2 или 3 - можно и на стороне клиента проверять сертификат сразу... через CAPICOM |
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 07.10.2012(UTC) Сообщений: 4 Откуда: Тамбов
|
Посмотрел повнимательней продукты КриптоПРО и нашел КриптоПро ЭЦП Browser plug-in. Насколько я понимаю проблем при его использовании, с аккредитацией минэкономразвития быть не должно? Через данный файл получилось создать подпись (неусовершенствованную), присоединенную к файлу. Два вапроса. 1. Теперь на стороне сервера я могу проверить данную подпись с помощью приложения командной строки cryptcp? 2. Как проверить сертификат пользователя? Тоже через cryptcp?
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 07.10.2012(UTC) Сообщений: 4 Откуда: Тамбов
|
На стороне клиента, с помощью плагина подписываю сообщение, полученный резулбтат сохраняю в файл text.sig : Код:
function SignCreate(certSubjectName, dataToSign) {
var oStore = CreateObject("CAPICOM.Store");
oStore.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE,
CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
var oCertificates = oStore.Certificates.Find(
CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, certSubjectName);
if (oCertificates.Count == 0) {
alert("Certificate not found");
return;
}
var oCertificate = oCertificates.Item(1);
var oSigner = CreateObject("CAdESCOM.CPSigner");
oSigner.Certificate = oCertificate;
oSigner.TSAAddress = "http://cryptopro.ru/tsp/";
var oSignedData = CreateObject("CAdESCOM.CadesSignedData");
oSignedData.Content = dataToSign;
try {
var sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_X_LONG_TYPE_1);
} catch (err) {
alert("Failed to create signature. Error: " + GetErrorMessage(err));
return;
}
oStore.Close();
return sSignedMessage;
}
На стороне сервера на php проверяю подпись так: Код:
$filename = "text.sig";
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize($filename));
fclose($handle);
$err ='';
$sSignedMessage = $contents;
$CADESCOM_CADES_X_LONG_TYPE_1 = 0x5d;
$oSignedData = new COM("CAdESCOM.CadesSignedData");
try {
$oSignedData->VerifyCades($sSignedMessage, $CADESCOM_CADES_X_LONG_TYPE_1);
} catch (Exception $err) {
echo "Failed to verify signature. Error: ".$err;
return false;
}
echo ('Подпись верна');
return true;
1. Правильно ли я делаю? 2. Можно ли как-то на сервере, из полученной подписи получить начальное сообщение, или нужно отсылать его вместе с подписью? 3. Как я могу проверить сертификат пользователя? Вложение(я):  text.sig (11kb) загружен 9 раз(а).У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 15.10.2012(UTC) Сообщений: 1 Откуда: Москва
|
Андрей * написал:oleg_antonov написал:Действительно, глупость получилось. Тоесть тогда алгоритм следующий: 1. Пользователь загружает файл. 2. Например через CAPICOM подписывает его. 3. На сервере запрос к УЦ о действительности сертификаты. 4. На сервере, верификация сигнатуры 5. Сохранение Файла и сигнатуры между 2 или 3 - можно и на стороне клиента проверять сертификат сразу... через CAPICOM Добрый день. Заинтересовал данный момент. Что вы имели ввиду под проверкой сертификата на стороне пользователя? Проверка даты выдачи и окончания сертификата? При использовании плагина для браузера от КриптоПРО, заметил что не каждой ЭЦП можно осуществить подпись. Данный плагин проводит какую-то проверку сертификата самостоятельно?
|
|
|
|
|
|
Форум КриптоПро
»
Общие вопросы
»
Общие вопросы
»
Подписание файлов ЭЦП на сайте ЭТП
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close