Сообщение
  • Пожалуйста, прежде пройдите авторизацию

Как вытащить данные из подписанного XML
(1 чел.) (1) гость
  • Страница:
  • 1
  • 2

ТЕМА: Как вытащить данные из подписанного XML

Как вытащить данные из подписанного XML 5 года, 1 мес. назад #1018

  • Nigmet
  • Новый участник
  • Постов: 3
  • Репутация: 0
С помощью javaScript на клиенте подписали присланные данные от сервера в формате BASE64, потом вложили данные от сервера в XML

data = '<?xml version=\'1.0\'?><BANKDOC>' + data + '</BANKDOC>';
signature = document.getElementById('IolaApplet').signXml(data, storeType, fileOrDevice, alias,'utf8');

Далее подписанный XML отправили на сервер.

Вопросы:
Полученная строка обрабатывается COM библиотекой в C# MVC
private bool VerifyCsXmlV1(string KeyId, int OperFlags, string InData)
{
return iolaCOM_.VerifyXML(KeyId, OperFlags, "utf-16", InData);
}
result = VerifyCsXmlV1("", 0, ClientString);
функция выдает True
1. Как удостовериться что подписал именно это физическое лицо ?
2. Если можно разные реквизиты ИИН, ФИО, даты сертификата ?
3. Проверить дату подписи на сервере ?
Изменено: 5 года, 1 мес. назад от Nigmet.

Re: Как вытащить данные из подписанного XML 5 года, 1 мес. назад #1019

  • Murat Seisenov
  • Модератор
  • Постов: 391
  • Репутация: 19
Здравствуйте!

1, 2. Можете вызвать метод DocInfo - возвращает информацию о подписях и сертификатах из документа.
Пример:
docInfoStr = iolaCOM_.DocInfo(DI_IN_XML or DI_OUT_TEXT,'utf-8',strBody);

DI_IN_XML – входные данные XML;
DI_IN_PKCS7 – на вход подается PKCS7 документ (в бинарном или BASE64 виде);
DI_IN_X509 – на вход подается X509 документ – цифровой сертификат (в бинарном или BASE64 виде);
DI_OUT_TEXT или DI_OUT_XML – выходные данные в формате текста или XML


3. В XML у нас нет реализации возможности размещения метки времени в подписи.
Модератор

Re: Как вытащить данные из подписанного XML 5 года, 1 мес. назад #1020

  • Nigmet
  • Новый участник
  • Постов: 3
  • Репутация: 0
IOLACOM_DOCFLAGS tt = 0;

tt |= IOLACOM_DOCFLAGS.DI_IN_XML;
tt |= IOLACOM_DOCFLAGS.DI_OUT_XML;

docInfoStr = iolaCOM_.DocInfo((int)tt,"utf-8",ClientString);


Выдал XML

<Signatures>
<Signature>
<Id></Id>
<Version>3</Version>
<SerialNumber>7721ba085bb3e6dcf62116c00e1bce0bbaad25872d56436391fb05df12be199c</SerialNumber>
<Issuer>CN=НУЦ РК (RSA), OU=Инфраструктура открытых ключей, O=Национальный удостоверяющий центр Республики Казахстан, L=Астана, ST=Астана, C=KZ</Issuer>
<Subject>SERIALNUMBER=IIN745896125463, CN=ДЕЙСТВУЮЩИЙ ФИЗИЧЕСКИ ДЕЙСТВУЮЩИЙ, SN=ДЕЙСТВУЮЩИЙ ФИЗИЧЕСКИ, GIVENNAME=ДЕЙСТВУЮЩИЙ, E=DEURK@JHFJOF.KB, C=KZ, ST=АСТАНА, L=АСТАНА</Subject>
<PublicKeyAlgorithm>1.2.840.113549.1.1.1</PublicKeyAlgorithm>
<PublicKey>3082010a0282010100b11dd41f314a904fe4b1bf77b309385ab92d595d8486aeb769f81eac0a86e780e7824ba9bd68fcdecaae699329d5c005f6fcc5157e4f1d09adc41f2182e548a328ddac8ae6215e5ee10a30458de858a0ccafb0654ded7d3b189432ee115c20d49eeb2ba83c49de021bf8364514c747dc9c0e904d84770ca483cd0ad5e441b71b8661d91e64a503c717b32814fd5d8544366a2ab61af174d6580bbd36301515566f65afca7e9c0f523c6f0ee245659b38233ff18d55181f034f6b905584ec009c35040bceae45d221a47626c581cb53ff4bd95e2c985dad879d3b0cf4c18c51ebd1d511e03a96111ee79d5f98547bdae782a75a4f9d92313c3c9c31fd89ac16570203010001</PublicKey>
<NotBefore>21.08.2013 8:55:33</NotBefore>
<NotAfter>21.08.2014 8:55:33</NotAfter>
<SignatureAlgorithm>1.2.840.113549.1.1.5</SignatureAlgorithm>
<CertificateBody>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</CertificateBody>
</Signature>
</Signatures>


Теперь вопрос если

<Subject>SERIALNUMBER=IIN745896125463, CN=ДЕЙСТВУЮЩИЙ ФИЗИЧЕСКИ ДЕЙСТВУЮЩИЙ, SN=ДЕЙСТВУЮЩИЙ ФИЗИЧЕСКИ, GIVENNAME=ДЕЙСТВУЮЩИЙ, E=DEURK@JHFJOF.KB, C=KZ, ST=АСТАНА, L=АСТАНА</Subject>

1.
SERIALNUMBER=IIN745896125463 равен нужному нам ИИН


2.

private bool VerifyCsXmlV1(string KeyId, int OperFlags, string InData)
{
return iolaCOM_.VerifyXML(KeyId, OperFlags, "utf-16", InData);
}
result = VerifyCsXmlV1("", 0, ClientString); выдает нам True


3. В ответном от клиента XML стоит наш документ внутри в поле данных

ЭТО ЗНАЧИТ подпись прошла ?

Re: Как вытащить данные из подписанного XML 5 года, 1 мес. назад #1021

  • Murat Seisenov
  • Модератор
  • Постов: 391
  • Репутация: 19
Да, все верно.
Модератор

Re: Как вытащить данные из подписанного XML 5 года, 1 мес. назад #1022

  • Nigmet
  • Новый участник
  • Постов: 3
  • Репутация: 0
Следующий вопрос допустим Сервер создал документ в одном из форматов PDF, Word, RTF далее клиенту отсылается данный документ для подписи в формате BASE64(для надежности) который подписывается выше описанном способе с помощью XMLsign.


Вопрос в следующем является юридически действительна подпись документа в таком виде ?

то есть например PDF переводиться в Base64 вкладывается в XML и подписывается, то есть документ не лежит в XML в виде PDF.

Re: Как вытащить данные из подписанного XML 5 года, 1 мес. назад #1023

  • ugotbug
  • Завсегдатай
  • Постов: 225
  • Репутация: 14
Добрый день.

Base64 - это всего лишь способ кодирования, представления документа. Если подписанный XML документ содержит PDF документ представленный в Base64, то в случае успешной проверки подписи XML документа, можно считать, что информация, содержащаяся в нем ­достоверная, при этом не важно в каком она виде, если при это имеются механизмы конвертации из одного способа представления в тот, который необходим.

Подпись при использовании ЭЦП НУЦ, считается юридически значимой.
Могущественный обладатель кольца Знаний
  • Страница:
  • 1
  • 2
FaLang translation system by Faboba