- Adobe air signing
- Android
- Code signing for apple
- Comodo ev ssl certificate купить от 13427 ₽ в год —
- Java code signing
- Kernel mode signing
- Microsoft authenticode
- Microsoft office vba signing
- Microsoft windows phone
- Private key security
- Product specification
- Qualcomm brew
- Signing certificates
- Какие бывают виды code signing сертификатов, и чем отличаются?
- Несколько слов про timestamp.
- Несколько советов.
- Процесс подписи кода.
- Процесс проверки подписанного кода.
- Центр сертификации
- Подведем итог
Adobe air signing
Для подписи файлов .air
Требуется для всех приложений, основанных на AIR
Android
Для подписи и оптимизации .apk файлов для платформы Android
Code signing for apple
Позволяет разработчикам подписывать программы для Mac OS, а также обновления для программного обеспечения
Comodo ev ssl certificate купить от 13427 ₽ в год —
GeoTrusthttps://www.my-sertif.ru/netcat_files/1113/geotrust.jpgGeoTrust True BusinessID EV16307,1975012,9
Thawtehttps://www.my-sertif.ru/netcat_files/1118/thawte.jpgThawte SSL Web Server EV14975,7368888,35
DigiCert (ex. Symantec)https://www.my-sertif.ru/netcat_files/1121/symantec.jpgDigiCert Secure Site EV
DigiCert (ex. Symantec)https://www.my-sertif.ru/netcat_files/1122/symantec.jpgDigiCert Secure Site Pro EV93727,4398341,44
Sectigo (ex. Comodo)https://www.my-sertif.ru/netcat_files/1413/comodo.jpgComodo EV SSL MultiDomain MDC32705,61130822,45
DigiCert (ex. Symantec)https://www.my-sertif.ru/netcat_files/1425/symantec.jpgDigicert Basic EV29607,19261171,53
Java code signing
Для подписи Java апплетов. Позволяет подписывать .jar файлы и Java приложения для настольных и мобильных устройств.
Распознается Java Runtime Environment (JRE)
Kernel mode signing
Сертификаты разработчика Kernel-Mode позволяют подписывать, так называемые kernel-mode приложения и драйвера устройств. 64 битная версия Windows Vista и Windows 7 требуют, чтобы все kernel-mode приложения были подписаны сертификатом и доверенного центра сертификации.
Microsoft authenticode
Для подписи 32 и 64 битных файлов (.exe, .cab, .dll, .ocx, .msi, .xpi и .xap файлы). Также позволяет подписывать код для Microsoft® Office, Microsoft VBA, Netscape Object Signing и Marimba Channel Signing.
Поддерживает приложения на Silverlight 4
Microsoft office vba signing
Подписывает VBA объекты, скрипты и макросы для файлов Microsoft Office .doc, .xls, и.ppt
Для Microsoft Office и дополнений, которые используют VBA
Microsoft windows phone
Для цифровой подписи приложений для Windows Phone и Xbox 360. Требуется для сервиса Microsoft App Hub
Private key security
Typically a private key is stored on a server, where even the most stringent protection can occasionally fail, leading to unauthorized access to the private key. If a private key is ever compromised, it means that someone can effectively forge your signature and sign dangerous software. This can be catastrophic for your reputation across all platforms.
EV Code Signing takes a matter of digital security and turns it into a matter of physical security by storing the Private Key on an external hardware token.
Product specification
- Instant customer confidence – Code and content are safe to download
- Verifies identity
- Maintains authenticity
- Improves conversion rates
- Creates a trusted distribution outlet
- Protects the integrity of software publisher
- Works across all major platforms (MS, Adobe AIR, Java, Mozilla and many more)
- Widely supported
- Issuance within a 1-5 Days
Qualcomm brew
Для тех, кто разрабатывает приложения под платформу BREW (Binary Runtime Environment for Wireless)
Signing certificates
Document signing certificates provide trusted assurance of authentication for electronically transmitted documents by validating author and document. Digital certificates give customers confidence that the received documents originate from the recognized source and have not been forged or tampered with.
Certification originates from the Adobe Certified Document Services (CDS) or the Certificate Authorities that are members of the Adobe Approved Trust List (AATL). Certification attests that the signer has been verified by Adobe for compliance to its requirements and that the certificate is on the protected hardware
Какие бывают виды code signing сертификатов, и чем отличаются?
Прежде всего рассмотрим сертификаты, по центрам сертификации, которые их выпускают.
Лучше всего различия между сертификатами от разных центров сертификации показывает сводная табличка.В колонках указаны названия центров сертификации, а в в строках тип сертификата или технология/платформа для которой он используется.
стоит уточнить, что не все центры сертификации дают полную информацию о платформах, на которых работают их сертификаты, поэтому плюсом отмечены только те платформы, поддержка которых в явном виде заявлена центром сертификации.
Несколько слов про timestamp.
Timestamp или временная метка используется для указания времени, когда цифровая подпись была сделана. Если такая метка присутствует, то приложение, которое проверяет подпись проверит был ли сертификат, связанный с подписью валидным на момент подписи.
Пример:Сертификат действителен с: 01.01. 2008Сертификат действителен до: 31.12.2021Подпись сделана: 04.07.2009Подпись проверена: 30.04.2021
C временной меткой (timestamp) подпись пройдет проверку, поскольку на момент подписи сертификат был действителен. Без такой метки сертификат не пройдет проверку, поскольку на момент проверки у сертификата уже закончился срок.То есть такая метка позволяет использовать подписанный код, даже после срок окончания сертификата.
Несколько советов.
- Заявку на сертификат желательно оформлять с той же машины, с которой вы потом будете выполнять подпись ПО.
- Большинство центров сертификации рекомендуют генерировать заявку на сертификат через Internet explorer, хотя при генерации заявок через другие браузеры у нас также не было проблем.
Буду рад ответить на вопросы по сертификатам разработчика, в рамках своей компетенции, так как сам разработчиком не являюсь.Также буду рад дополнениям и уточнениям от тех, кто такими сертификатами пользуется.
UPD: добавил важную информацию про timestamp (временную метку), спасибо TolTol и crea7or
Процесс подписи кода.
- Издатель (разработчик) запрашивает Code Signing сертификат у центра сертификации
- Используя SIGNCODE.EXE или другую утилиту для подписи кода издатель, cоздает хеш кода, используя алгоритмы MD5 или SHA
- Кодирует хеш, с помощью приватного ключа
- Создает пакет, который включает в себя: код, зашифрованный хеш и сертификат издателя
Процесс проверки подписанного кода.
- Пользователь скачивает или устанавливает подписанное ПО и платформа или система пользователя проверяет сертификат издателя, который подписан корневым приватным ключем центра сертификации
- Система запускает код, используя тот же самый алгоритм создания хеша, как издатель и создает новый хеш
- Используя публичный ключ издателя, который содержится в сертификате, система расшифровывает зашифрованный хеш
- И сравнивает между собой 2 хеша
Центр сертификации
Когда разработчик запрашивает цифровой сертификат — центр сертификации идентифицирует его и выпускает сертификат, связанный с корневым сертификатом центра сертификации. Платформы и устройства содержат в себе корневой сертификат соответствующего центра сертификации.
В случае если хеши не совпадают вы получите ошибку при запуске такого ПО — это может означать, что ПО было модифицировано вирусом или злоумышленником.
Когда ПО расшифровывает цифровую подпись, оно проверяет также корневой сертификат в системе, источник проверенной информации. В случае использования самоподписного сертификата, вы получите ошибку: «издатель не может быть проверен». Поэтому важно использовать сертификаты того центра сертификации, чьи корневые сертификаты уже установлены в системе у предполагаемого пользователя программы.
О самом процессе верификации организации рассказывать не буду, так как он такой же как и для SSL сертификатов с валидацией организации, о чем мы уже говорили в прошлой статье.
Подведем итог
Для выбора сертификата сначала нужно выбрать центр сертификации, который выпускает сертификаты под нужную вам платформу, а дальше выбор по сути сводится к выбору по цене и по известности центра сертификации, зачастую клиенты выбирают те центры сертификации, с которым уже работали ранее.