Этому приложению не разрешено использовать содержимое управляемое правами подпись authenticode
У меня есть два сертификата подписи кода (один SHA-1, один SHA-256), который я хотел бы применить к тому же файлу. Я попытался добавить сертификат SHA-256, но это не удалось: :: Signs with the SHA-.
Недавно мы приобрели сертификат подписи кода DigiCert EV. Мы можем подписать файлы .exe, используя signtool.exe. Однако каждый раз, когда мы подписываем файл, он запрашивает пароль SafeNet eToken. .
Из ответа на вопрос "Что происходит, когда срок действия сертификата подписи кода истекает?" , Я узнал, что существует WTD_LIFETIME_SIGNING_FLAG, что может означать непреднамеренное поведение подпи.
Я пытаюсь проверить сертификаты/подписи файла PE PE с OpenSSL (или на самом деле с Python, но похоже, что Python отстой в отношении обработки сертификата). Я извлек сертификат DER PKCS7 из файла PE.
Я работаю над приложением ClickOnce, которое теперь я хочу подписать с сертификатом, который я получил от Comodo, исключительно для того, чтобы избежать предупреждения "Неизвестного издателя" (а те.
Я пишу программу, которая может обрабатывать протокол mailto: protocol. Чтобы пользователь мог выбрать мою программу в качестве почтового обработчика по умолчанию, я зарегистрировал свою программу.
Мы разрабатываем программу Win32 (= host), которая позволяет сторонним пользователям писать плагины. Поскольку некоторые плагины содержат ценный фрагмент кода (например, высококачественный видеоска.
При использовании Set-AuthenticodeSignature существует опция IncludeChain . Несмотря на то, что есть документация о том, что есть у каждого из вариантов, я не смог выявить много рекомендаций относи.
Как генерировать исходные общедоступные/закрытые ключи, используемые для подписи под Authenticode? Я вижу, что в этом учебнике есть такие, как: pvk2pfx.exe -pvk mykey.pvk -pi <password> -spc .
Я создал установщик MSI с помощью Visual Studio 2008. Затем я подписываю это с помощью signtool.exe и моего сертификата подлинности. На тестовом ПК Vista x64, когда запускается MSI, появляется ожид.
Я столкнулся с довольно интересной проблемой в отношении аутентификации подписи файла приложения UWP appxbundle. Некоторые предпосылки: клиент предоставил нам USB-токен SafeNet, содержащий сертифик.
У меня есть X.509 v3, выпущенный CA в моей компании. Я использую развертывание ClickOnce в Viusal Studio, и я хочу использовать подписание кода. Когда я нажимаю "Выбрать из магазина", сертификат не.
Моя компания приобрела Сертификат подписи водителя от Go Daddy. Я использовал его для подписания простого файла INF, который является драйвером для некоторых наших USB-устройств, которые используют.
Я распространяю подписанный аутентификацией самораспаковывающийся исполняемый файл, содержимое которого я контролирую. В нем содержится гриб MSI-инсталляторов, который управляет горячей заменой рас.
Я пишу функцию для DLL установщика для проверки подлинности Authenticode файлов EXE, уже установленных в системе. Функция должна: A) проверьте, что подпись действительна. B) убедитесь, что подписав.
Мой сертификат подписания кода действителен с 3/3/12 до 3/3/13 (Comodo) Будет ли обновлять его, выдавая мне новый сертификат (файл.pfx)? или я могу использовать текущий сертификат (файл.pfx) после .
Как я могу разрешить доступ к ключу в HSM при подписании в качестве sha256? Когда я подписываюсь, как инструмент знака sha1 правильно вытаскивает ключ сертификата из HSM, но если я перехожу на "/fd.
Я пытаюсь выполнить проверку цепочки сертификатов для исполняемых файлов Windows, что также включает проверку отозванных сертификатов с использованием API OpenSSL 1.0.2 C. У меня есть файлы CRL, хр.
Я создал приложение, которое содержит несколько файлов *.exe . Я упаковал их в установщик NSIS, который я разместил на своем веб-сайте. Когда я пытаюсь загрузить его, Chrome сообщает об этом как по.
Когда пользователь посещает страницу, содержащую подписанный элемент управления ActiveX, который никогда не видел раньше, я ожидаю, что IE попросит у пользователя разрешения на установку элемента у.
У нас есть exe файл, поставляемый приложением ASP.NET. Этот бинарный файл фактически модифицируется "на лету" в памяти. Есть ли способ подписать модифицированный exe с аутентификацией в памяти без .
Будет ли сертификат подлинника остановить антивирусное программное обеспечение от маркировки моего приложения? Я провел некоторое исследование и знаю, что во время установки он появится как провере.
В настоящее время я смотрю, как моя компания подписывает наши файлы. В настоящее время мы используем сертификат EV для подписывания почти каждого файла в нашем установщике, включая установщика. Я н.
Я работаю над внутренним проектом, который использует кучу OLEDB-провайдеров, некоторые из которых имеют пользовательский интерфейс. Самая большая проблема заключается в том, что мне нужно запросит.
Я ищу метод, используя только PowerShell, чтобы отобразить цепочку сертификатов для подписанных файлов. В частности, получить Корневой сертификат. Поскольку мне нужно получить список, из которых ко.
У меня есть настольное приложение, которое я создал для nopCommerce. Одна из возможностей - позволить пользователям перетаскивать изображения из обозревателя Windows в мое приложение, а изображения.
Мое приложение доставляется на тысячи компьютеров через автоматическое обновление (собственное решение). Windows 8 и 10 иногда обнаруживают, что наше приложение небезопасно, и однажды нам пришлось .
В настоящее время я пытаюсь использовать функцию SignerSignEx2 для подписи DLL с Authenticode. Для этого я создал секретный ключ и поместил его в хранилище ключей машины (поэтому файл будет хранить.
Я использовал Microsoft SignTool для подписи моих исполняемых файлов с моим сертификатом подписи кода, используя следующий вызов командной строки: signtool.exe sign /q /f "cert.pfx" /p "pfxpassword.
Я пытался изо всех сил пытаться получить простую ActiveX DLL, чтобы работать без успеха, несмотря на изучение нескольких статей по теме, которые Я нашел онлайн. Я подозреваю, что у меня есть нескол.
Клиент приобрел сертификат подписи кода, и он поставляется с файлом .pvk и .spc . Я знаком с файлом .pvk , но Visual Studio не распознает файл .spc . Когда я пытаюсь загрузить файл .spc в качестве .
При подписании моего развертывания ClickOnce с помощью страницы настроек "Подписание" в Visual Studio я указал сертификат SHA2 (SHA256) EV Authenticode и опубликовал.
Рубрики
А так же делитесь знаниями, знакомьтесь с новыми утилитами и приложениями, учитесь у всегда готовых помочь ответить на самые сложные вопросы во всех сферах IT и программирования. Станьте гуру и экспертом разработки ПО, получите признание коллег, заработайте репутацию, создайте стартап или приложение которое будет работать на вас!
В прошлый раз мы рассматривали цифровые SSL сертификаты, в этот раз рассмотрим еще один вариант цифровых сертификатов.
Code Signing сертификаты — это сертификат, которым подписывается программное обеспечение или скрипты, который подтверждает автора программы и гарантирует, что код не был изменен, после того, как была наложена цифровая подпись. Также их еще называют сертификаты разработчика.
Итак сертификаты разработчика предоставляют нам несколько возможностей. Во-первых это механизм цифровой подписи, которая подтверждает, что программа, которой вы пользуетесь действительно выпущена той или иной компанией, то есть гарантирует подлинность источника. А во вторых гарантирует целостность содержимого, то есть, что с момента подписания программный продукт не был поврежден или изменен.
Во всех современных версиях Windows, начиная с Windows XP SP2, при установке программного обеспечения без такой цифровой подписи вы получите предупреждение. То же самое кстати касается и установки драйверов, которые не имеют соответствующей цифровой подписи.
В случае, если цифровая подпись не найдена, Windows выдаст предупреждение, что у этой программы «Неизвестный издатель» и запускать её не рекомендуется.
В случае, если программа имеет цифровую подпись, то окошко будет выглядеть иначе и вы также сможете посмотреть информацию о сертификате.
Какие бывают виды Code signing сертификатов, и чем отличаются?
Прежде всего рассмотрим сертификаты, по центрам сертификации, которые их выпускают.
Лучше всего различия между сертификатами от разных центров сертификации показывает сводная табличка.
В колонках указаны названия центров сертификации, а в в строках тип сертификата или технология/платформа для которой он используется.
Платформа \ Центр сертификации | Symantec | Thawte | Comodo | Digicert | Globalsign | Trustwave | Startcom |
---|---|---|---|---|---|---|---|
Microsoft Authenticode Signing | + | + | + | + | + | + | + |
Code Signing for Apple | + | + | + | + | + | + | |
Microsoft Vba Signing | + | + | + | + | + | + | + |
Java Code Signing | + | + | + | + | + | + | + |
Adobe Air Signing | + | + | + | + | + | + | + |
Kernel Mode Signing | + | + | + | + | |||
Android | + | ||||||
Windows Phone | + | ||||||
Qualcomm BREW | + | ||||||
Стоимость, от | 500$ | 250$ | 90$ | 220$ | 220$ | 330$ | 200$ |
стоит уточнить, что не все центры сертификации дают полную информацию о платформах, на которых работают их сертификаты, поэтому плюсом отмечены только те платформы, поддержка которых в явном виде заявлена центром сертификации.
Microsoft Authenticode
Для подписи 32 и 64 битных файлов (.exe, .cab, .dll, .ocx, .msi, .xpi и .xap файлы). Также позволяет подписывать код для Microsoft® Office, Microsoft VBA, Netscape Object Signing и Marimba Channel Signing.
Поддерживает приложения на Silverlight 4
Code Signing for Apple
Позволяет разработчикам подписывать программы для Mac OS, а также обновления для программного обеспечения
Microsoft Office Vba Signing
Подписывает VBA объекты, скрипты и макросы для файлов Microsoft Office .doc, .xls, и.ppt
Для Microsoft Office и дополнений, которые используют VBA
Java Code Signing
Для подписи Java апплетов. Позволяет подписывать .jar файлы и Java приложения для настольных и мобильных устройств.
Распознается Java Runtime Environment (JRE)
Adobe Air Signing
Для подписи файлов .air
Требуется для всех приложений, основанных на AIR
Kernel Mode Signing
Сертификаты разработчика Kernel-Mode позволяют подписывать, так называемые kernel-mode приложения и драйвера устройств. 64 битная версия Windows Vista и Windows 7 требуют, чтобы все kernel-mode приложения были подписаны сертификатом и доверенного центра сертификации.
Android
Для подписи и оптимизации .apk файлов для платформы Android
Microsoft Windows Phone
Для цифровой подписи приложений для Windows Phone и Xbox 360. Требуется для сервиса Microsoft App Hub
Qualcomm BREW
Для тех, кто разрабатывает приложения под платформу BREW (Binary Runtime Environment for Wireless)
Как работает Code Signing сертификат:
Процесс подписи кода.
- Издатель (разработчик) запрашивает Code Signing сертификат у центра сертификации
- Используя SIGNCODE.EXE или другую утилиту для подписи кода издатель, cоздает хеш кода, используя алгоритмы MD5 или SHA
- Кодирует хеш, с помощью приватного ключа
- Создает пакет, который включает в себя: код, зашифрованный хеш и сертификат издателя
Процесс проверки подписанного кода.
- Пользователь скачивает или устанавливает подписанное ПО и платформа или система пользователя проверяет сертификат издателя, который подписан корневым приватным ключем центра сертификации
- Система запускает код, используя тот же самый алгоритм создания хеша, как издатель и создает новый хеш
- Используя публичный ключ издателя, который содержится в сертификате, система расшифровывает зашифрованный хеш
- И сравнивает между собой 2 хеша
Центр сертификации
Когда разработчик запрашивает цифровой сертификат — центр сертификации идентифицирует его и выпускает сертификат, связанный с корневым сертификатом центра сертификации. Платформы и устройства содержат в себе корневой сертификат соответствующего центра сертификации. То есть если платформа или устройство доверяет какому-либо центру сертификации, то оно доверят и вашему сертификату, подписанному этим центром сертификации.
В случае если хеши не совпадают вы получите ошибку при запуске такого ПО — это может означать, что ПО было модифицировано вирусом или злоумышленником.
Когда ПО расшифровывает цифровую подпись, оно проверяет также корневой сертификат в системе, источник проверенной информации. В случае использования самоподписного сертификата, вы получите ошибку: «издатель не может быть проверен». Поэтому важно использовать сертификаты того центра сертификации, чьи корневые сертификаты уже установлены в системе у предполагаемого пользователя программы.
О самом процессе верификации организации рассказывать не буду, так как он такой же как и для SSL сертификатов с валидацией организации, о чем мы уже говорили в прошлой статье.
Несколько слов про timestamp.
Timestamp или временная метка используется для указания времени, когда цифровая подпись была сделана. Если такая метка присутствует, то приложение, которое проверяет подпись проверит был ли сертификат, связанный с подписью валидным на момент подписи. Если же такой метки нет, и срок сертификата уже закончился, то подпись будет считаться недействительной.
Пример:
Сертификат действителен с: 01.01. 2008
Сертификат действителен до: 31.12.2010
Подпись сделана: 04.07.2009
Подпись проверена: 30.04.2012
C временной меткой (timestamp) подпись пройдет проверку, поскольку на момент подписи сертификат был действителен. Без такой метки сертификат не пройдет проверку, поскольку на момент проверки у сертификата уже закончился срок.
То есть такая метка позволяет использовать подписанный код, даже после срок окончания сертификата.
Подведем итог
Для выбора сертификата сначала нужно выбрать центр сертификации, который выпускает сертификаты под нужную вам платформу, а дальше выбор по сути сводится к выбору по цене и по известности центра сертификации, зачастую клиенты выбирают те центры сертификации, с которым уже работали ранее.
Несколько советов.
- Заявку на сертификат желательно оформлять с той же машины, с которой вы потом будете выполнять подпись ПО.
- Большинство центров сертификации рекомендуют генерировать заявку на сертификат через Internet explorer, хотя при генерации заявок через другие браузеры у нас также не было проблем.
Буду рад ответить на вопросы по сертификатам разработчика, в рамках своей компетенции, так как сам разработчиком не являюсь.
Также буду рад дополнениям и уточнениям от тех, кто такими сертификатами пользуется.
UPD: добавил важную информацию про timestamp (временную метку), спасибо TolTol и crea7or
Подписание кода - это процесс цифровой подписи исполняемых файлов и сценариев для подтверждения автора программного обеспечения и гарантии того, что код не был изменен или поврежден, поскольку он был подписан с использованием криптографического хэша. Microsoft Authenticode (TM) - это реализация Microsoft исполняемых файлов для цифровой подписи кода.
Подписание двоичных файлов Windows на Server Core Windows Server 2019 Datacenter Edition с помощью сообщества Visual Studio 2019. signtool.exe работал некорректно (проблемы с открытием файла PFX), поэтому нам посоветовали перейти на PowerShell + Set-AuthenticodeSignature. Используя следующие команд.
Я хотел бы знать, каковы последствия отказа от подписи кода SHA1 в пользу подписания кода только для SHA256 с октября 2018 года. В настоящее время я подписываю свои исполняемые файлы двойным кодом, чтобы гарантировать, что они будут проверены во всех версиях Windows, начиная с Windows 7 / Windows S.
Я пытаюсь выполнить проверку цепочки сертификатов для исполняемых файлов Windows, которая также включает проверку отозванных сертификатов, используя OpenSSL 1.0.2 C API. У меня есть файлы CRL, хранящиеся локально, и я хочу загрузить их во время проверки (в отличие от загрузки CRL через URL-адрес «То.
Я пытаюсь выяснить, есть ли возможность подписывать исполняемые файлы, созданные компилятором Go. Я не вижу этого в параметрах сборки / компиляции. Это вообще возможно.
У нас следующая ситуация. Файл .MSI после подписания с помощью signtool.exe отобразит следующее приглашение UAC: В том же файле .MSI после подписи с помощью специального инструмента, использующего API CryptUIWizDigitalSign, отображается следующая подсказка UAC: Мы хотим, чтобы файл .MSI отображ.
Я столкнулся с довольно интересной проблемой в отношении подписи Authenticode файла appxbundle UWP. Немного предыстории: клиент предоставил нам USB-токен SafeNet, содержащий сертификат подписи. Разумеется, закрытый ключ нельзя экспортировать. Я хочу иметь возможность использовать этот сертификат д.
Как я могу включить доступ к ключу в HSM при подписании как sha256? Когда я подписываю как sha1, инструмент подписи правильно извлекает ключ сертификата из HSM, но если я изменяю его на «/ fd sha256», ключ не может быть найден в контейнере. Я уверен, что signtool может получить доступ к контейнеру.
Я разрабатываю приложение UWP для распространения вне магазина и вне управляемых сред. Я намерен создать пакет appx и разместить его на веб-сайте для прямой загрузки: пользователи должны иметь возможность дважды щелкнуть его и получить Установщик приложений сделает все остальное, как и традиционный .
В 2014 году я купил сертификат подписи кода второго класса от StartSSL, который я использовал для цифровой подписи своих двоичных файлов. Срок действия этого сертификата только что истек, и я пытаюсь получить новый. Однако в не связанном с этим инциденте я запустил одну из моих подписанных програм.
Мне удалось подписать файл js с помощью PowerShell Set-AuthenticodeSignature. После этого я вижу, что в файле появилась подпись в виде: // SIG // Begin signature block // SIG // MIIKgAYJKoZIhvcNAQcCoIIKcTCCCm0CAQExCzAJBgUr // SIG // . // SIG // End signature block Я могу проверить подпись с пом.
При подписании моего развертывания ClickOnce через страницу настроек проекта Visual Studio «Подписывание» я указал наш сертификат SHA2 (SHA256) EV Authenticode и опубликовал его. После публикации и попытки запустить загрузчик (setup.exe) в диалоговом окне ClickOnce отображается «Неизвестный издател.
Универсальные приложения для Windows хранятся в файле .appx, который представляет собой просто архив из нескольких файлов и метаданных. Большинство файлов метаданных подробно документированы на веб-сайте Microsoft, и их несложно проанализировать и / или восстановить. Однако AppxSignature.p7x остае.
Authenticode является технологией, разработанной компанией Microsoft, чтобы компьютеры делали проверку происхождения программ, документов и других файлов на компьютере.
Что такое Authenticode и как он используется?
Наиболее распространенное использование Authenticode удостоверение программного обеспечения, которое работает на Microsoft Windows. Цифровая подпись Authenticode позволяет быть уверенным, что программное обеспечение является подлинным, а не троянской прграммой или другой вредоносной программой под видом другого продукта. Она также позволяет обнаружить, если программа была изменена — например, заражена вирусом.
Цифровая подпись Authenticode сама по себе не доказывает, что устанавливаемое программное обеспечение безвредно. Тем не менее, лица или организации, которые подписали программное обеспечение должны доказать, кто они такие, для органа выдавшего сертификат. Поэтому они прослеживаются, что делает маловероятным, что файл с цифровой подписью будет намеренно вредоносным.
Как узнать, подписано программное обеспечение или нет
Текущие версии основных веб-браузеров, работающих под ОС Windows отобразят предупреждение системы безопасности при запуске программного обеспечения, загруженного из Интернета, которая показывает, имеет ли скачиваемый файл цифровую подпись или нет.
Данный файл не имеет цифровой подписи.
У этого файла есть цифровая подпись.
Вы также можете узнать, является ли программное обеспечение на жестком диске с цифровой подписью или нет, нажав правой кнопкой мыши на файл в Windows Explorer и выберите пункт Свойства. Если программа была подписана в окне свойств появиться вкладка Цифровые подписи, демонстрируя, кто подписал файл и когда они его подписали.
Программное обеспечение без знака,это опасно?
Все цифровые подписи Authenticode являются гарантией того, что программное обеспечение было произведено лицами или компаниями, указанными в сертификате, который был проверен в органе, выдавшим сертификат. Но Вы всё ещё должны решить для себя, стоит ли доверять, этому лицу или компании.
Программное обеспечение не всегда опасно именно потому, что не имеет цифровой подписи. Это не является обязательным для подписания кода, прежде чем он будет работать под Windows, поэтому многие разработчики программного обеспечения не беспокоятся . И, хотя сертификат подписывания кода не особо дорогой ($ 179 только за один год на подписание сертификата кода Comodo), много любителей программистов и условных-разработчиков делают мало или вообще не получают деньги от своих программ и не чувствуют, что они могут себе этого позволить. В этом случае вы должны использовать свои собственные суждения относительно того, что вы загрузили программное обеспечение которое является подлинным, а также того,что этот разработчик заслуживает доверия.
Как получить сертификат Authenticode?
Если Вы являетесь разработчиком программного обеспечения или другим дистрибьютором компьютерных файлов, вы можете получить сертификат издателя программного обеспечения (более известный как свидетельство подписания кода) с центром сертификации, такими как Comodo, Thawte или Verisign Вы должны заплатить взнос, а затем подать документы в центр сертификации, чтобы доказать, кто вы и за кого вы себя выдаёте. Если ваше приложение пройдёт успешно, вы получите цифровой сертификат, который можно использовать для подписи исполняемых файлов с помощью инструментов, предоставляемых Microsoft.
У меня есть самозаверяющий сертификат для подписи кода (составленный в соответствии с инструкциями из этого ответа ), и он отлично работает, когда Я использую signtool.exe . Но если я попытаюсь подписать его с помощью Powershell, произойдет сбой.
Подписание с помощью signtool
Почему я могу подписаться, используя signtool.exe, а не Powershell?
P.S. выполнение Get-Childitem cert:\CurrentUser\My -CodeSigningCert не возвращает результатов.
3 ответа
У меня возникла та же проблема, и я понял, что мне нужно было создать два сертификата . Во-первых, доверенный корневой центр сертификации, использующий
А затем личный сертификат из вышеуказанного центра сертификации с помощью
Как только они будут созданы, используйте
для подписи (при условии, что у вас есть только один сертификат кодовой подписи). Например, если имя сценария xyz.ps1, используйте эту команду в PowerShell
Согласно сертификату получения справки -CodeSigningCert динамический параметр от поставщика сертификатов получает только те сертификаты с правами подписи кода.
Теперь, почему signtool может подписывать, а не Set-AuthenticodeSignature , объяснение может быть в введении в Подписание кода документ Microsoft.
Вот моя версия создания центра сертификации:
Вот моя версия генерации сертификата dev:
Проблема в том, что сертификат подписи искажен и отсутствует правильный KU & EKUs. Я лично рекомендую использовать OpenSSL через openssl.cnf для генерации сертификатов.
OpenSSL KUs & EKUs
Сертификаты подписи кода должны иметь следующий набор:
keyUsage = critical, nonRepudiation, digitalSignature
- nonRepudiation
- Сертификат может использоваться для подписи данных, как указано выше, но открытый ключ сертификата может использоваться для предоставления услуг, не вызывающих сомнений
- Это предотвращает ложное отклонение подписывающим объектом какого-либо действия
- Сертификат может использоваться для применения цифровой подписи
- Цифровые подписи часто используются для проверки подлинности объекта & аутентификация источника данных с целостностью
extendedKeyUsage = critical, codeSigning, msCodeInd, msCodeCom, mcCTLSign, timeStamping
Читайте также: