Главная » Разработка для Android » ПЕРЕДАЧА ПРОГРАММЫ ПОЛЬЗОВАТЕЛЮ – ANDROID ПРИЛОЖЕНИЯ

0

 

Рассмотрены все аспекты, важные при передаче вашего приложения пользователю. Мы сообщили вам все знания, необходимые для чтения образцов кода и написания простых приложений. Здесь мы завершим эту вводную часть и расскажем, что нужно для широкого распространения ваших приложений, их продажи (если вы ставите перед собой такую цель) и последующего получения денег от Google, который управляет рынком Android Market.

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

ПОДПИСЫВАНИЕ ПРИЛОЖЕНИЯ

Подписывание приложения, также называемое подписыванием кода, позволяет сообщать устройствам Android на рынке Android Market, а также при других вариантах распространения программы, какие приложения принадлежат обладателю данного цифрового сертификата разработчика. Кроме того, такой «документ» гарантирует, что код не претерпел никаких изменений с тех пор, как был подписан.

Шифрование с открытым ключом и криптографическое шифрование

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

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

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

Чтобы поставить на документ цифровую подпись, необходимо сделать следующее.

1. Рассчитать уникальный номер (так называемый хеш) из документа. Этот номер также называется профилем сообщения (message digest).

2. «Зашифровать» профиль сообщения закрытым ключом автора подписи. Так получается подпись.

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

Чтобы верифицировать подписанный документ, нужно выполнить следующее.

1. Рассчитать уникальный номер (хеш) из документа.

2. «Дешифровать» цифровую подпись при помощи открытого ключа, который должен результировать в то же число, что и хеш.

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

При верификации цифровой подписи мы также удостоверяемся, что цифровая подпись не была скопирована в другой документ. Цифровые подписи неразрывно связаны с документом, при создании которого они были рассчитаны.

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

В общем смысле любой электронный документ – любой набор битов – может иметь криптографическую подпись, а криптографические подписи, также называемые цифровыми подписями, можно использовать для подписывания документов, и этот способ не менее надежен, чем использование обычной подписи (автографа) владельца документа.

Источник: Android. Программирование на Java для нового поколения мобильных устройств

По теме:

  • Комментарии