×
Namespaces

Variants
Actions

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

From Nokia Developer 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 07:35.
92 page views in the last 30 days.
×