Инструменты пользователя

Инструменты сайта


ru:7ways:resources:protection

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
ru:7ways:resources:protection [2015/02/16 10:15]
Артём создано
ru:7ways:resources:protection [2016/04/18 17:57] (текущий)
Константин [Обработка запросов программы на сервере провайдера]
Строка 2: Строка 2:
 Ресурсы программы могут быть защищены с помощью шифрования. Карты шифруются при конвертации, и каждый полученный файл ''.7w'' содержит информацию, используемую для получения доступа к картам. В отличие от карт, остальные виды ресурсов могут быть зашифрованы только в составе контейнера ''.7wz''. Информация, используемая для получения доступа к контейнеру, содержится в файле ''description.xml'', который находится в корне контейнера. Ресурсы программы могут быть защищены с помощью шифрования. Карты шифруются при конвертации, и каждый полученный файл ''.7w'' содержит информацию, используемую для получения доступа к картам. В отличие от карт, остальные виды ресурсов могут быть зашифрованы только в составе контейнера ''.7wz''. Информация, используемая для получения доступа к контейнеру, содержится в файле ''description.xml'', который находится в корне контейнера.
  
-Для шифрования ресурсов необходим **ключ поставщика** (''providerKey''), также называемый **ключом картографа** (''mapperKey''). Он представляет собой файл (обычно с расширением ''.key''), выдаётся поставщику компанией Navikey и даёт ему право шифровать ресурсы в течение определённого периода времени. Ключ поставщика также необходим для генерации **ключа пользователя**. Каждый ключ поставщика имеет уникальный числовой идентификатор (''providerId'').+Для шифрования ресурсов необходим **[[ru:7ways:resources:protection:providerkey|ключ поставщика]]** (''providerKey''), также называемый **ключом картографа** (''mapperKey''). Он представляет собой файл, выдаётся поставщику компанией Navikey и даёт ему право шифровать ресурсы в течение определённого периода времени. Ключ поставщика также необходим для генерации **[[ru:7ways:resources:protection:userkey|ключа пользователя]]**. Каждый ключ поставщика имеет уникальный числовой идентификатор (''providerId'').
  
-Непосредственно шифрование (и дешифрование) выполняется **ключом шифрования** (''encryptKey''). Каждый ключ имеет числовой идентификатор (''keyId''), уникальный в пределах одного поставщика. Ключ поставщика содержит внутри себя один ключ шифрования. Идентификатор такого ключа шифрования равен 1. Дополнительные ключи шифрования хранятся в отдельных файлах (обычно с расширением ''.key''). Они могут быть созданы с помощью конвертера карт или выданы компанией Navikey (один поставщик может использовать до 60 тыс. ключей шифрования).+Непосредственно шифрование (и дешифрование) выполняется **[[ru:7ways:resources:protection:encryptkey|ключом шифрования]]** (''encryptKey''). Каждый ключ имеет числовой идентификатор (''keyId''), уникальный в пределах одного поставщика. Ключ поставщика содержит внутри себя один ключ шифрования. Идентификатор такого ключа шифрования равен 1. Дополнительные ключи шифрования хранятся в отдельных файлах. Они могут быть созданы с помощью [[ru:7ways:resources:protection:keymaster|утилиты KeyMaster]] или выданы компанией Navikey (один поставщик может использовать до 65534 собственных ключа шифрования).
  
 ===== Схемы защиты ресурсов ===== ===== Схемы защиты ресурсов =====
-Чтобы открыть зашифрованные ресурсы, программа должна обладать подходящим ключом шифрования. Возможны следующие схемы организации работы с зашифрованными ресурсами+Чтобы открыть зашифрованные ресурсы, программа должна обладать подходящим ключом шифрования. Ниже описаны возможные схемы организации работы с зашифрованными ресурсами. Все схемы можно использовать совместно.
-  * Ключ шифрования встроен в программу и всегда активен. В этом случае пользователь сразу получает доступ к зашифрованным ресурсам без каких-либо действий с его стороны. Этот вариант возможен в [[ru:7ways:brand|брендовой]] версии. +
-  * Посредством ключа пользователя. **Ключ пользователя** представляет собой файл (с расширением ''.key''), который в защищённом виде хранит ключ шифрования. Ключ пользователя имеет серийный номер, может быть привязан к устройству пользователя, иметь ограниченный срок действия. Для создания ключа пользователя используется конвертер карт. Программа навигации загружает ключи пользователя непосредственно из папки 7ways.+
  
 +==== Ключ шифрования встроен в программу и всегда активен ====
 +В этом случае пользователь сразу получает доступ к зашифрованным ресурсам без каких-либо действий с его стороны. Этот вариант возможен в [[ru:7ways:brand|брендовой]] версии программы.
 +
 +==== Использование ключа пользователя ====
 +**[[ru:7ways:resources:protection:userkey|Ключ пользователя]]** представляет собой файл (с расширением ''.key''), который в защищённом виде хранит ключ шифрования. Ключ пользователя может иметь ограниченный срок действия, серийный номер, может быть привязан к устройству пользователя. Пользователь должен вручную положить файл ключа в папку ''7ways''. Использование ключей пользователя невозможно в версии для iOS. Привязка ключа к устройству пользователя возможна на Windows, а также на Android-устройствах, которые не поддерживают покупки через приложение. Для создания ключа пользователя, привязанного к устройству, необходим **[[ru:7ways:resources:protection:requestfile|файл запроса]]**. Файл запроса может быть создан пользователем при открытии зашифрованных ресурсов и передан поставщику каким-либо способом.\\
 +В случае если устройство поддерживает покупки в приложении - то после совершения необходимых действий на сервер провайдера будет передан запрос включающий в себя содержимое файла запроса.
 +
 +==== Использование покупок в приложении ====
 +Этот вариант доступен на устройствах, которые поддерживают покупки через приложение (Android, iOS, Windows 10 и т.п.), при использовании ''7wz''-контейнера для хранения зашифрованных ресурсов. Для получения доступа к защищённым ресурсам пользователю необходимо оформить соответствующую покупку в магазине. 
 +Покупки делятся на разовые и покупки "подписок". В случае если пользователь купил "подписку" то с пользователя ежемесячно или ежегодно (в зависимости от условий) взимается установленная поставщиком плата. У подписки может быть установлен бесплатный пробный период (не менее 7 дней). После оформления подписки защищённые ресурсы становятся доступны на всех устройствах пользователя.\\
 +В случае приобретения разовой активации - условия ее работы контролируются поставщиком/провайдером контента.
 +Программа для получения ключа пользователя будет обращаться на сервер поставщика/провайдера.
 +
 +===== Ключи пользователя с привязкой к устройству =====
 +Для того чтобы использовать привязку к устройству, при шифровании ресурсов надо указать следующие данные:
 +  * имя файла запроса (''requestFileName'');
 +  * наименование поставщика (''mapperName'' или ''providerName'');
 +  * инструкции по получению ключа пользователя в случае, когда:
 +    * ключ пользователя отсутствует (''noKeyMsg''),
 +    * ключ есть, но имеет другой идентификатор (''badKeyMsg''),
 +    * срок действия ключа закончился (''expiredKeyMsg'').
 +
 +Когда пользователь пытается загрузить защищённый ресурс, при подготовке которого было указано имя файла запроса (''requestFileName''), программа выводит окно с предложением активировать ресурс. В окне указано наименование поставщика и список зашифрованных файлов. После получения согласия пользователя в папке ''7ways'' создаётся **[[ru:7ways:resources:protection:requestfile|файл запроса]]** и выводится окно с инструкциями по получению ключа (''noKeyMsg'', ''badKeyMsg'' или ''expiredKeyMsg''). Файл запроса представляет собой текстовый файл с именем ''requestFileName_providerId_keyId.txt'' (вместо параметров в имя файла подставляются их значения). Внутри файла содержатся:
 +  * инструкции;
 +  * идентификатор устройства пользователя;
 +  * идентификатор поставщика;
 +  * идентификатор ключа шифрования.
 +Если программа не смогла получить идентификатор устройства, выводится сообщение об ошибке и файла запроса не создаётся.
 +
 +Созданный файл запроса пользователь каким-либо образом передаёт поставщику. На основе файла запроса поставщик создаёт ключ пользователя и передаёт пользователю. Программа навигации при запуске загружает из папки ''7ways'' ключи пользователя, получая с их помощью доступ к зашифрованным ресурсам.
 +
 +===== Шифрование карт =====
 +Шифрование карт производится в процессе конвертирования.
 +  * Зашифрованными могут быть только сжатые карты. В GUI-версии конвертера должен быть установлен флажок **Compress & protect**. В консольной версии параметр ''compress'' должен быть равен 1 (по умолчанию).
 +  * Путь к файлу **[[ru:7ways:resources:protection:providerkey|ключа поставщика]]** задаётся в параметре ''mapperKey''.
 +  * Путь к файлу **[[ru:7ways:resources:protection:encryptkey|ключа шифрования]]** задаётся в параметре ''encryptKey''. Если карты требуется зашифровать ключом шифрования, который встроен в ключ поставщика, этот параметр нужно оставить пустым.
 +  * Параметр ''encryptRate'' определяет, сколько процентов от объёма файла карты подвергается шифрованию: 0 -- шифрование не производится, 100 -- шифруется вся карта. Если значение меньше 100, зашифрованные блоки равномерно распределяются по файлу. Чем большая часть карты шифруется, тем хуже сжимается архиваторами полученный файл. По умолчанию 50.
 +Если планируется распространять карты самостоятельно, а не в составе ''7wz''-контейнера, и активировать с помощью ключа пользователя, то нужно также задать следующие параметры:
 +  * ''mapperName'' содержит наименование поставщика, которое увидит пользователь в окне с предложением создать файл запроса при выборе защищённого атласа.
 +  * ''requestFileName'' содержит имя файла запроса, который будет создан, если пользователь 
 +
 +Наименование поставщика и инструкции можно указать на нескольких языках. Для этого после имени параметра ставится двоеточие и код языка по [[wp>List_of_ISO_639-1_codes|ISO 639-1]], например ''providerName:ru''. Параметр для языка по умолчанию (без двоеточия и кода языка) обязательно должен присутствовать, он используется, когда нет локализованной версии для языка пользователя.
 +
 +===== Шифрование ресурсов =====
 +
 +Для шифрования ресурсов необходима утилита [[ru:7ways:resources:protection:keymaster|KeyMaster]].\\
 +Провайдер может создавать защищенный контент только в случае если этот контент представлен в виде [[ru:content:first|контейнера]] ''7wz''.
 +
 +===== Обработка запросов программы на сервере провайдера =====
 +
 +Для корректной работы системы защиты, провайдер должен обеспечить обработку запросов на получение ключа. Данные запросы программа отсылает в момент попыток получения доступа к ресурсам, а также в итоге совершенных действий пользователя:
 +  * Покупки ресурса в магазине
 +  * Введения кода покупки 
 +  * Попытки восстановления покупок
 +
 +Программа делает [[ru:content:activateurl|запрос]] по ссылке указанной в [[ru:content:description.xml|description.xml]] защищенного контейнера. 
ru/7ways/resources/protection.1424056509.txt.gz · Последнее изменение: 2015/02/16 10:15 — Артём