Подписание файлов в веб
(1 чел.) (1) гость
  • Страница:
  • 1
  • ...
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

ТЕМА: Подписание файлов в веб

Re: Подписание файлов в веб 2 года, 5 мес. назад #2997

  • Murat Seisenov
  • Модератор
  • Постов: 391
  • Репутация: 19
Добрый день!
Закрытый ключ нельзя передавать на сервер. Это нарушение требований ИБ и правил применения рег. свидетельств НУЦ РК. Подпись должна выполняться на клиенте. Сервер не должен знать пароль от хранилища и не должен получать закрытые ключи пользователя.
Модератор

Re: Подписание файлов в веб 2 года, 5 мес. назад #2998

  • Developer.KZ
  • Осваиваюсь на форуме
  • Постов: 31
  • Репутация: 0
Значит для меня вариант используя NCALayer и подписывать через него JavaScript (crypto_object.js) via WebSocket?

Re: Подписание файлов в веб 2 года, 5 мес. назад #3001

  • Developer.KZ
  • Осваиваюсь на форуме
  • Постов: 31
  • Репутация: 0
Здравствуйте, прошу помочь далее по теме. Нам ранее будут высланы открытые ключи, при подписи веб-формы клиентом нам необходимо проверить подпись используя ранее присланный открытый ключ, например в PHP это выглядит так:
openssl_verify($data, $signature, $public_key_res, "sha");
при реализации при помощи библиотеки crypto_object.js как мне отправить в качестве аргумента открытый ключ? В сущ. функции такого не предусмотрено..
function verifyPlainData(storageName, storagePath, alias, password, dataToVerify, base64EcodedSignature, callBack)
или можно разработать свою функцию, тогда есть ли API DOC к NCalayer-WebSocket?

Re: Подписание файлов в веб 2 года, 5 мес. назад #3002

  • Developer.KZ
  • Осваиваюсь на форуме
  • Постов: 31
  • Репутация: 0
я бы проверил через PHP в событии POST но не срабатывает..
<?php
$path = '/tmp/key/testov_test.cer';
$pub_key = openssl_pkey_get_public(file_get_contents($path));
$details = openssl_pkey_get_details($pub_key);
$public_key_res = openssl_pkey_get_public($details['key']);
$data = 'Hi, how are you?!';
$signature = 'OjkuEqcC5%2F2ZfCmKRs5m3WPJjKvAv1COIy1xywOzwU6FUdSiJwsXicCpUdo%2FHKh4NaCWsEZsOxA3G1XkX8CrcRRkBgUqsipQDgjj40LgY0dDqvaVdFrW6HLll46WtZzyoORPTimdGNL5pmvVTTLwHJMb5mWpf2pTeOXy95LMeZ9eeGBmmGdyT0yMMbCK6JxmmRn%2FEyQWiZP%2BZmxJBtu6aRa0MC4vq9365%2FIOJB9e62gKnLtkjJtIAQeCGbr%2BxoWQA08PF6j98tywYWftUSzVud9ioRtDv0IAI3Lk026C8QRRnDpEebARikp2cSroSj%2Bj74AemudOVASGblWoWffK2w%3D%3D';
$ok = openssl_verify($data, $signature, $public_key_res, "sha");
if ($ok == 1) {
echo "good";
} elseif ($ok == 0) {
echo "bad";
} else {
echo "ugly, error checking signature";
}
openssl_free_key($public_key_res);
?>

Re: Подписание файлов в веб 2 года, 5 мес. назад #3003

  • valexweb
  • Новый участник
  • Постов: 9
  • Репутация: 0
В NCALayer можно использовать метод "createCMSSignature", он формирует так называемую открепленную ЭЦП в формате PKCS#7 (туда же можно включить и сами данные), а та в свою очередь уже содержит в теле сертификат, и проверить можно следующим методом
php.net/manual/ru/function.openssl-pkcs7-verify.php

Но это как совет. Должон работать.

Да и Ваш вариант тоже должен работать, проверьте подписанные данные не с помощью php, а с помощью openssl.

Да, но есть одно НО. Вы случаем не ГОСТовскую подпись хотите проверить? Так-то в ПХП скорее всего нет данных алгоритмов.

Re: Подписание файлов в веб 2 года, 5 мес. назад #3004

  • Developer.KZ
  • Осваиваюсь на форуме
  • Постов: 31
  • Репутация: 0
чувствую придётся городить Java пакет для проверки отзыва и подписи.
  • Страница:
  • 1
  • ...
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
FaLang translation system by Faboba