|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Привет. Помогите плиз. Я совсем на нуле по знаниям, насчет различных методов хэширования и цифровой подписи. А стоит задача написать прогу, которая сможет подписать файл по заданному сертификату. Но первичная задача - это проверить подпись ! Для этого мне предоставили файл с текстом и файл с цифровой подписью. В системе установлен сертификат, которым создавалась подпись. Имеется файл, который нужно подписать (важна ли кодировка файла ?). Нашел довольно много ссылок в интернете, но не могу заставить их работать. Голова просто кругом идет. Приватный ключ, Публичный ключ... Код: c# 1. 2. 3. 4.
Просто взрыв мозга ! Подскажите пожалуйста, как же нужно ? После двух дней гуглинга, написал такой код, который не работает (ну надо же...): Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
На очереди попытка написать код, с использованием RSAPKCS1SignatureFormatter...Скорее всего тоже ничего не выйдет (сложно собирать ядерный реактор не зная ядерной физики и не имея схем/инструкций). Друзья. Помогите плиз. Наверняка существуют простые функции, которые просто берут набор байтов (или файл на диске), сертификат из хранилища - и на выходе создают подпись (и проверяют ее)... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 15:37 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
РостигайДля этого мне предоставили файл с текстом и файл с цифровой подписью. А вам сообщили, с помощью какого алгоритма была создана ЭЦП? И вы уверены, что сертификат, который у вас в системе, точно подходит для проверки подписи? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 15:52 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Ну и здесь посмотрите: http://www.fryan0911.com/2009/04/c-how-to-sign-and-verify-digital.html ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 16:06 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Arm79, Я видел как эта строка кодируется сторонней утилитой, так, что знаю каким алгоритмом. Использовалось: Криптопровайдер: "Microsoft base Cryptographic Provider v1.0" Алгоритм: "CALG_SHA (322772)" Хранилище сертификатов: "My = Личные". Только не понял, как мне тоже передавать "Microsoft base Cryptographic Provider v1.0". Я вроде тоже использую SHA: Код: c# 1.
ps. В коде выше оказывается опечатка... Там написано Код: c# 1.
Но сейчас заменил на правильную.... Результа все равно false. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 16:08 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Arm79, Извиняюсь. Ваш вопрос поставил меня в тупик. Что означает "вы уверены, что сертификат, который у вас в системе, точно подходит для проверки подписи" ? Разве операция проверки подписи по сертификату не с каждым сертификатом работает ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 16:09 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
РостигайArm79, Извиняюсь. Ваш вопрос поставил меня в тупик. Что означает "вы уверены, что сертификат, который у вас в системе, точно подходит для проверки подписи" ? Разве операция проверки подписи по сертификату не с каждым сертификатом работает ? Разумеется, не с каждым. Всегда есть пара ключ/сертификат (грубо). И сертификат от чужого ключа никак не подойдет. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 16:12 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Arm79, Но ведь я же использую сертификат, которым подписывали. Подписывание производилось на моей машине сторонней утилитиной, сертификатом, который я тоже использую. Код: c# 1.
Я просто под отладчиком в списке его нашел по имени. Над юзабельностью буду думать потом, сейчас нужно чтобы хотя бы основа заработала. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 16:16 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Хорошо, понятно, сертификат тот же. Теперь какой точно алгоритм ЭЦП - SHA? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 16:19 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Arm79, Я тут написал код уже, по приведенной Вами ссылке (спасибо). Столкнулся с проблемой. Подписал хэш и сохранил полученные байты в файл. Выяснилась проблема - файл с подписью, который выдала сторонняя утилита - он размером 1,7 Кб. А моя полученная подпись лишь 20 байт. Сейчас проверю метод, проверяющий подпись по приведенной Вами ссылке. Отвечая на последний вопрос - ну да, SHA, код 322772. Я находил ссылку с кодами шифров, код 322772 - соотвестветствует SHA_1 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 16:25 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Т.е. очевидно, что утилита записывает в файл ЭЦП и зашифрованные данные сразу. Поэтому просто похоже проблематично сравнить, что C# код выдал ту же ЭЦП, что и та утилита... Сейчас Протестирую проверку ЭЦП. Может подтвердит - и то хорошо бы было. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 16:27 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
РостигайА моя полученная подпись лишь 20 байт 20 нереально. у sha-1 длина подписи 160 байт. а 1,7 кб, ну не знаю. Если исходный файл = длина подписанного - (160-260) байт, значит добавлена только подпись. Если размер отличается больше, вероятно, в подпись добавлен еще и проверочный сертификат ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 16:29 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Не вышло. Проверка подписи не прошла: valid = csp.VerifyHash(hash, CryptoConfig.MapNameToOID("SHA1"), signature); Очевидно, потому, что я передаю туда: var signature = File.ReadAllBytes("Test.ecp"); А файл Test.ecp размером 1,7 Кб. Метод VerifyHash скорее всего ожидает только подпись. Как бы отделить подпись от зашифрованного текста из файла ? Либо - какими методами нужно мне пользоваться, чтобы тоже получить склеееный текст с подписью ? Сори, нет знаний по этой теме - а запутатся очень легко в куче разных классов и их методах. Может RSAPKCS1SignatureFormatter как-то поможет ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 16:34 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
РостигайVerifyHashVerifyData ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 16:34 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Arm7920 нереально. у sha-1 длина подписи 160 байт. Код: Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
signedHash - размер массива (и файла на диске, после сохранения) - 128 байт.... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 16:37 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
РостигайArm7920 нереально. у sha-1 длина подписи 160 байт. Код: Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
signedHash - размер массива (и файла на диске, после сохранения) - 128 байт.... Сорри, это я ошибся. Не 160 байт, а 160 бит, то есть 20 байт. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 16:38 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Arm79РостигайVerifyHashVerifyData Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Вот жеж блин :( PS !!! Есть сомнения в сторонней утилите !! Подскажите - есть ли сторонняя известная программа, которая подписывает цифровой подписью ? Я бы ее лучше скачал и ей бы рассчитал подпись... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 16:41 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Моя задача написать библиотечку, которая будет подписывать файлы (ну и проверять подпись). Выдали какую-то левую прогу (тоже самописную !), объявив ее эталоном.... Возможно я зря сверяюсь с ней ! Есть ли публичная программа, с которой можно сверится ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 16:44 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Есть возможность выложить сюда сертификат и подписанный файл? Тестовый какой-нибудь? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 16:45 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Arm79, Спасибо большое ! Я отправил на почту, указанную в Вашем профиле. Просто файл с рабочими данными. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 16:59 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Arm79, Дошло ли письмо ? ) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 17:45 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Да, дошло. Что-то вы ересь какую то гоните, простите уж. Ваш 3.ecp отнюдь не содержит подпись. Там какая то корявая base64 строка, которую стандартный convert.frombase64string не опознал, но онлайн декодер выдал маловразумительное. но в этом маловразумительном были куски текста типа: Created by http://www.fiddler2.com1, mail.google.com, и так далее. Это 100% не подпись. вот код: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 17:51 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Arm79, Я в шоке вообще :) Прога получается вообще не работает. Не понятно, что она вообще вычисляет. Огромное спасибо за код ! Огромное :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 18:02 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Arm79, Тот файл, что я таки выслал - подписан ВЕРНО ! Сам удивлен. Проверил в бесплатной программе "КриптоАРМ" (поставил в триальном варианте полнофункционал). Прога сообщила, что "Подписи математически корректны, но нет полного доверия к одному или нескольким сертификатам подписи" Ну да. Сертификат конечно левый. Но вот подписалось все ок :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 19:09 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Arm79, Блин... КриптоАРМ выругался, что подпись, полученная по Вашему коду: Код: c# 1. 2. 3. 4. 5. 6. 7.
не является подписью.... Сами можете проверить... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 19:21 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Ох и хороша же прожка - КриптоАрм. Тут тебе и удобнейший выбор сертификата, которым подписывать, и ввод какой то доп инфы. Вот, по сути, мне нужно сделать то, что умеет делать она ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 19:29 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Ростигай, Загляни в примеры из SDK Там более чем достаточно... Examples\simple\CMS\cs\SingleSigner.cs ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2014, 01:25 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Arm79, И все же. У Вас подтвержается ? Что, КриптоАРМ (или любой сайт по онлайн-проверке подписи) ругаются на подпись ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 14:28 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
sql2012, Прошу прощения. Там примеры приведенные чисто для КриптоПРО ? Дело в том, что в моем решении не должно быть КриптоПРО. Покупать мы его не планируем, и поэтому решение должно быть завязано чисто на WIN API. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 14:31 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
РостигайArm79, И все же. У Вас подтвержается ? Что, КриптоАРМ (или любой сайт по онлайн-проверке подписи) ругаются на подпись ? А я что, проверял, что ли? :-) Думал, что уже все решено. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 14:39 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Ростигайsql2012, Прошу прощения. Там примеры приведенные чисто для КриптоПРО ? Дело в том, что в моем решении не должно быть КриптоПРО. Покупать мы его не планируем, и поэтому решение должно быть завязано чисто на WIN API. Нет. Код: vbnet 1. 2. 3. 4. 5.
Можете также найти примеры в MSDN по ключевым словам: SignedCms, CmsSigner, SignedCms.ComputeSignature ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 14:46 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Arm79, Спасибо Вам за решение конечно. Просто бесплатная програмулина КриптоАрм (в бесплатном варианте она как раз, вроде позволяет подписывать и проверять подписи) - говорит, что подпись, полученная C# - не подпись. А как раз тот файлик, что я дал - нормальная подпись :) Я сейчас в тупике. Не знаю, что делать... Сам ищу дальше решения в гугле, но пока не нашел. Куча ссылок уже. Может, все же, на форуме уже кто-то делал такое ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 14:47 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
sql2012Можете также найти примеры в MSDN по ключевым словам: SignedCms, CmsSigner, SignedCms.ComputeSignature Большое спасибо. Таких ключевых слов я даже не встречал, и, соответственно, не искал ! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 14:50 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Ростигай, Намекну: есть профильные форумы, по криптографии... с поддержкой и SDK ... Я чисто случайно увидел про ЦП тему из выборки тем за 3 дня. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 14:54 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
РостигайArm79, Спасибо Вам за решение конечно Вообще то это была практически копи-паста из MSDN. Я лично работал с MessagePro, а не .net приблудой в виде RSA Далее, еще раз посмотрел на 3.ecp. Честно, не знаю, как там криптоарм работает, но base64 из указаного файла не читается. Хотя тот же криптоарм подписывает вашим ключом файлы, и файл подписи в base64 отображается прекрасно. Кстати, разобрался, почему видны fiddler и прочее. Просто ключи и сертификат от него.И эти строки добавлены в файл с подписью в качестве незначащего комментария. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 15:02 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
sql2012, Не знаю о каких форумах Вы говорите. Честно. Я к сожалению вообще не в теме, а сделать нужно :( Дайте плиз ссылочку, я погляжу и уже пойму что дальше искать.. Или там вопрос задам - раз специализированный, то наверное легко ответят. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 15:11 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
посмотрите здесь еще: http://msdn.microsoft.com/ru-ru/magazine/cc163454.aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 15:13 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Сделал по совету sql2012. Examples\simple\CMS\cs\SingleSigner.cs Сработало с моим сертификатом отлично ! Причем есть выбор - встраивать подпись в сообщение и делать его отдельно. Скормил подпись КриптоАрм - прошло отлично ! Правда КриптоАрм выругался, что нет доверия к сертифкату - ну это ок, я левый сертификат взял для тестов. Ура ! Сейчас поищу по словам SignedCms, CmsSigner, SignedCms.ComputeSignature, чтобы найти более полные примеры, с различной обработкой ошибок и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 15:26 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Arm79посмотрите здесь еще: http://msdn.microsoft.com/ru-ru/magazine/cc163454.aspx Спасибо за ссылку. Это мне тоже очень нужно ! Т.к. задача стоит не только подписывать, но и сделать более-менее удобный интерфейс со списком сертификатов и прочим... В принципе в криптоАрм хороший интерфейс, нужно будет сделать что-то подобное. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 15:28 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
sql2012Ростигай, http://www.cryptopro.ru/forum2/default.aspx?g=topics&f=14 Я очень сильно сомневаюсь, что там дадут ответ на просьбу "Подскажите код на .net, который подписывает собщения, и проверяет подпись" - ведь их программа ровно этим и занимается... Я скорее ожидаю советов в стиле "КриптоПРо это умеет, покупайте, и вот вам ссылочка на справку, где описано как это сделать с помощью КРиптоПРО". Спасибо за ссылку. По изучаю, вдруг подобный вопрос там уже есть... Просто не лазил раньше, т.к. были сомнения. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 15:41 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Arm79, Я работаю со всеми сертифицированными на текущий момент СКЗИ и по "копипастам" - да, все верно замечено, многое есть в MSDN... "хотя" в файлах из SDK есть указание, что информация из файлов - собственность организации-разработчика (этого SDK). p.s. А что такое ".net" приблуда в виде RSA? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 15:43 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Ростигай, В решаемой задаче - нет привязки к конкретному СКЗИ. За владельца форума не отвечу, но Я предоставляю ссылки на SDK и CDPN для начинающих и не очень в свободное время. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 15:46 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
sql2012А что такое ".net" приблуда в виде RSA? я имею ввиду rsacryptoserviceprovider. какой то он бестолковый, по ощущениям. А из сертифицированных - MessagePro + Verba. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 15:47 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Arm79, rsacryptoserviceprovider ... "не пользуюсь" за ненадобностью... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 15:51 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
sql2012Ростигай, В решаемой задаче - нет привязки к конкретному СКЗИ. За владельца форума не отвечу, но Я предоставляю ссылки на SDK и CDPN для начинающих и не очень в свободное время. Спасибо большое за помощь. прямо таки огромное, за наводку. В общем вот ссылка на доку КпритоПро: http://cpdn.cryptopro.ru/?url=/content/cpnet/html/638e5f29-1235-4f58-a028-eb79bbe02121.htm Там, вроде как, все стандартные/типичные решения приведены. Пока не уверен, но похоже это все, что мне нужно. Грызут, правда, немного сомнения, что подписи, которые по нашему ГОСТу - они могут не сработать на чистых классах C#... Не сталкивались с таким ? Чтобы проверить подписанное сообщение, подписанное ГОСТом. И еще есть вопросы по всяким там Рутокен'ам и прочим USB сертификатам. Подозреваю, что мое решение должно бы и с ними уметь работать (ибо в Росии живем, и приложение должно уметь работать с российскими спецификациями). Пока даже и не знаю на чем застряну дальше :) PS. Нашел интересную ссылку: Delphi CryptoApi. Как реализовать шифрование по ГОСТу? Сказанно, что имеется некий бесплатный КриптоПровайдер, обеспечивающий работу с ГОСТ подписью. Не знаю правда или нет. Но нужно еще узнать как с ним работать - получится ли, с использованием стандартных .NET классов SignedCms, CmsSigner, или нужно использовать библиотеки этого КриптоПровайдера - что потребует его обязательно установки (неудобно же!). Кто нибудь знает про это ? Не может же быть, что для работы с ГОСТовской подписью обязательно покупать какой-то программный продукт. Ну монопольщиной на гос-уровне же попахивает. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 16:14 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
sql2012Arm79, rsacryptoserviceprovider ... "не пользуюсь" за ненадобностью... Т.е. получается работать с ГОСТ подписями и рутокенами вообще без сторонних продуктов ? Т.е. это реально ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 16:16 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
sql2012, Так я же дал ссылку именно на них же :) Нужен ли он, чтобы работать с сообщениями, подписанными всякими там ГОСТ сертификатами (я не спец, поэтому просто фантазирую) ? Просто та тема, что я указал, вызвала сомнение, что ГОСТ подписи будут корректно расшифровыватся... И до кучи, всяческие рутокены. Мне просто интересно, возможно ли работать с использованием только классов .NET, или нужно устанавливать другое программное обеспечение (явно это будет ВипНет, раз он бесплатен :) ) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 16:46 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Ростигайполучается работать с ГОСТ подписями и рутокенами вообще без сторонних продуктов ? Т.е. это реально ? без установленных в системе продуктов? нет, конечно, откуда мелкомягкие знают про госты ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 16:54 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Подскажите пожалуйста. Еще один тупик. У меня имеется подписанное сообщение, сделанное сторонней програмкой (самописная на Дельфи). 1. КриптоАрм говорит, что сообщение подписано ок. 2. Но мой наивный код, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
при попытке декодировать, вылетает исключение "ASN1 bad tag value met" 3. Гуглинг вывел меня на интересную прожку ASN.1 Editor http://www.codeproject.com/Articles/4910/ASN-Editor Но при попытке открыть в нем зашифрованное сторонней прогой сообщение - ничего не проихсодит. Тупо отображается текст и все... Т.е. похоже, что прога не смогла его распознать. 4. Сертификат использовался один и тот же, при подписывании и при попытке распарсить. Собственно сейчас я в глубокой думе.... Почему КриптоАрм спокойно проверил подписанный файл, но ни C# классы, ни сторонний редактор не могут распознать формат. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 17:36 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Чудеса в общем. Это не Base64, хотя выглядит очень очень похоже. Однако при вызове System.Convert.FromBase64String(decryptedString) вылетела ошибка, что "Входные данные не являются действительной строкой Base-64, поскольку содержат символ в кодировке, отличной от Base 64, больше двух символов заполнения или непробельный символ наряду с символами заполнения." Что же это такое может быть ? Чты выглядит как Base64, но не является им, и что КриптоАрм спокойно расшифровывает как корректно подписанное сообщение? (слово из 5 букв Хотя может и из 6-10, хз) Вот бы найти програмулину, которая по подписи - все о ней расскажет. Что за формат, что за алгоритм и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 19:18 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Ростигай, Где файл с ЭП? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 19:28 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Ростигай 3. Гуглинг вывел меня на интересную прожку ASN.1 Editor http://www.codeproject.com/Articles/4910/ASN-Editor Но при попытке открыть в нем зашифрованное сторонней прогой сообщение - ничего не проихсодит. Тупо отображается текст и все... Т.е. похоже, что прога не смогла его распознать. . Так зашифрованное или подписанное? Если первое - не покажет "исходные данные", если второе - покажет подписанные данные, если ЭП присоединенная. В случае же с отсоединенной ЭП - будет только информация по алгоритмам\сертификатам\атрибутам ЭП. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 19:34 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
sql2012, Файл считывается в проге. Разрешите я Вам его вышлю на почту. Просто глянете на нее, может Вам опытным взглядом виднее будет. Или скиньте почту мне на bnr3j4afhsbdfg23@yandex.ru (моя одноразовая почта от спамеров :) ) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 19:34 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
sql2012Так зашифрованное или подписанное? Если первое - не покажет "исходные данные", если второе - покажет подписанные данные, если ЭП присоединенная. В случае же с отсоединенной ЭП - будет только информация по алгоритмам\сертификатам\атрибутам ЭП. Файл с присоединенной подписью. КриптоАрм подпись проверил и сказал, что она ок - но сертификату не доверяет. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 19:35 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Там просто в файле рабочие данные - дали файл для тренировок. Не могу на форум выложить... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 19:39 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Ростигай, Я написал на указанный email. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 19:41 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
sql2012, Да, увидел :)) Спасибо ) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 19:48 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Вот, что дословно говорит КриптоАрм: "Подписи математически корректны, но нет полного доверия к одному или нескольким сертификатам подписи." Текст ошибки, мягко говоря не понятен. Не факт, что КриптоАрм подтверждает, что подпись верна... Толи он ее все таки проверил, толи "нет доверия и я не буду марать руки об этот сертификат"... Подпись может быть не верной. Она сделана самописной утилитой год назад, написанной в стенах компании, но никогда не использовавшейся. Утилита использует стандартные WInApi функции. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 19:53 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Ростигай, 1. Жду письмо с архивом 2. Давно бы уже установил корневой сертификат в доверенные корневые + CRL в промежуточные, если есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 19:55 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Ростигай, "Подписи математически корректны" - это и есть: Подпись верная, данные после подписания не изменялись. А далее, дело "доверия к цепочке сертификации". ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 19:57 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
sql2012Ростигай, 1. Жду письмо с архивом 2. Давно бы уже установил корневой сертификат в доверенные корневые + CRL в промежуточные, если есть. 1. Выслал. Извините, не приложил архив. 2. Поток слов - для меня темный лес вообще :D Буду читать и разбираться как это делать. Я вообще к крипто-технологиям вот буквально в четверг в первые прикоснулся :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 19:58 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Ростигай, realSign.result - корректная, присоединенная ЭП. Извлеченные данные записаны в файл - размером 1 283 байт = совпадает с 3.FLD (и по хешу) 3.ecp - корректная, присоединенная ЭП. Извлеченные данные: 20 байт, в текстовом виде: N¬кўB1Яљџыц„уА`В ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 20:08 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
sql2012, Но как Вам удалось проверить подпись из файла "3.ecp" ? :) Я использовал код: Код: c# 1. 2. 3.
И второй метод вылетает ! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 20:15 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Вообще, меня радует, что realSign.result - корректная, присоединенная ЭП. Извлеченные данные записаны в файл - размером 1 283 байт = совпадает с 3.FLD (и по хешу) Глобально - мне это и нужно... Подписывать сообщения. Я подписал, а вы проверили подпись и извлекли данные... Это классно ) Меня смущает, что не удается извлечь из 3.ecp.... Просто в программу же может прийти подпись в таком формате. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 20:17 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Ростигайsql2012, Но как Вам удалось проверить подпись из файла "3.ecp" ? :) Я использовал код: Код: c# 1. 2. 3.
И второй метод вылетает ! Так декодировать же нужно из base64 предварительно. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 20:17 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
sql2012, Код: c# 1. 2. 3. 4.
Какие только кодировки не перебирал, но на строчке FromBase64String вылетает ошибка "Входные данные не являются действительной строкой Base-64, поскольку содержат символ в кодировке, отличной от Base 64, больше двух символов заполнения или непробельный символ наряду с символами заполнения." Что я не так сделал ? Пробовал кодировки Unicode, UTF8, ANSI, win-1252..... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 20:31 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Спасибо Вам за помощь. Завтра буду дальше думать.... Идиотизм конечно выходит, не могу уже строчку перекодировть :( ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 20:32 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Ростигай Меня смущает, что не удается извлечь из 3.ecp.... Просто в программу же может прийти подпись в таком формате. Как это не удается? Там все нормально извлекается и проверяется. Да, с поправкой, данные - "мусор" (hex: 4E1DAC7FEAA242173111DF9A9FFBF684F3C060C2), а не ожидаемый ini-файл (это, кстати, видно и по размерам файлов) Подпись под этими данными - корректная. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 21:03 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Ростигай Какие только кодировки не перебирал, но на строчке FromBase64String вылетает ошибка "Входные данные не являются действительной строкой Base-64, поскольку содержат символ в кодировке, отличной от Base 64, больше двух символов заполнения или непробельный символ наряду с символами заполнения." Что я не так сделал ? Пробовал кодировки Unicode, UTF8, ANSI, win-1252..... Windows-1251, ANSI. Декодированный из base64 файл отправил на почту. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 21:25 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Спасибо большое за помощь. Но откройте тайну. Как вам удалось декодировать этот base64 ? Я пробовал двумя вариантами: Код: c# 1. 2.
Код: c# 1. 2. 3.
В обоих случаях, на вызове метода FromBase64String вылетает ошибка "Входные данные не являются действительной строкой Base-64, поскольку содержат символ в кодировке, отличной от Base 64, больше двух символов заполнения или непробельный символ наряду с символами заполнения." Подскажите пожалуйтста: 1. Как программно можно выяснить тип кодировки (вот, что тут win-1252). 2. И как же, все таки, правильно декодировать ? Где моя ошибка ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2014, 13:40 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
13.10.2014 21:31, Ростигай пишет: > Что я не так сделал ? Полез в задачу, которая находится далеко за пределами твоих возможностей. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2014, 15:00 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Dim2000, Ее на меня скинули :) Больше не кому :) Скажите лучше - почему просто энкодинг не проходит ) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2014, 15:04 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
РостигайСкажите лучше - почему просто энкодинг не проходит ) потому что последний символ в файле имеет код 0. Убери его, и base64 распарсится ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2014, 15:37 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Arm79, Спасибо ! Помогло. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2014, 15:46 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Друзья, спасибо большое. Все прошло хорошо !!! В итоге удалось подписывать файлы с помощью Рутокен по ГОСТ. Спасибо ! Интересует такой вопросик (просто ради интереса). Судя по всему, ViPNet CSP является бесплатным полным аналогом КриптоПРО (в плане подписывания ЭЦП). Я правильно это понимаю ? Думаю, ViPNet CSP можно рекомендовать клиентам, чтобы они могли сэкономить свои деньги. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2014, 18:02 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
Ростигай, Все верно, уже 5 год как предоставляется бесплатно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2014, 21:31 |
|
Цифровая подпись. Хнык хнык :(
|
|||
---|---|---|---|
#18+
sql2012, Круто ) У нас то есть купленный КриптоПро, а вот клиентам можно будет рекомендовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2014, 14:53 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1402348]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
98ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 193ms |
0 / 0 |