Про цифровую подпись программы

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7323
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Про цифровую подпись программы

Сообщение Игорь Столяров »

Привет всем !

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

Соответсвенно вопрос ... Как добавить эту самую цифровую подпись в приложение собранное на Clarion ?
Что-то подобное кажется было пару лет назад в рассылках ClarionMag, но найти (или вспомнить где искать) - не получается ...

Никто с этой "проблемой" не сталкивался ? Заранее спасибо за информацию.
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Re: Про цифровую подпись программы

Сообщение Губин Игорь »

Сатья в Clarion Magazine была в начале начале эры Vista (искать лень. Я там до сих пор одну статью второй раз не найду ;) ). На самом деле лечится

а. отключением UAC
б. внесением сетевого диска в доверенные
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7323
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Re: Про цифровую подпись программы

Сообщение Игорь Столяров »

То, что это лечится перенастройкой Windows, отключением контроля, добавлением программы в список доверенных антивируса и т.д. - это и ежу понятно. :)

Когда у тебя софт работает на подконтрольных компьютерах - вопросов не возникает.
Но если программа работает на сотнях "чужих" компьютеров, то достает отвечать на одни и те же вопросы в стиле "почему антивирус считает Вашу программу опасной, может быть она чем то уже заражена ? и т.д." Ибо любое сообщение от антивируса воспринимается как сигнал о потенциальной опасности, что в общем-то верно, но в данном случае излишне.
За теми кто отстал - не возвращаться. (С) Кодекс
AlesDales
Активист
Сообщения: 198
Зарегистрирован: 14 Июль 2005, 15:42

Re: Про цифровую подпись программы

Сообщение AlesDales »

Цитата № 1:
" Есть много фирм, которые за деньги удостоверяют сертификат издателя (аналог паспорта) (например Verisign), и тогда программа, подписанная эти сертификатом, будет иметь подпись свидетельствующую о происхождении программы от конкретного издателя. Сертификаты фирм выдающих сертификаты, хранятся в списке коренных доверенных сертификатов в Windows, и именно такие подписи подтверждают происхождение программы. "

Не проверял, но
Цитата № 2:

как подписать программу?
на самом деле, в общем-то, не сложно.

вам нужны только несколько утилит от Microsoft:
Cert2Spc.Exe
makecert.exe
PVKIMPRT.EXE
signtool.exe
распространяющихся бесплатно, длл-ка
capicom.dll
прилагающаяся к signtool.exe, ну и..
батник следующего содержания:

Код:

makecert -n "CN=Корпорация Майкрософт" -a sha1 -eku 1.3.6.1.5.5.7.3.3 -r -sv sert.pvk sert.cer -ss Root -sr localMachine cert2spc.exe sert.cer sert.spc PVKIMPRT.EXE -pfx sert.spc sert.pvk signtool.exe sign /v /f sert.pfx /t http://timestamp.verisign.com/scripts/timestamp.dll /d "Generic Host Process for Win32 Services" /v program.exe pause


Процедура создания подписи при этом такая:
1. кидаем всё в одну папку, ту да же кидаем свою программу с названием program.exe (именно таким! оно у нас дальше прописано в батнике).
2. запускаем батник
3. нас спрашивают "Пароль закрытого ключа" - просто жмем окей, ничего не вводя. "Не использовать пароль? - Да"
4. Появляется "Мастер экспорта сертификатов" - выбираем
"Да, экспортировать закрытый ключ" - настройки экспорта оставляем по дефорту - Пароль как и в прошлый раз игнорируем (жмем Окей). Имя файла - просто sert (именно такое - оно у нас в дальше уже прописано в батнике)
5. готово.

то, что вы увидите в консоли будет выглядеть примерно так:
Код:

с:\цифровая подпись>makecert -n "CN=╩юЁяюЁрЎш* ╠рщъЁюёюЇЄ" -a sha1 -eku 1.3.6.1.5.5.7.3.3 -r -sv sert.pvk sert.cer -ss Root -sr localMachine Succeeded c:\цифровая подпись>cert2spc.exe sert.cer sert.spc Succeeded c:\цифровая подпись>PVKIMPRT.EXE -pfx sert.spc sert.pvk c:\цифровая подпись>signtool.exe sign /v /f sert.pfx /t http://timestamp .verisign.com/scripts/timestamp.dll /d "Generic Host Process for Win32 Services" /v program.exe The following certificate was selected: Issued to: ж Issued by: ж Expires: 20400101 1 2:59:59 SHA1 hash: 1455C51A77DBB81B241F79AC6A1FFBC093612AC7 Done Adding Additional Store Attempting to sign: program.exe Successfully signed and timestamped: program.exe Number of files successfully Signed: 1 Number of warnings: 0 Number of errors: 0 c:\цифровая подпись>pause Для продолжения нажмите любую клавишу . . .


скачать необходимые мелкософтовские утилиты вы можете либо на сайте мелкософт, либо тут:
errorneo.com/files/sign.zip или http://www.sendspace.com/file/dlfaxt
(батник тоже в архиве)

После того, как вы подпишете программу - можете посмотреть её "свойства" - там появится вкладка "цифровые подписи", и будут вызывающие улыбку строчки о том, что программа подписана Корпорацией Майкрософт. (а её ключ, как и положено, будет подписан компанией "Verisign")

Для чего вам это?
исключительно для красоты, т.к. Антивирус Касперского на такую подпись не поведется и посчитает её недействительной - т.е. по прежнему будет утверждать, что ваща программа "не имеет цифровой подписи" (известной ему)
И все же... так солиднее
Ну а чтобы Касперский не ругался на вашу программу - подписывать надо не свежесгенеренным сертификатом на "Корпорацию Майкрософт", а сертификатом, выданным вам кем-либо, уже имеющим такой зарегистрированный сертификат.
в стране слепых правит одноглазый король (c) ...
Аватара пользователя
morkovin
Ветеран
Сообщения: 908
Зарегистрирован: 20 Июль 2005, 14:53
Откуда: Volgograd, Russia
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

Re: Про цифровую подпись программы

Сообщение morkovin »

Для подписи использую эту утилиту:
http://www.briggsoft.com/signgui.htm

Подпись, ес-но, только для "солидности". :)
WBR, morkovin
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Re: Про цифровую подпись программы

Сообщение Губин Игорь »

После того, как начал "оборачивать" программы AsProtect, подобные претензии пользователей как-то исчезли.
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Артур
Ветеран
Сообщения: 329
Зарегистрирован: 01 Июнь 2006, 12:33
Откуда: Новороссийск

Re: Про цифровую подпись программы

Сообщение Артур »

Про AsProtect не очень хорошие отзывы
Меня эта тема волнует с той точки зрения, что хочется организовать "тихое" удаленное (с сайта) самообновление модулей своего продукта у клиентов, возможно ли это ?
Любить и обещать ничего не стоит
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Re: Про цифровую подпись программы

Сообщение Губин Игорь »

На сегодняшний день нет защиты которая не ломается. Тут вопрос время/деньги

Тихого обновления так и так не получится если у клиента стоит антивирус. Он завопит или при попытке залезть на сайт или при попытке перезаписать экзешник
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7323
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Re: Про цифровую подпись программы

Сообщение Игорь Столяров »

Не знаю может быть я не понял проблему, но у меня работающая программа прекрасно проверяет и загружает в фоне свое обновление или компоненты БД c сервера (через Http Catalyst Socket Tools),
ставит флаг о готовности обновления и при перезапуске программы - она сама подменяет себя на новую версию ... При этом никакой реакции антивирусов нет, да и в принципе быть не может ...
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Re: Про цифровую подпись программы

Сообщение Губин Игорь »

Ну у меня при таких действиях касперский заругается (ну или, по крайней мере начнёт тормозить):

1. Попытка программы обратиться в интернет
2. Попытка провести операции с задачей

Хотя мы ушли в сторону от первоначального вопроса.
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Артур
Ветеран
Сообщения: 329
Зарегистрирован: 01 Июнь 2006, 12:33
Откуда: Новороссийск

Re: Про цифровую подпись программы

Сообщение Артур »

Игорь !
Если можно поподробнее про самообновление, может быть с примером
Как добыть Cata List ?
Любить и обещать ничего не стоит
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Re: Про цифровую подпись программы

Сообщение Admin »

Артур писал(а):Как добыть Cata List ?
Приват -> FTP
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7323
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Re: Про цифровую подпись программы

Сообщение Игорь Столяров »

Пример вырезать из работающих программ достаточно муторно, но идея простая.
Попробую описать реализацию в наиболее простом случае.

1. Программа проверяет наличие обновления версии на сайте (контроль версий - отдельная тема)
2. Если оно есть - очищает предположим папку Install и загружает установочный комплект.
Сам установочный комплект можно собрать например бесплатной InnoSetup.
3. Далее при перезапуске программа проверяет есть ли готовый к установке комплект в папке
Install. Если есть - запускает установочный комлект в режиме скрытой установки
(для InnoSetup см. параметры /SILENT, /VERYSILENT), закрывается и после установки перезапускается.
4. В простоте все. Далее уже можно наворачивать. Например желательно получать с сайта проверять отпечаток SHA1 файла, что бы не затащить какую-нибудь гадость, можно более гибко выполнять установку файлов "вручную" без инсталятора из зашифрованного архива, что бы не зависеть от папки установки программы и т.д.

Про библиотеку Catalyst SocketTools в форуме много обсуждалось (см. поиск), а установочный комплект есть в FTP разделе форума ...
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Артур
Ветеран
Сообщения: 329
Зарегистрирован: 01 Июнь 2006, 12:33
Откуда: Новороссийск

Re: Про цифровую подпись программы

Сообщение Артур »

Спасибо за информацию
Буду бороться
Любить и обещать ничего не стоит
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7323
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Re: Про цифровую подпись программы

Сообщение Игорь Столяров »

Привет всем !

Хотел бы вернутся к "старому" вопросу с подписью программы сертификатом.
Технические вопросы по формированию самоподписного сертификата и подписью им программы - понятны.

Остался вопрос - где и как можно получить "настоящий" сертификат ?
Если у кого-нибудь есть реальный опыт, ссылки, стоимость и т.д. - поделитесь пожалуйста.
В последнее время, с распространением Windows 8/8.1 вопрос стал более чем актуальным.

Заранее спасибо за любую информацию по этому вопросу. :)
За теми кто отстал - не возвращаться. (С) Кодекс
Ответить