Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 819
1

Проверить электронную подпись в письме

15.04.2021, 10:33. Показов 2701. Ответов 22
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Появилась задача проверить ЭЦП в письме. С одной стороны в инете куча теоретической инфы по шифрованию и использованию ЭЦП. С другой мне пока так и не понятен конкретный механизм проверки ЭЦП. Тем более что пишут мол можно самому создать ЭЦП.
Вот предположим я решил создать свою ЭЦП, подписать ею документ, отправить по почте и проверить письмо. Можно, конечно, в банке (или любом другом удостоверяющем центре) заказать реальную ЭЦП и все остальное проделать с ней. Но все равно остается вопрос как это сделать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.04.2021, 10:33
Ответы с готовыми решениями:

Подпись в письме
Кодом создаю Письмо: Dim dbMail As New NotesDatabase( "", "" ) Call dbMail.OpenMail() Set...

Html подпись в письме
Добрый день, нам сделали подпись, при использовании в Mozilla thunderbird следующая проблема - если...

Как поставить в документе электронную подпись?
как поставить в документе электронную подпись, т.е. что бы при выводе документа на печать, на нем...

Inotes. Как Сделать Подпись В Письме Из Html Файла?
Добрый день! Есть сервер Domino 8.5.3FP2 на Linux. Клиент 8.5.3, почтовая база восмерочная....

22
168 / 124 / 42
Регистрация: 25.10.2019
Сообщений: 476
15.04.2021, 12:46 2
Цитата Сообщение от DyadyaGe Посмотреть сообщение
Появилась задача проверить ЭЦП в письме
Никак.

Этим занимается криптопровайдер, поэтому проверка должна быть либо на сервере, либо локально после получения файла.
Либо после получения файла в письме на сервере. Но во всех случаях для проверки потребуется криптопровайдер.

Если нужна проверка на корректность, то можно воспользоваться библиотеками крипто-про https://cpdn.cryptopro.ru/

При проверке на соответствие необходимо иметь корректный сертификат пользователя у себя.

При локальной и ручной проверке, достаточно иметь криптопровайдер(рекомендую крипто-про)
1
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 819
15.04.2021, 13:18  [ТС] 3
Цитата Сообщение от websyst_ru Посмотреть сообщение
Этим занимается криптопровайдер
Тоесть та организация, которая выдала ЭЦП? Например сертифицированный банк?
Цитата Сообщение от websyst_ru Посмотреть сообщение
Если нужна проверка на корректность
Не совсем понятно чем отличается проверка на корректность от проверки подлинности письма с ЭЦП.
Цитата Сообщение от websyst_ru Посмотреть сообщение
При проверке на соответствие необходимо иметь корректный сертификат пользователя у себя
Запутался в этих сертификатах. Выдала мне организация ЭЦП. Лежит он у меня на флешке. Как его прикрепить к письму и как человек проверит письмо, что это я подписал? Где тут сертификат?
Вы уж простите за глупые вопросы. Пощупать бы все руками )))
И ещё, говорят, что подобный модуль делается не на php, а на js. Это так?

Добавлено через 3 минуты
Цитата Сообщение от websyst_ru Посмотреть сообщение
то можно воспользоваться библиотеками крипто-про https://cpdn.cryptopro.ru/
Хотя вот по вашей ссылке прочитал про использование с PHP, но что-то сходу не разобрался. Но вопрос с js снимается
0
168 / 124 / 42
Регистрация: 25.10.2019
Сообщений: 476
15.04.2021, 13:38 4
Цитата Сообщение от DyadyaGe Посмотреть сообщение
Тоесть та организация, которая выдала ЭЦП? Например сертифицированный банк?
Нет, криптопровайдет - это средство для работы с ЭЦП (программа на ПК)
Лучшей для себя считаю программму КРИПТО-ПРО. cryptopro.ru (имхо)

Цитата Сообщение от DyadyaGe Посмотреть сообщение
Не совсем понятно чем отличается проверка на корректность от проверки подлинности письма с ЭЦП.
ЭЦП может быть просроченной, отозванной, заблокированной, но оригинальной.
ЭЦП Может быть не отозванной, не заблокированной, не просроченной, но несоответствующей ключам контейнера.

Цитата Сообщение от DyadyaGe Посмотреть сообщение
Выдала мне организация ЭЦП. Лежит он у меня на флешке.Где тут сертификат?
По идее должен быть на той же флешке, или в отдельном письме от центра. обычно в расширении cer, которое открывается на компе по умолчанию.Остальное - это закрытые ключи, которые не просматриваются.
Если это не обычная флешка, а непосредственно закрытая usb ЭЦП, то вытащить и посмотреть можно только с помощью криптопровайдера (крипто-про, vip-net)

Если прям совсем ничего не понятно, то обратитесь в центр, они делают настройку и проводят консультацию бесплатно.


Цитата Сообщение от DyadyaGe Посмотреть сообщение
И ещё, говорят, что подобный модуль делается не на php, а на js. Это так?
Взаимодействие можно сделать на любом языке.

Цитата Сообщение от DyadyaGe Посмотреть сообщение
Хотя вот по вашей ссылке прочитал про использование с PHP, но что-то сходу не разобрался. Но вопрос с js снимается
Я сомневаюсь, что это, то , что вам нужно... Вероятно вы вообще пошли не в ту степь.
Ведь.

Цитата Сообщение от DyadyaGe Посмотреть сообщение
Как его прикрепить к письму и как человек проверит письмо, что это я подписал?
Т.е. вам тупо нужно подписать и отправить файл. Это локальный файл для личного использования.

алгоритм такой.

1. Устанавливаете криптопровайдер(программу)
2. Импортируете собственный сертификат (с помощью этой же программы или просто нажав на сертификат)
3. Импортируете сертификаты центра сертификации,/цепочку сертификатов. (этого может не потребоваться, смотря что за центр)
4. Подписываете файл (прям внутри этой программы, если новая версия, если старая то доп.средствами)
5. Отправляете адресату. Где он может проверить ЭЦП, имея программу-криптопровайдер у себя тоже.


Но в зависимости от файла может потребоваться прикрепить файл эцп к файлу.(сертификат, в формате .sig
Это то, о чем я говорил перед этим. Проверить оригинальность можно только путём сравнения её с сертификатом пользователя. (на старый версиях), в новых эцп либо вшивается в файл либо формируется автоматом.

В некоторых случаях этого не требуется.Например, если это Word,excel и т.д.
то проверку ЭЦП можно посмотреть прям в программе, без дополнительных. PDF тоже это умеет.
Проверить электронную подпись в письме


Но в большинстве случаев по доп файлу.

В php и организация взаимодействия - это не ваш случай.
1
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 819
15.04.2021, 14:37  [ТС] 5
Цитата Сообщение от websyst_ru Посмотреть сообщение
В php и организация взаимодействия - это не ваш случай
Хорошо, а если такая ситуация. На сайте делается запрос на обработку персональных данных. Человеку приходит письмо с таким запросом или прям на сайте такая страница загружается с текстом соглашения на обработку данных. И такое письмо нужно подписать ЭЦП. Как тогда поступить?
0
168 / 124 / 42
Регистрация: 25.10.2019
Сообщений: 476
15.04.2021, 15:03 6
Цитата Сообщение от DyadyaGe Посмотреть сообщение
Хорошо, а если такая ситуация. На сайте делается запрос на обработку персональных данных. Человеку приходит письмо с таким запросом или прям на сайте такая страница загружается с текстом соглашения на обработку данных. И такое письмо нужно подписать ЭЦП. Как тогда поступить?
Если класс защищенности персональных данных не выше 4го-3го (К3), то вообще ничего не нужно.
Соглашение на обработку - это публичная оферта. Его подписывать не нужно.

ЭЦП в письме имеет только функцию подписи. Если требуется прям заверить письмо. То тогда - да. Вероятно, нужно взаимодейтствовать как клиент-сервер.

Вариант с проверкой чужой ЭЦП на ПК третьей стороны - плохая идея.т.к. это распространение персональных данных. Это как минимум требует согласия каждого владельца ЭЦП. В этом случае соглашение в варианте публичной оферты невозможно. Т.к.любой пользователь в любой момент может сказать "я не разрешал", его подписи нет, а правонарушение есть.

Я вижу только 2 варианта.

1. Формировать документ (письмо/содержимое письма) в виде файла и подписывать его на сервере, либо возвращать (загружать) на сервер от пользователя обратно, после того. как он подпишет у себя на пк. (технически самый простой вариант) но пользователи задолбят вопросами что как где и куда. Если их много и они меняются, то этот вариант отпадает.

2. Организовывать подписание непосредственно на сервере. И, желательно, непосредственно в файле для пользователя. В противном случае вам придётся брать ответственность за каждое письмо. Это будет тоже самое, что вы просто будете говорить "письмо норм, верьте нам". При любом подозрении на подделку и мошенничество - виноватыми останетесь вы.

Подписание документа должно включать в себя отправку как минимум открытого ключа(сертификат открытого ключа) пользователя на сервер с его сохранением, чтобы всегда можно было доказать соответствие ключа подписи, что вы не замешаны подделке. Что этот ключ принадлежит именно пользователю и он настоящий.

В большинстве случаев закон требует и логирование всех операций с документами и ЭЦП.
Погуглите для своей области. не могу знать.

вообще
Не до конца понятно. Если вы хотите подписывать соглашение о персональных данных на публичном зайте, область работы которого не регламентируется особыми правилами или законами, то ничего не нужно. просто галочки хватит. в этом случае на вас ответственность только за утечку или незаконное распространение данных.
1
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 819
15.04.2021, 17:53  [ТС] 7
Цитата Сообщение от websyst_ru Посмотреть сообщение
Если вы хотите подписывать соглашение о персональных данных на публичном зайте
Сайт может и публичный, в том плане, что видят все. Но вот инфа для зарегистрированных пользователей как бы конфиденциальная. Зарегистрированным пользователям нужно ввести свои паспортные данные и ещё кое-какую инфу. Администрация сайта будет с этими данными чего-то делать. И благодаря ей получать дополнительную инфу. Часть этой инфы зарегистрированные люди будут видеть на этом сайте. На что они тоже дают согласие. Потому на мой взгляд и нужна ЭЦП.
Цитата Сообщение от websyst_ru Посмотреть сообщение
Если их много и они меняются, то этот вариант отпадает
Пользователей не много, и они сильно не меняются. Разве что в начале все скопом могут попробовать все это сделать. А потом редкие изменения.
0
168 / 124 / 42
Регистрация: 25.10.2019
Сообщений: 476
15.04.2021, 18:29 8
Цитата Сообщение от DyadyaGe Посмотреть сообщение
Потому на мой взгляд и нужна ЭЦП
эцп в этом случае не обязательна. Это стандартная публичная оферта стандартного порядка правил персональных данных.
Класс этих данных ничего особого не требует. Если говорить совсем коротко и сжато, то от вас требуется лишь их безопасное сохранение и не выходить за рамки описанного согласия. + Не размещать и желательно даже не хранить их на серверах за пределами страны. Иначе к вам возрастут требования.


Для контраста:
Госуслуги - публичная оферта(физ)
Банк(тиньков) - публичная оферта (на момент регистрации и подачи документов)
Федресурс - публичная оферта
Яндекс(деньги) - публичная оферта
Webmoney - публичная оферта
и т.д.

Во все эти сервисы предоставляются паспортные данные, фио, адреса, телефоны, email'ы. И всё ограничивается лишь галочкой согласия.
Это всё происходит без ЭЦП. Отсюда резонный вопрос: ваша организация серьёзней,чем они? )


Не говорю что внедрить ЭЦП это плохая идея. Но зачем?

В любом случае ссылку уже отдал, оттуда и начинайте работу, если приспичило.
А еще, если вы ознакомитесь с законом о персональных данных, то получите все ответы, которые у вас могут возникнуть
http://www.consultant.ru/docum... LAW_61801/
В том числе, попадает ли ваша деятельность в категорию, где нужна эцп.
1
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 819
15.04.2021, 20:38  [ТС] 9
Цитата Сообщение от websyst_ru Посмотреть сообщение
А еще, если вы ознакомитесь с законом о персональных данных, то получите все ответы, которые у вас могут возникнуть
Я с Украины ))) закон слегка отличается ))) + не все озвучил
Цитата Сообщение от websyst_ru Посмотреть сообщение
Не говорю что внедрить ЭЦП это плохая идея. Но зачем?
Приспичило ))) Даже не моя идея, или не совсем моя, а скажем нарвался по учебе )))
Тут ещё проблема в том, что ПО по вашей ссылке для линуксов. Я начал разрабатывать на винде с помощью докера и связанной убунты. То ещё удовольствие с созданием контейнеров (пока полностью не разобрался). Хотя когда получается, то результат мне нравится, удобно.

В отношении рекомендованого вами ПО. Я правильно понимаю, что оно может работать со всеми ЭЦП из РФ плюс создавать свои ЭЦП?
0
168 / 124 / 42
Регистрация: 25.10.2019
Сообщений: 476
15.04.2021, 21:42 10
Цитата Сообщение от DyadyaGe Посмотреть сообщение
закон слегка отличается
тогда руководтствуйтесь законом своей страны. По нему я вам не подскажу. но суть та же

Цитата Сообщение от DyadyaGe Посмотреть сообщение
О по вашей ссылке для линуксов
вообще ничего подобного
Оно многоплатформенное. +есть ещё одно "VipNet" зовётся на счёт "ваших" аналогов не в курсе.

Цитата Сообщение от DyadyaGe Посмотреть сообщение
Я правильно понимаю, что оно может работать со всеми ЭЦП из РФ плюс создавать свои ЭЦП
правильно

есть серверная часть программы. которая как раз для всех этих целей.
1
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 819
15.04.2021, 21:58  [ТС] 11
Цитата Сообщение от websyst_ru Посмотреть сообщение
По нему я вам не подскажу. но суть та же
Это я понимаю )) Отличия есть, но в данной ситуации у меня просто такая задача, которая от меня особо не зависит. Учеба )))
Цитата Сообщение от websyst_ru Посмотреть сообщение
на счёт "ваших" аналогов не в курсе
Уже начал читать про украинские криптопровайдеры. Какой-то выбор есть. Но по ним почти нет инфы и инструкций. Разве что как зайти в личный кабинет и получить ЭЦП )
Интересно, насколько совместимо наше и ваше ПО? ))) Надо таки либо помирить докер с виртуалкой, либо собрать комп под какую-нибудь убунту/дебиан, потому что даже не представляю пока как её в докере запустить.
0
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 819
17.04.2021, 15:28  [ТС] 12
Цитата Сообщение от websyst_ru Посмотреть сообщение
на счёт "ваших" аналогов не в курсе
А что скажите про OpenSSL и GPG? Их для этой цели тоже ведь похоже можно использовать?
0
168 / 124 / 42
Регистрация: 25.10.2019
Сообщений: 476
18.04.2021, 13:36 13
Цитата Сообщение от DyadyaGe Посмотреть сообщение
А что скажите про OpenSSL и GPG? Их для этой цели тоже ведь похоже можно использовать?
Ну это немного другая технология. использовать-то можно.

В этом случае вы заверяете только подлинность информации, пришедшей от пользователя.
А в первом случае вы заверяете согласие пользователя на "информацию".
0
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 819
18.04.2021, 15:55  [ТС] 14
Цитата Сообщение от websyst_ru Посмотреть сообщение
В этом случае вы заверяете только подлинность информации, пришедшей от пользователя.
А в первом случае вы заверяете согласие пользователя на "информацию
Тоесть они не несут информации о том, кто их подписал?А что скажите про это https://habr.com/ru/post/550664/
Там идет речь кроме всего и конвертации ЭЦП. Кстати, у меня расширение jks.
0
168 / 124 / 42
Регистрация: 25.10.2019
Сообщений: 476
18.04.2021, 17:55 15
Цитата Сообщение от DyadyaGe Посмотреть сообщение
Тоесть они не несут информации о том, кто их подписал
Не несут, а только технически обозначают,что информация, которая поступила из подсети/пользователя не нуждается в проверке, т.к. верификация уже была сделана.

Законно заверить документ можно только с помощью квалифицированной электронной подписью.

Цитата Сообщение от DyadyaGe Посмотреть сообщение
А что скажите про это
Я выше уже писал
Цитата Сообщение от websyst_ru Посмотреть сообщение
Но в зависимости от файла может потребоваться прикрепить файл эцп к файлу.(сертификат, в формате .sig
В статье как раз говорится об этом способе
"Подписываем документ. Подпись будет отсоединенная, в формате PKCS#7 в отдельном файле (document.pdf.sig)"

Подпись будет законная, как положено.
Но это не ваш случай, т.к. вы хотите получать подпись от пользователя(если я правильно всё понял). Не располагая закрытыми ключами ЭЦП так сделать не получится. Если это не предприятие и сотрудники внутри него, а открытый интернет - не то.
0
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 819
18.04.2021, 19:21  [ТС] 16
Цитата Сообщение от websyst_ru Посмотреть сообщение
Но это не ваш случай, т.к. вы хотите получать подпись от пользователя(если я правильно всё понял)
Нет, мне нужно получить подписанное письмо, вернее проверить его или подписать (как начинаю понимать, открытым ключом, сертификатом), и положить к себе на сервер. Не ходить же для проверки писем на государственный сайт.
0
168 / 124 / 42
Регистрация: 25.10.2019
Сообщений: 476
19.04.2021, 00:11 17
Цитата Сообщение от DyadyaGe Посмотреть сообщение
как начинаю понимать, открытым ключом, сертификатом
Да. С самого начала об этом и говорил)
Упрощенный вариант: прочитать сертификат пользователя и сохранить себе его ключ. Проверка корректности всё-равно выполняется на стороне пользователя. В этом случае он не сможет подписать, т.к. криптопровайдер не разрешит.
0
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 819
19.04.2021, 09:47  [ТС] 18
Цитата Сообщение от websyst_ru Посмотреть сообщение
прочитать сертификат пользователя и сохранить себе его ключ
так если я сохраню себе его ключ, то смогу вместо него подписать все что угодно... Хотя вы пишите, что
Цитата Сообщение от websyst_ru Посмотреть сообщение
В этом случае он не сможет подписать, т.к. криптопровайдер не разрешит.
Видимо я не смогу подписать, потому что криптопровайдеру нужен рядом оригинал?
0
168 / 124 / 42
Регистрация: 25.10.2019
Сообщений: 476
19.04.2021, 10:24 19
Цитата Сообщение от DyadyaGe Посмотреть сообщение
так если я сохраню себе его ключ, то смогу вместо него подписать все что угодно... Хотя вы пишите, что
речь про открытый. Сертификат открытого ключа. И нет, не сможете.

Цитата Сообщение от DyadyaGe Посмотреть сообщение
Видимо я не смогу подписать, потому что криптопровайдеру нужен рядом оригинал?
вы хотите самостоятельно подписывать документ от имени пользователя на своём сервере? Так не получится)
только если вы сохраните весь набор ключей и контейнеров+сертификат
0
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 819
19.04.2021, 13:15  [ТС] 20
Цитата Сообщение от websyst_ru Посмотреть сообщение
Так не получится)
только если вы сохраните весь набор ключей и контейнеров+сертификат
Потому что нужно быть той организацией, которая выдала ключ, потому что у неё все это есть? (криптопровайдер - аналог этой организации у себя на компе?)
А проверить то подписанный документ я могу?
Или только создать свой криптопровайдер и пройти "акредитацию" у государства, либо довольствоваться тем, что эта ЭЦП будет значима только для меня?
0
19.04.2021, 13:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.04.2021, 13:15
Помогаю со студенческими работами здесь

Открепить, "Снять" Электронную Цифровую Подпись (ЭЦП)
Доброго времени суток. Вопрос. Подскажите, как у нескольких документов эксель снять ЭЦП? Если...

Как проверить приходят ли в письме вложенные файлы в денвере?
Как проверить приходят ли в письме вложенные файлы в денвере?

Не удается проверить цифровую подпись драйверов (код 52)
доброго времени суток друзья!!! Помогите решить проблему выключили свет ноут вырубился после...

Не удаётся проверить цифровую подпись устройства (код 52)
Здраствуйте, такая проблема, при установке драйверов на мышку razer abyssus mirror edition, вылетел...

Не удается проверить цифровую подпись драйвера видеокарты
После моей попытки установить драйвер на веб камеру genius e-messenger 310 у меня появился синий...

DVD-RW Не удается проверить цифровую подпись драйверов
Подскажите, пожалуйста. После попытки установить на компьютер (windows 7) avid liquid 7.2...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru