Namespaces

Variants
Actions

Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

Подписывание приложений

From Wiki
Jump to: navigation, search
Article Metadata

Статья
Перевод:
Оригинал: Application Signing
Den123
Последнее редактирование: hamishwillee (16 Dec 2011)

Contents

Для чего подписывать приложения ?

Подписанное приложение - это приложение, которое подписано с помощью закрытого ключа. Для каждого закрытого ключа существует соответствующий открытый ключ и сертификат, например “ACS Publisher ID” сертификат или сертификат разработчика или собственноручно созданный сертификат (self-signed сертификат).

В момент установки подписанного приложения на устройство, установщик приложений проверяет подпись и публичный ключ с помощью корневого сертификата (root certificate) который содержит устройство. Если сертификат (с помощью которого подписано приложение) происходит от корневого - приложение считается надежным, если же приложение подписано с помощью ключа, которому соответствует собственный сертификат (self-signed, не происходит от корневого) - приложение считается ненадежным.

При установке "надежных" приложений выдается меньше предупреждений, приложение может получить больший набор возможностей (capabilities). При запуске подписанных Java-мидлетов от пользователя требуется меньше подтверждений при попытке доступа приложения к защищенным Java API.


Терминология

  • Подписывание - техническое действие, создание цифровой подписи программного пакета (SISX-файл S60, JAR-файла для Java) с помощью закрытого ключа. Каждой паре ключей (закрытый и открытый) соответствует сертификат, который может быть издан каким-либо центром сертификации, либо изготовлен собственноручно (self-signed). То, каким образом создан сертификат, на создание подписи никак не влияет, однако в дальнейшем, на основе готовой подписи будет вычисляться уровень доверия.
  • Сертификат - содержит информацию, идентифицирующую держателя, от которого исходит сертификат. Сертификаты издаются центрами сертификации (certification authority, издателями - Nokia или Verisign например), и подтверждают что пара ключей (открытый и закрытый) принадлежат объекту ('subject'), описанному в сертификате. Если сертификат создан собственноручно (self-signed) - тогда он не несет никакого уровня доверия, причиной его создания является техническая необходимость.
  • Сертификация означает, что приложение предварительно было протестировано согласно каким-то критериям, после чего было сертифицировано. Приложение подписывается с помощью ключа, сертификат которого происходит от корневого сертификата, который есть в конечном устройстве. Когда пользователь устанавливает такое приложение, устройство считает его "надежным". Установщик приложений проверяет цифровую подпись и убеждается в том, что приложение получено из надежных источников. Если приложение не сертифицировано (устройство не содержит соответствующего корневого сертификата), пользователь получит предупреждение во время установки. В предупреждении будет сказано, что приложение получено из ненадежных источников.
  • Выпуск сертификата - издание сертификата сертификационным центром для определенной пары ключей (открытый и закрытый). Это не сертификация приложения. Сертификационный цент и центр тестирования (который проверяет и сертифицирует приложения) это разные вещи.
  • Надежный программный пакет подписывается ключом, сертификат которого происходит от корневого сертификата. Пакеты, подписанные собственным сертификатом (self-signed) или неподписанные вообще, считаются ненадежными.


Договоренности в S60

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


Тестирование и подпись приложений

Во время тестирования приложения с помощью распространенного в отрасли тестирующего ПО (Symbian Signed или Java Verified) центр тестирования берет на себя проведение сертификации (подписывает приложение с помощью ключа, которому соответствует надежный сертификат) после того, как тесты будут пройдены.

This page was last modified on 16 December 2011, at 04:35.
229 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×