Подписание XML и дальнейшая проверка
(0 чел.) 
  • Страница:
  • 1
  • 2
  • 3

ТЕМА: Подписание XML и дальнейшая проверка

Re: Подписание XML и дальнейшая проверка 3 года назад #2447

  • Murat Seisenov
  • Модератор
  • Постов: 391
  • Репутация: 19
При подписании xml приводится к каноническому виду. Вам надо канонизировать вашу вторую xml.
Это Вы можете сделать с помощью сторонних библиотек.
Вопрос: А для чего Вам сравнивать именно хэши? Если Вам необходимо просто узнать изменились ли поля на вэб-форме, то для этого, наверно. есть другие более простые способы.
Модератор

Re: Подписание XML и дальнейшая проверка 3 года назад #2448

  • Andrey
  • Осваиваюсь на форуме
  • Постов: 20
  • Репутация: 0
Murat Seisenov написал:
При подписании xml приводится к каноническому виду. Вам надо канонизировать вашу вторую xml.
Это Вы можете сделать с помощью сторонних библиотек.

Тоже думал про это. Попробую найти.
Murat Seisenov написал:
Вопрос: А для чего Вам сравнивать именно хэши? Если Вам необходимо просто узнать изменились ли поля на вэб-форме, то для этого, наверно. есть другие более простые способы.

Первое что пришло в голову. Мне обязательно надо подписывать данные ЭЦП. В таком случае, подскажи как лучше сделать.

Re: Подписание XML и дальнейшая проверка 3 года назад #2460

  • Andrey
  • Осваиваюсь на форуме
  • Постов: 20
  • Репутация: 0
Попробовал канонизировать xml при помощи сервиса(надеюсь тут тот же механизм). Для начала убрал все переводы строки и лишние символы в исходном xml:
<?xml version='1.0' encoding='utf-8'?><root><last_name>admin</last_name><first_name>admin2</first_name></root>

Потом канонизировал при помощи сервиса:
<root><last_name>admin</last_name><first_name>admin2</first_name></root>

Затем, подписал при помощи вашей тестовой странички:
<?xml version="1.0" encoding="utf-8" standalone="no"?><root><last_name>admin</last_name><first_name>admin2</first_name><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gost34310-gost34311"/>
<ds:Reference URI="">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<ds:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gost34311"/>
<ds:DigestValue>ZYffHE1u7regSQJ14cOLuu88Iro6GQNzK8j6ubmVyLg=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
sX1nz9HXMcw38AqPYUyYK+URNEhoqdXPTEX8uNgE4sl7BI8+yTOqcZ4TjRwpwKTdb+aOC6XwS6o4
LhxBJvbfCA==
</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
MIIEnTCCBEegAwIBAgIUYaPUdrsOgTr4tXZneSlJ3d6Gf8owDQYJKoMOAwoBAQECBQAwgc8xCzAJ
BgNVBAYTAktaMRUwEwYDVQQHDAzQkNCh0KLQkNCd0JAxFTATBgNVBAgMDNCQ0KHQotCQ0J3QkDFM
MEoGA1UECgxD0KDQnNCaIMKr0JzQldCc0JvQldCa0JXQotCi0IbQmiDQotCV0KXQndCY0JrQkNCb
0KvSmiDSmtCr0JfQnNCV0KLCuzFEMEIGA1UEAww70rDQm9Ci0KLQq9KaINCa0KPTmNCb0JDQndCU
0KvQoNCj0KjQqyDQntCg0KLQkNCb0KvSmiAoR09TVCkwHhcNMTUxMjIyMDgzOTA1WhcNMTYxMjIx
MDgzOTA1WjCB2zEeMBwGA1UEAwwV0KLQldCh0KLQntCSINCi0JXQodCiMRUwEwYDVQQEDAzQotCV
0KHQotCe0JIxGDAWBgNVBAUTD0lJTjEyMzQ1Njc4OTAxMTELMAkGA1UEBhMCS1oxFTATBgNVBAcM
DNCQ0KHQotCQ0J3QkDEVMBMGA1UECAwM0JDQodCi0JDQndCQMRgwFgYDVQQKDA/QkNCeICLQotCV
0KHQoiIxGDAWBgNVBAsMD0JJTjEyMzQ1Njc4OTAyMTEZMBcGA1UEKgwQ0KLQldCh0KLQntCS0JjQ
pzBsMCUGCSqDDgMKAQEBATAYBgoqgw4DCgEBAQEBBgoqgw4DCgEDAQEAA0MABEDqkHMfO3LOeVRE
Zj4/qzkq+IQ4GY1gkWb8WYb6f6q9JVIxII+2UR7wAk9pamqHdomzLMy+F36y0zan1ygoXlQ/o4IB
2zCCAdcwDgYDVR0PAQH/BAQDAgbAMCgGA1UdJQQhMB8GCCsGAQUFBwMEBggqgw4DAwQBAgYJKoMO
AwMEAQIBMA8GA1UdIwQIMAaABFW1tK4wHQYDVR0OBBYEFMAltOD4scJt4eOB13cfX41Ae6drMF4G
A1UdIARXMFUwUwYHKoMOAwMCAjBIMCEGCCsGAQUFBwIBFhVodHRwOi8vcGtpLmdvdi5rei9jcHMw
IwYIKwYBBQUHAgIwFwwVaHR0cDovL3BraS5nb3Yua3ovY3BzMFAGA1UdHwRJMEcwRaBDoEGGHmh0
dHA6Ly9jcmwucGtpLmdvdi5rei9nb3N0LmNybIYfaHR0cDovL2NybDEucGtpLmdvdi5rei9nb3N0
LmNybDBUBgNVHS4ETTBLMEmgR6BFhiBodHRwOi8vY3JsLnBraS5nb3Yua3ovZF9nb3N0LmNybIYh
aHR0cDovL2NybDEucGtpLmdvdi5rei9kX2dvc3QuY3JsMGMGCCsGAQUFBwEBBFcwVTAvBggrBgEF
BQcwAoYjaHR0cDovL3BraS5nb3Yua3ovY2VydC9wa2lfZ29zdC5jZXIwIgYIKwYBBQUHMAGGFmh0
dHA6Ly9vY3NwLnBraS5nb3Yua3owDQYJKoMOAwoBAQECBQADQQB1QhmJ0beLzTf1H9Xl1h/QSRDg
BUxzoeqySxLqXDHMynfAEBcEBdsigLOmacpsW/MjLRwh6avmiP/yVUVA2Ofg
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</ds:Signature></root>


Попробовал получить hash от канонизированной строки по GOST:
6587df1c4d6eeeb7a0490275e1c38bbaef3c22ba3a1903732bc8fab9b995c8b8


В base64 это:
NjU4N2RmMWM0ZDZlZWViN2EwNDkwMjc1ZTFjMzhiYmFlZjNjMjJiYTNhMTkwMzczMmJjOGZhYjliOTk1YzhiOA==


В общем, не сходится хеш. Что не так?

P.S. А какой вариант вы имели ввиду, кроме xml?
Изменено: 3 года назад от Andrey.

Re: Подписание XML и дальнейшая проверка 3 года назад #2461

  • Andrey
  • Осваиваюсь на форуме
  • Постов: 20
  • Репутация: 0
Ребят, подскажте... Не знаю куда копать

Re: Подписание XML и дальнейшая проверка 3 года назад #2462

  • Murat Seisenov
  • Модератор
  • Постов: 391
  • Репутация: 19
Перед подписанием не надо канонизировать. Надо канонизировать только второй раз при получении значения хэша.
А вообще, зачем Вам проверять по хэшу? Ведь можно просто сравнить значения полей вэб формы с сохраненными.
Модератор

Re: Подписание XML и дальнейшая проверка 3 года назад #2463

  • Andrey
  • Осваиваюсь на форуме
  • Постов: 20
  • Репутация: 0
Я подписываю чистый, не канонизированный xml. Канонизированный только для получения хеша. По поводу полей, мне надо быть увереным что поля в базе(и следовательно и на форме) остались теми же, когда их подписали. Что никто их не изменил с момента подписи. На web можно просто убрать кнопки и выставить блокировки, но есть еще БД, надо быть уверен что и там никто ничего не поменяет без последствий. Такое вот требование.

PS Вопрос по хешу всё еще открытый(
  • Страница:
  • 1
  • 2
  • 3
FaLang translation system by Faboba