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

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

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

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Появилась задача проверить ЭЦП в письме. С одной стороны в инете куча теоретической инфы по шифрованию и использованию ЭЦП. С другой мне пока так и не понятен конкретный механизм проверки ЭЦП. Тем более что пишут мол можно самому создать ЭЦП.
Вот предположим я решил создать свою ЭЦП, подписать ею документ, отправить по почте и проверить письмо. Можно, конечно, в банке (или любом другом удостоверяющем центре) заказать реальную ЭЦП и все остальное проделать с ней. Но все равно остается вопрос как это сделать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.04.2021, 10:33
Ответы с готовыми решениями:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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


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

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

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

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

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

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

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

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

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

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

Цитата Сообщение от DyadyaGe Посмотреть сообщение
Видимо я не смогу подписать, потому что криптопровайдеру нужен рядом оригинал?
вы хотите самостоятельно подписывать документ от имени пользователя на своём сервере? Так не получится)
только если вы сохраните весь набор ключей и контейнеров+сертификат
0
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827
19.04.2021, 13:15  [ТС]
Цитата Сообщение от websyst_ru Посмотреть сообщение
Так не получится)
только если вы сохраните весь набор ключей и контейнеров+сертификат
Потому что нужно быть той организацией, которая выдала ключ, потому что у неё все это есть? (криптопровайдер - аналог этой организации у себя на компе?)
А проверить то подписанный документ я могу?
Или только создать свой криптопровайдер и пройти "акредитацию" у государства, либо довольствоваться тем, что эта ЭЦП будет значима только для меня?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.04.2021, 13:15
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru