Про цифровую подпись программы
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Игорь Столяров
- Ветеран движения
- Сообщения: 7323
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Про цифровую подпись программы
Привет всем !
В последнее время озверели антивирусы - постоянно "предупреждают", что запускаемая программа не имеет цифровой подписи и потому может быть опасна и т.д.
Обычного юзера это вводит в ступор, он начинает паниковать от того, что ему надо принимать решение о том доверять программе или нет ... А вдруг там чего ... и т.д.
Соответсвенно вопрос ... Как добавить эту самую цифровую подпись в приложение собранное на Clarion ?
Что-то подобное кажется было пару лет назад в рассылках ClarionMag, но найти (или вспомнить где искать) - не получается ...
Никто с этой "проблемой" не сталкивался ? Заранее спасибо за информацию.
В последнее время озверели антивирусы - постоянно "предупреждают", что запускаемая программа не имеет цифровой подписи и потому может быть опасна и т.д.
Обычного юзера это вводит в ступор, он начинает паниковать от того, что ему надо принимать решение о том доверять программе или нет ... А вдруг там чего ... и т.д.
Соответсвенно вопрос ... Как добавить эту самую цифровую подпись в приложение собранное на Clarion ?
Что-то подобное кажется было пару лет назад в рассылках ClarionMag, но найти (или вспомнить где искать) - не получается ...
Никто с этой "проблемой" не сталкивался ? Заранее спасибо за информацию.
За теми кто отстал - не возвращаться. (С) Кодекс
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2301
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Поблагодарили: 17 раз
Re: Про цифровую подпись программы
Сатья в Clarion Magazine была в начале начале эры Vista (искать лень. Я там до сих пор одну статью второй раз не найду ). На самом деле лечится
а. отключением UAC
б. внесением сетевого диска в доверенные
а. отключением UAC
б. внесением сетевого диска в доверенные
Это я только кажусь дураком! На самом деле я полный идиот!
- Игорь Столяров
- Ветеран движения
- Сообщения: 7323
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Re: Про цифровую подпись программы
То, что это лечится перенастройкой Windows, отключением контроля, добавлением программы в список доверенных антивируса и т.д. - это и ежу понятно.
Когда у тебя софт работает на подконтрольных компьютерах - вопросов не возникает.
Но если программа работает на сотнях "чужих" компьютеров, то достает отвечать на одни и те же вопросы в стиле "почему антивирус считает Вашу программу опасной, может быть она чем то уже заражена ? и т.д." Ибо любое сообщение от антивируса воспринимается как сигнал о потенциальной опасности, что в общем-то верно, но в данном случае излишне.
Когда у тебя софт работает на подконтрольных компьютерах - вопросов не возникает.
Но если программа работает на сотнях "чужих" компьютеров, то достает отвечать на одни и те же вопросы в стиле "почему антивирус считает Вашу программу опасной, может быть она чем то уже заражена ? и т.д." Ибо любое сообщение от антивируса воспринимается как сигнал о потенциальной опасности, что в общем-то верно, но в данном случае излишне.
За теми кто отстал - не возвращаться. (С) Кодекс
Re: Про цифровую подпись программы
Цитата № 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")
Для чего вам это?
исключительно для красоты, т.к. Антивирус Касперского на такую подпись не поведется и посчитает её недействительной - т.е. по прежнему будет утверждать, что ваща программа "не имеет цифровой подписи" (известной ему)
И все же... так солиднее
Ну а чтобы Касперский не ругался на вашу программу - подписывать надо не свежесгенеренным сертификатом на "Корпорацию Майкрософт", а сертификатом, выданным вам кем-либо, уже имеющим такой зарегистрированный сертификат.
" Есть много фирм, которые за деньги удостоверяют сертификат издателя (аналог паспорта) (например 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: Про цифровую подпись программы
Для подписи использую эту утилиту:
http://www.briggsoft.com/signgui.htm
Подпись, ес-но, только для "солидности".
http://www.briggsoft.com/signgui.htm
Подпись, ес-но, только для "солидности".
WBR, morkovin
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2301
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Поблагодарили: 17 раз
Re: Про цифровую подпись программы
После того, как начал "оборачивать" программы AsProtect, подобные претензии пользователей как-то исчезли.
Это я только кажусь дураком! На самом деле я полный идиот!
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. Попытка провести операции с задачей
Хотя мы ушли в сторону от первоначального вопроса.
1. Попытка программы обратиться в интернет
2. Попытка провести операции с задачей
Хотя мы ушли в сторону от первоначального вопроса.
Это я только кажусь дураком! На самом деле я полный идиот!
Re: Про цифровую подпись программы
Игорь !
Если можно поподробнее про самообновление, может быть с примером
Как добыть Cata List ?
Если можно поподробнее про самообновление, может быть с примером
Как добыть Cata List ?
Любить и обещать ничего не стоит
- Admin
- Администратор
- Сообщения: 3959
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 25 раз
- Поблагодарили: 22 раза
- Контактная информация:
Re: Про цифровую подпись программы
Приват -> FTPАртур писал(а):Как добыть Cata List ?
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
- Игорь Столяров
- Ветеран движения
- Сообщения: 7323
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Re: Про цифровую подпись программы
Пример вырезать из работающих программ достаточно муторно, но идея простая.
Попробую описать реализацию в наиболее простом случае.
1. Программа проверяет наличие обновления версии на сайте (контроль версий - отдельная тема)
2. Если оно есть - очищает предположим папку Install и загружает установочный комплект.
Сам установочный комплект можно собрать например бесплатной InnoSetup.
3. Далее при перезапуске программа проверяет есть ли готовый к установке комплект в папке
Install. Если есть - запускает установочный комлект в режиме скрытой установки
(для InnoSetup см. параметры /SILENT, /VERYSILENT), закрывается и после установки перезапускается.
4. В простоте все. Далее уже можно наворачивать. Например желательно получать с сайта проверять отпечаток SHA1 файла, что бы не затащить какую-нибудь гадость, можно более гибко выполнять установку файлов "вручную" без инсталятора из зашифрованного архива, что бы не зависеть от папки установки программы и т.д.
Про библиотеку Catalyst SocketTools в форуме много обсуждалось (см. поиск), а установочный комплект есть в FTP разделе форума ...
Попробую описать реализацию в наиболее простом случае.
1. Программа проверяет наличие обновления версии на сайте (контроль версий - отдельная тема)
2. Если оно есть - очищает предположим папку Install и загружает установочный комплект.
Сам установочный комплект можно собрать например бесплатной InnoSetup.
3. Далее при перезапуске программа проверяет есть ли готовый к установке комплект в папке
Install. Если есть - запускает установочный комлект в режиме скрытой установки
(для InnoSetup см. параметры /SILENT, /VERYSILENT), закрывается и после установки перезапускается.
4. В простоте все. Далее уже можно наворачивать. Например желательно получать с сайта проверять отпечаток SHA1 файла, что бы не затащить какую-нибудь гадость, можно более гибко выполнять установку файлов "вручную" без инсталятора из зашифрованного архива, что бы не зависеть от папки установки программы и т.д.
Про библиотеку Catalyst SocketTools в форуме много обсуждалось (см. поиск), а установочный комплект есть в FTP разделе форума ...
За теми кто отстал - не возвращаться. (С) Кодекс
Re: Про цифровую подпись программы
Спасибо за информацию
Буду бороться
Буду бороться
Любить и обещать ничего не стоит
- Игорь Столяров
- Ветеран движения
- Сообщения: 7323
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Re: Про цифровую подпись программы
Привет всем !
Хотел бы вернутся к "старому" вопросу с подписью программы сертификатом.
Технические вопросы по формированию самоподписного сертификата и подписью им программы - понятны.
Остался вопрос - где и как можно получить "настоящий" сертификат ?
Если у кого-нибудь есть реальный опыт, ссылки, стоимость и т.д. - поделитесь пожалуйста.
В последнее время, с распространением Windows 8/8.1 вопрос стал более чем актуальным.
Заранее спасибо за любую информацию по этому вопросу.
Хотел бы вернутся к "старому" вопросу с подписью программы сертификатом.
Технические вопросы по формированию самоподписного сертификата и подписью им программы - понятны.
Остался вопрос - где и как можно получить "настоящий" сертификат ?
Если у кого-нибудь есть реальный опыт, ссылки, стоимость и т.д. - поделитесь пожалуйста.
В последнее время, с распространением Windows 8/8.1 вопрос стал более чем актуальным.
Заранее спасибо за любую информацию по этому вопросу.
За теми кто отстал - не возвращаться. (С) Кодекс