2012-06-21 5 views
4

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

  • Какие существуют случаи, когда разработчик или команда разработчиков хотят/должны иметь свой код?
  • Какие типы кодов могут/должны быть подписаны? JavaScript? Ява? C++? Существуют ли разные типы кодов для каждого языка/платформы?
  • Является ли код подписанным как исходный или скомпилированный двоичный файл?

Заранее спасибо.

ответ

2

Я полагаю, что теоретически любой код на любом языке может быть подписан, либо как источник, но чаще всего скомпилированный двоичный файл.

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

В двух словах код подписи позволяет конечному пользователю/машине узнать, откуда пришел код. А в случае модернизации сложно/невозможно изменить код, а другим загрузить его.

Яблоко сходит с кодом подписи для iOS, и я не полностью понимаю все подробности, но вам нужно получить сертификаты (да более 1) от Apple и подписать их. Если вы хотите разместить приложение на тестирующем устройстве, вам понадобится еще один сертификат для подписывания и установки его на устройстве, иначе вы должны получить его в App Store (при условии одобрения Apple), где они, вероятно, подписывают его с некоторыми закрытый ключ для устройств iOS, чтобы узнать, что Apple одобрила его.

+0

Thanks @Russ (+1) - можете ли вы придумать какие-либо не мобильные (и реальные) приложения для подписи кода? Я чувствую, что подписание кодов предшествует современному увлечению мобильных приложений на милю. – IAmYourFaja

0

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

0

Какие существуют случаи, когда разработчик или команда разработчиков хотят/должны иметь свой код подписи?

Цифровые подписи означают разные вещи на разных платформах. Если вы пишете программное обеспечение Windows для настольных компьютеров, самым большим преимуществом подписания ваших исполняемых файлов является избавление от этого неприятного «Неизвестного издателя», предупреждающего, что Windows показывает пользователей с Windows XP с пакетом обновления 2 (SP2). На других платформах (Некоторые мобильные, Java, Flash, Office VBA Macros и т. Д.) Требуется код для повышения прав доступа.

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

Заканчивать это тоже: http://blog.ksoftware.net/2011/07/what-is-authenticode/

Какие типы кода могут/должны быть подписаны? JavaScript? Ява? C++? Существуют ли разные типы кодов для каждого языка/платформы?

В теории можно поставить цифровую подпись любого документа, но большую часть времени, когда люди говорят о подписании кода они говорят о MS Authenticode (прикрепление цифровой подписи любого файла формата PE (EXE, DLL, COM и т.д.) или подписывания исполняемых файлов для OSX/прошивкой.

Существуют различные типы подписания на различных платформах, но большинство из них будет использовать тот же сертификат.

ли подписанный код в качестве исходного источника или скомпилированный двоичный файл?

В большинстве случаев двоичный код.

Смежные вопросы