МенеджерКриптографии. Как использовать? #767989


#0 by Help1с
Добрый день. Как я понял нельзя в 1с понять файл содержит подпись или нет. Может кто подскажет как должен работать механизм проверки подписанного файла в 1С?
#0 by Help1с
Добрый день. Как я понял нельзя в 1с понять файл содержит подпись или нет. Может кто подскажет как должен работать механизм проверки подписанного файла в 1С?
#0 by Help1с
Добрый день. Как я понял нельзя в 1с понять файл содержит подпись или нет. Может кто подскажет как должен работать механизм проверки подписанного файла в 1С?
#1 by Help1с
Мое видение процесса: 1. Получаем файл от контрагента. 2. В конфигурации должен быть регистр соответствия Сертификатов конкретному Контрагенту. 3. Методом перебора всех сертификатов и проверкой наличия данного сертификата в полученном файле узнаем что это за контрагент. 4. Проверяем действительность сертификата. Пункт 3 не нравится. Пункт 4 не знаю как реализовать.
#2 by Fedor-1971
Для начала ответь на вопрос: каким ПО криптографии собираешься пользоваться? Avest, Copicom или нечто другое. Как определишься - выясняешь методы работы выбранной системы. В идеале, работа с шифрованными данными выглядит так: 1. Получили файл 2. Скормили его системе шифрования, на предмет определения есть подпись или нет 3. Попросили расшифровать, если подпись есть Вполне вероятно, что п.2 и п.3 выполняются за одно действие. Не изобретай велосипед, там где он не нужен. До тебя уже всё сделали и придумали как хранить сертификаты (выпуск, отзыв, обмен, локальное хранилище, обмен с выше стоящим УЦ), как проверять их актуальность, как использовать в шифровании/дешифровании данных и проч.
#3 by Help1с
посмотреть бы этот велосипед. :) про первый вопрос - вообще думал что КриптоПро буду использовать и МенеджерКриптографии.
#4 by Fedor-1971
вот и почитай как работает, где хранит ключи, как получает сертификат, какие функции доступны для программного использования. Как минимум на сайте производителя. На сколько я помню, там целая система замкнутая на носитель контейнера, вроде всё на нём и хранится.
#5 by Help1с
дело в том, что у нас контейнера быть не может. мы же просто получаем подписанный файл.
#6 by Fedor-1971
о на как! Тогда о каких сертификатах идёт речь? "подписанный файл" - по сути проходит двойное шифрование, сначала шифруется область подписи, т.е. с используется шифрование на основе закрытого ключа отправителя (для проверки именно отправителя), потом шифруется всё сообщение твоим открытым ключом. По получении расшифровываем своим закрытым ключом всё сообщение и проверяем подпись используя открытый ключ отправителя. Могу ошибаться в деталях, но общая идеология именно такая. Изучил бы для начала предметную область. А без минимальных знаний в оной вопросы "Как должна работать проверка подписи в 1С" аналогичны "Есть ли жизнь на Марсе?"
#7 by Serginio1
Если, что посмотри
#8 by Гость из Мариуполя
офигеть ты загнул. сходи на сайт bus.gov.ru выбери любое учреждение. перейди в раздел "Подробная информация" открой там "Документы" о чудо! все документы подписаны ЭЦП! ЭЦП можно посмотреть. Документы можно скачать. При этом моего ключа ни открытого, ни закрытого нету и в помине. Нету у меня ключа вообще. А ЭЦП у документов, размещенных на сайте, есть. И я эту ЭЦП вижу. Во, к примеру, первый попавшийся: Открывай "Документы" и любуйся на "Подпись". ситуация точь в точь как в . Так что предметнаяобласть - она тоже.. разная.. И кой-кому тоже бы не помешало ее подучить. :)
#9 by Borteg
шифруется сообщение при передаче от одного пользователя к другому, чтобы при перехвате сообщение не могли открыть, а только конечный получатель своим закрытым ключом. Если они лежат в открытым доступе значит расшифровка уже была произведена, электронную подпись ты тоже видишь, не имея сертификата открытого ключа ты не сможешь проверить подлинность этой электронной подписи, так как не сможешь сформировать хэш документа и сверить его с хэшем в электронной подписи.
#10 by Borteg
+ с первого апреля этого года, проверка хэша в электронной подписи является обязательным условием для юридической значимости документа, если подпись не хранит хэш - документ не имеет силы
#11 by Гость из Мариуполя
Я согласен, что шифруется и т.д. и т.п. Для двухстороннего обмена. Но.. не надо.. смешивать шифрование и подпись. Для признания юридической значимости документ не обязательно шифровать. Котировочные заявки на госзакупках, электронные аукционы, госконтракты по их итогам т.д.и т.п. Я для кого bus.gov.ru привел? могу еще на zakupki.gov.ru отправить. В общем. ситация схожая с - сплошь и рядом. Так что для двухстороннего обмена - одно дело. Можно и шифровать, и обменяться открытыми ключами и т.д. Для документов же, выложенных в публичный доступ, можно использовать, к примеру - там и про хэширование, и крипто.net упомянут а также можно посмотреть, к примеру, вот сюда
#12 by Borteg
если у тебя нету открытого ключа ты не сможешь проверить подлинность подписи.
#13 by Borteg
так же как и подлинность документа
#14 by Help1с
как бы это все в 1с реализовать...
#15 by Serginio1
#16 by Serginio1
#17 by Serginio1
#18 by Help1с
спасибо за ссылки. читаю :)
#19 by Help1с
нашел вот такой код: где лучше хранить подпись? у нас не будет файла. это я про свои пункты 2 и 3 из - не нравится мне такая схема.
#20 by Help1с
Как лучше и как правильно связать подпись с контрагентом? когда мы получаем файл мы не знаем кто его отправил. нужно все имеющиеся подписи проверить? может есть более красивый вариант?
#21 by Help1с
Делаю: МенеджерКриптографии.ПроверитьСертификат(Сертификат); Выходит ошибка: Сертификат не предназначен для указанного использования что это?
#22 by Serginio1
А у тебя Крипто про то стоит?
#23 by Help1с
да.
#24 by Serginio1
Попробуй 7, пока в теме молчание
#25 by Help1с
спасибо. почитаю.
#26 by Help1с
не понятно куда копать, там не то что мне нужно. (
#27 by Garykom
ТСу продавть СП еще не предлагали? СертификатКриптографии.ОткрытыйКлюч (CryptoCertificate.PublicKey) СертификатКриптографии (CryptoCertificate) ОткрытыйКлюч (PublicKey) Использование: Только чтение. Описание: Тип: ДвоичныеДанные. Содержит данные открытого ключа. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
#28 by Serginio1
Что из этого тебе не нужно КриптоПро .NET - программный продукт, позволяющий использовать средство криптографической защиты информации (СКЗИ) КриптоПро CSP на платформе Microsoft .NET Framework. КриптоПро .NET является новой версией существовавшего ранее программного продукта КриптоПро Sharpei и реализует набор интерфейсов для доступа к криптографическим операциям .NET Cryptographic Provider: MAC; генерация ключей и т.д.
#29 by Help1с
сертификаты в системе я вижу. вопрос как прочитать сертификат и подпись в документе ексель.
#30 by Garykom
"Подпись" (ЭП/ЭЦП) это хеш файла (который подписываем) зашифрованный приватным (или открытым) ключем (из пары ключей открытый/приватный) "Проверка подписи" это берется изначальный файл и считается его хеш снова. Затем берется зашифрованный хеш, расшифровывается нужным ключем (вторым к тому которым был зашифрован). И сверяется 2 хеша на совпадение.
#31 by Garykom
+ Если хеш файла был зашифрован приватным ключем контрагента (которого у вас понятно нет он чужой). То проверять подпись нужно открытым ключем контрагента (взять его из сертификата ключа контрагента)
#32 by Help1с
как можно получить изначальный файл?
#33 by Garykom
эээ, вам бы сферу деятельности сменить... точно знаю что дикая нехватка кадров есть в рабочих сферах
#34 by Serginio1
#35 by Garykom
Обычно то что называют "подписанным файлом" это по сути просто зашифрованный изначальный файл (возможно к которому добавили его хеш) и зашифровали приватным ключем. Поэтому если расшифровать открытым ключем то и получится "исходный файл". Смотреть по размеру этого "подписанного" если он всегда одинаковый и не зависит от размера исходного то это только хеш с подписью. Если большой то сам файл исходный внутри.
#36 by tank_25
Какие все умные. Из встроенного языка 1С как получить первичный файл без подписи?
#37 by Garykom
+ И чтобы было понятно то шифрованный файл это когда подписывают открытым ключем получателя. Тогда только зная приватный ключ (получателя) можно расшифровать. Проверки подписи в этом смысле нет потому что открытый ключ получателя много кому известен.
#38 by Garykom
Обратиться к специалистам?
#39 by tank_25
Вот обращаемся. Есть пример хотя бы приблизительный?
#40 by tank_25
+ Вот есть на входе файл с подписью, не зашифрованный.
#41 by Garykom
Платным специалистам
#42 by Help1с
+1 Дано: Файл Эксель подписанный контрагентом. Сертификат контрагента у нас отсутствует. Необходимо: Выполнить проверку действительности подписи, если подпись действительна, то выполняем операции с файлом. Еще нужно по полученному сертификату найти контрагента.
#43 by tank_25
Понятно. Нет бы честно признаться, что средствами встроенного языка это сделать нельзя. Начинаются тут отмазки.
#44 by Help1с
как я понял это можно сделать СОМ объектом, типа КапиКом, но он снят с поддержки, и у меня не получилось.
#45 by Garykom
>Сертификат контрагента у нас отсутствует. У вас нет образца подписи совсем (в переводу на ручную). Что с чем вы собираетесь сверять?
#46 by Garykom
+ смените работу... пока вам ее принудительно не предложили поменять с такими знаниями
#47 by Help1с
для начала нужно из файла получить сертификат. вы знаете как это сделать?
#48 by Garykom
А с какого перепугу там должен он быть?
#49 by MishaD
надеюсь не из файла Excel ?
#50 by Help1с
контрагент подписал файл эксель. нужно получить из этого эксель подпись, из подписи получить сертификат(ы) и проверить его на актуальность.
#51 by Help1с
в том то и дело что из эксель.
#52 by Help1с
+ я так представляю порядок работы.
#53 by Garykom
>контрагент подписал файл эксель. нужно получить из этого эксель подпись, из подписи получить сертификат(ы) и проверить его на актуальность. Если вы сумеете это сделать то нобелевка за вскрытие криптографии вам обеспечена!
#54 by Garykom
+ причем сделать без использования отдельно переданного/полученного сертификата подписи контрагента (с открытым ключом внутри его)
#55 by Garykom
+ хотя насчет нобелевки это я погорячился... просто не доживете... раньше закопают
#56 by Serginio1
#57 by Help1с
в чем проблема? я же визуально из экселя вижу подпись файла, могу провалиться в сертификат, сохранить его как файл. теперь это нужно сделать в 1с, чтобы пользователь не проверял наличие подписи визуально.
#58 by Help1с
это не то. визуально ручками посмотреть подпись можем без проблем. как бы это автоматизировать.
#59 by Garykom
если в сам файл включен сертификат то надо его просто  оттуда вытащить логично же
#60 by Garykom
можно один раз и руками
#61 by Help1с
в этом и вопрос. вы знаете как это сделать из 1с?
#62 by DGorgoN
Шифрование бывает асинхронным, когда для проверки подавленности может быть 1 доступный публичный ключ, а вот для подписания документа уже закрытый.
#63 by Serginio1
МЕТОДИЧЕСКИЕ  РЕКОМЕНДАЦИИ по проверке заявок участников размещения заказов, направляемых заказчикам, уполномоченным органам в форме электронных документов, подписанных ЭЦП, для участия в открытых конкурсах и запросах котировок
#64 by DGorgoN
#65 by Help1с
это не автоматизированная проверка. нужно этот алгоритм автоматизировать :)
#66 by Help1с
это не то. (((
#67 by Garykom
если сертификат включен в подписанный файл то знаю, если не включен то никак 500 руб в час
#68 by Help1с
готов заплатить 500, если это действительно то что нужно.
#69 by Serginio1
Ты хоть читал 63
#70 by Serginio1
Тебе нужно из файла сохранить сертификат
#71 by Garykom
ТЗ?
#72 by Help1с
да. мне нужно чтобы это делало 1с. руками этоделать умеем.
#73 by Help1с
файл подписан сертификатом. из файла получить подпись и сертификат.
#74 by Serginio1
Смотри 7. Там есть примеры в SDK. В 1С не сможешь.
#75 by Serginio1
Вот пример только проверки подписи SOAP
#76 by Garykom
насчет разных типов файлов и видов сертификатов с разными системами эцп в курсе?
#77 by Serginio1
#78 by Help1с
я скину подписанный файл, нужно эту подпись прочитать и получить сертификат. желательно бесплатными средствами. договорились?
#79 by Help1с
спасибо, хорошая ссылка!
#80 by Help1с
как перевести на 1с следующий код: Set oSignedData = CreateObject("CAdESCOM.CadesSignedData") ' Загрузка подписанных данных для проверки. я вот так делаю: выходит ошибка: {Форма.Форма.Форма}: Ошибка при вызове метода контекста (Verify) по причине: Произошла исключительная ситуация (CAdESCOM.CadesSignedData.1): Встречено неверное значение тега ASN1.
#81 by Help1с
подниму
#82 by Help1с
ап
#83 by Help1с
попробую поднять
#84 by Serginio1
Попробуй 24
#85 by Help1с
что такое 24?
#86 by Serginio1
Попробуй 7, пока в теме молчание Использование классов .Net в 1С для новичков Использование классов .Net в 1С для новичков
#87 by Help1с
я так и пытаюсь сейчас сделать. вот это мне нужно как COMОбъект подключить. пока не нашел как.
#88 by Serginio1
Ты статью прочитай. Там все подробно описано
#89 by Serginio1
PackageDigitalSignatureManager=Врап.ПолучитьТипИзСборки("System.IO.Packaging.PackageDigitalSignatureManager","WindowsBase.dll");
#90 by Help1с
ошибка. не создает такой COM объект:
#91 by Help1с
Ошибка при вызове конструктора (COMОбъект)     врап=новый COMОбъект("NetObjectToIDispatch45");     по причине: -2147221005(0x800401F3): Недопустимая строка с указанием класса
#92 by Help1с
в файле из статьи есть компонента NetObjectToIDispatch45?
#93 by Serginio1
В в шапке есть ссыока
#94 by Help1с
спасибо. буду пробовать. кажется накнец-то нашел что нужно :)
#95 by Help1с
COMОбъект создался. как до методов достучаться?
#96 by Help1с
пока не могу понять как с этим объектом работать. как ему передать подписанный файл для проверки
#97 by Garykom
Каким именно объектом? "NetObjectToIDispatch45" просто позволяет классы .net использовать из 1С. Не зная (не изучив) C# и .Net оно чем поможет?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С