- Как защитить ПО от копирования и взлома
- Авторизуйтесь
- Как защитить ПО от копирования и взлома
- Как защитить ваш продукт?
- Ключевые элементы защиты
- Типы защиты
- Система доверия
- Программная защита оффлайн
- Программная защита онлайн
- Аппаратная защита
- Основные преимущества использования электронных ключей
- Что требуется от поставщика ключей
- Не дайте своему труду пропасть зря
- Раритетные схемы защиты от копирования игр и ПО — какими они были?
- Во многих случаях методы, используемые в 80-е года прошлого века, были эффективнее современных
- Кодовые диски (Code Wheels)
- Ручной поиск
- Картографическое подтверждение
Как защитить ПО от копирования и взлома
Авторизуйтесь
Как защитить ПО от копирования и взлома
Цифровое пиратство — суровая реальность, с которой каждый день сталкиваются разработчики. Долгие часы вашей работы могут остаться без соответствующего вознаграждения, если вы не позаботитесь о защите. Разбираемся, как не допустить такой ситуации.
Как защитить ваш продукт?
Существует много решений для лицензирования и защиты, но перед тем, как выбирать, вам нужно задать себе несколько важных вопросов.
В первую очередь следует подумать, какой уровень защиты требуется вашему приложению. Сойдёт ли что-нибудь на уровне замка для велосипеда или же нужно нечто более существенное, как Форт-Нокс? Многие разработчики совершают ошибку на этом этапе и защищают приложение сильнее, чем необходимо.
Затем спросите себя о том, сколько вы готовы потратить на защиту. На этот вопрос нет правильного ответа, поэтому вам придётся провести небольшое исследование, чтобы узнать цены на те способы, которые вам подходят.
Когда вы со всем этим определитесь, можно начинать искать варианты защиты.
Ключевые элементы защиты
Защита от копирования ПО начинается со стратегии лицензирования, которая определяет, как за ваш продукт будут платить. Вот некоторые из распространённых стратегий:
- Постоянная. Одноразовый платёж даёт неограниченный доступ к приложению.
- На основе функциональности. После покупки приложения дополнительные возможности открываются за отдельную плату.
- Временная. Приложение арендуется на определённое время, оплата взимается за продление этого срока.
- Многоуровневая. Версии ПО предлагаются на основе предопределённого пакета возможностей, например, Silver, Gold или Platinum.
Определившись со стратегией лицензирования, можно заняться поиском ПО, которое её реализует, сильно усложнив или даже сделав невозможным её обход.
Стратегия защиты ПО от копирования должна учитывать, где и как им будут пользоваться. Будет ли оно подключаться к интернету? Будет ли оно работать на обычном ПК или на встроенном устройстве? В защите от копирования нет универсального подхода на все случаи. Найдите решение, которое будет удовлетворять вашим критериям.
Искомое решение должно соответствовать вашим потребностям. Если рассматривать приведённую выше аналогию, то вам не нужно запирать велосипед в Форт-Ноксе, чтобы он был в безопасности. Точно так же не следует использовать замок от велосипеда для защиты чего-то вроде алмаза Хоупа. Лицензирование должно соответствовать ценности ПО.
Прим. перев. При построении стратегии лицензирования необходимо учитывать тот факт, что ваше ПО будут взламывать и, если захотят, обязательно взломают. Чтобы усложнить этот процесс, позаботьтесь об обфускации вашего кода, защите от отладки и дизассемблирования. Это можно сделать самостоятельно, а можно поискать готовые решения (как платные, так и бесплатные). При этом не забывайте, что программу при желании всё равно взломают, поэтому затраты денег и времени на лицензирование и защиту от взлома должны оправдывать цели — если ваше ПО малопопулярно, то и взламывать его не станут.
Типы защиты
Рассмотрим основные опции для защиты от копирования, включая стоимость, уровень защиты и реализацию.
Система доверия
Начальные траты равны нулю — вы надеетесь, что те, кто купит ваше ПО, не будут его распространять, и вы получите доход с каждого пользователя. Не нужна никакая предварительная подготовка или реализация: как только вы скомпилировали программу, её можно распространять. Проблема в том, что по мере роста количества пользователей, они неизбежно (не)намеренно начнут распространение. Про то, что при такой системе уровень защиты практически никакой, наверное, можно и не упоминать.
Прим.перев. В качестве примера можно привести редактор Sublime Text, который порой предлагает заплатить за него, но не вынуждает. И не забываем про многострадальный WinRar с его напоминаниями о том, что он — не бесплатная программа.
Программная защита оффлайн
Как правило, это недорогой вариант. Обычно такое решение реализуется после компиляции программы. Зачастую для защиты приложения используется программная обёртка с определёнными настройками. Когда программа запущена у пользователей, она не подключается ни к каким внешним системам. Так как все параметры лицензирования находятся на компьютере, на котором запускается ПО, такую защиту довольно просто обойти. Уровень защиты при использовании данного решения находится между низким и средним.
Программная защита онлайн
Обязательное подключение к серверу лицензирования обычно приводит к росту трат для запуска и добавляет периодические расходы. Здесь тоже используется программная оболочка для защиты, однако благодаря тому, что параметры лицензирования вынесены в онлайн, появляется больше возможностей. Дополнительные опции позволяют отследить, где используется ПО, как используется, с лицензией или без. Из-за необходимости постоянного интернет-подключения ваш продукт, возможно, получится использовать не везде. Защита в данном случае — между средним и высоким уровнем, так как параметры лицензирования остаются на защищённых серверах лицензирования.
Аппаратная защита
Защита очень сильная, так как за лицензирование отвечает электронный USB-ключ, которому не нужно подключаться к интернету. Стоимость каждого ключа на каждую лицензию низкая; кроме того, отсутствуют периодические расходы. Реализовать можно с помощью API или программных обёрток.
Этот вариант — один из наиболее простых, надёжных и универсальных, так что остановимся на нём подробнее.
Прим.перев. Функции лицензирования можно разрабатывать самостоятельно, но это весьма непростой и трудоёмкий процесс. Опять же, можно воспользоваться готовым ПО для управления лицензированием, но оно, в свою очередь, тоже потребует лицензирования и будет стоить денег. Также можно поискать open-source библиотеки и решения для этих целей, вроде этой и этой.
Основные преимущества использования электронных ключей
Электронные ключи — лучший выбор для лицензирования и защиты ПО. Такая защита быстро и легко реализуется с помощью программной обёртки. Для большей гибкости можно встроить API в ваше ПО или даже добавить сочетание обёртки с интегрированным API.
Электронные ключи дают много преимуществ, начиная с форм-фактора. Наличие физического ключа даёт возможность убрать лицензию с компьютера. С внешним ключом, расположенным за пределами операционной системы, защита становится сильнее.
Переместить лицензию с одного компьютера на другой так же легко, как переподключить флешку. Защищённый электронный ключ нельзя прочитать или скопировать.
Использование электронного ключа исключает необходимость связываться с сервером лицензирования, поэтому вашим ПО можно воспользоваться в местах с ограниченным интернет-подключением вроде секретных правительственных объектов, где трафик либо сильно мониторится, либо вовсе запрещён. С электронными ключами не нужно создавать разные решения для разных сред.
Другие преимущества электронных ключей:
- повышенная безопасность интеллектуальной собственности, обеспеченная крепкой связью между прошивкой ключа и вашим ПО;
- гибкие, почти неограниченные возможности лицензирования;
- невероятная простота реализации. Первоклассное решение на основе электронных ключей можно реализовать в считанные минуты, а не дни, недели или месяцы;
- поддержка нескольких платформ. Электронные ключи могут поддерживаться как всеми версиями Windows, так и машинами с Mac и Linux.
Что требуется от поставщика ключей
Если вы выберете вариант с ключами, то вдобавок к надёжной защите поставщик ключей должен обеспечить:
- простоту реализации;
- приемлемую скорость производства ключей — вы не должны ждать, пока поставщик предоставит новые ключи, чтобы продать больше вашего ПО;
- гибкость реализации и возможность настройки решения под ваши нужды;
- уверенность в том, что поставщику можно доверять и что ваше приложение не останется без поддержки на протяжении всего своего жизненного цикла;
- помощь в реализации решения, а также постоянную поддержку на случай, если вы решите обновить ваше ПО.
Не дайте своему труду пропасть зря
Хотя с пиратством ведётся борьба, это не значит, что можно пренебречь лицензированием и защитой ПО.
Вы вкладываете сотни, возможно, даже тысячи часов работы в ваш продукт; последнее, что вам нужно взамен, — чтобы кто-то украл вашу работу. Перед выпуском любого ПО нужно подумать о том, как вы собираетесь его лицензировать и защищать.
Источник
Раритетные схемы защиты от копирования игр и ПО — какими они были?
Во многих случаях методы, используемые в 80-е года прошлого века, были эффективнее современных
Источник: tvtropes.org
Сейчас, чтобы вы ни слушали, смотрели, во что бы не играли — 90% всего контента защищено авторским правом. Разработчики встраивают в свои продукты разнообразные «антипиратские» схемы защиты. Программное обеспечение требует лицензий, кодов, аутентификации пользователя в сети. Понятно, что все эти технологии защиты от «пиратов» не появились просто так. Многие годы они развивались и совершенствовались. Что было у истоков?
Разработчики программного обеспечения, включая игры, использовали защиту от копирования еще во времена, когда Интернета не было. В большинстве случаев защитные схемы были вовсе не цифровыми, а… аналоговыми.
Ранние схемы защиты от копирования были двух типов: кодовые диски и ручной поиск. Если скопировать игру или какое-то ПО было просто, то преодолеть подобный метод защиты было сложно, если не невозможно. Движущиеся элементы, окрашенные страницы, цикл «вопрос-ответ» — все это было довольно эффективным, хотя и раздражало некоторых пользователей. Причем тогда Интернет еще не стал тогда всемирной сетью. Никаких цифровых сканов, цветных копиров, брутфорса и прочего либо не было, либо все это было недоступно рядовому пользователю. Об аналоговых методах защиты можно говорить как о низких технологиях, которые помогали решать высокотехнологичные проблемы.
Кодовые диски (Code Wheels)
Многие игры поставлялись со специальными механическими устройствами, которые назывались «кодовые диски». Игра «Zany Golf», например, продавалась вместе с двумя картонными дисками, где одна окружность была немного меньше другой. На краях дисков были нанесены определенные слова. На меньшем диске были также прорези, расположенные спиралью. В определенный момент игры пользователю сообщалось слово с внешней стороны большего диска, слово с внешней стороны меньшего диска и код прорези, в которую нужно было смотреть.
Если игрок размещал оба диска правильно, то в названной прорези появлялся код, который нужно было ввести в игре для ее продолжения. В игре «Zany Golf» на диски наносили термины из гольфа. Схожим образом поступили и разработчики игры «Their Finest Hour». Там использовались названия самолетов Luftwaffe.
А разработчики игры SSI усложнили жизнь покупателям. Вместо обычных слов они взяли символы из языков фэнтезийных рас. Плюс на диске было три набора прорезей, каждый набор располагался строго в своей спирали. Такие диски было чрезвычайно сложно скопировать вручную. А если фотографировать или использовать копир, нужно было испортить всю конструкцию. Ну а какой уважающий себя гик будет уничтожать документацию к программному обеспечению? Конечно, диски копировались, но это были, скорее, единичные случаи.
Схожая система применялась и в Alone in the Dark 2. Здесь только были не картонные диски, а нечто вроде игровых карт с рядом геометрических элементов на одной из сторон. Эти карты были связаны с сюжетом игры, без них пройти Alone in the Dark 2 было невозможно. В определенный момент игры геймеру сообщалась пара значений карт, и номер прорези, куда надо было смотреть, накладывая одну карту на другую. Например «положите карту „3 of Diamonds“ на „Queen of Spades“ и назовите символ в первом ряду второй колонки». Почти все игровые элементы были цветными, что делало невозможным использование копира, которые были черно-белыми в то время. Эту игру «спиратить» было практически невозможно.
Ручной поиск
Это обычная защита для большого количества игр, включая Populous, X-Com: UFO Defense, Railroad Tycoon, Prophecy и множества других названий. В этом случае с игрой не продавались дополнительные элементы. Нужная для сверки с игрой информация содержалась в инструкции к игре. Нужные данные могли печататься на свободных страницах инструкции. В игре Populous пользователю показывали герб определенного мира и просили назвать этот мир. В инструкции же гербы с указанными названиями печатались в нижней части ряда страниц. Так что нужно было, порой, пролистать всю инструкцию для поиска требуемых данных. И без мануала играть было невозможно.
В Railroad Tycoon показывались изображения поездов, и нужно было назвать их. В Prophecy показывалось изображение врага, и нужно было идентифицировать этого персонажа. Такой метод защиты от копирования заставлял пользователя все время листать свою инструкцию, так что при активной игре мануалы уже через короткое время становились изрядно потрепанными. Паузы в игре, когда требовалось пройти проверку, очень раздражали, плюс тратилось время.
В Sim City использовался специальный буклет со страницами красного цвета, который вкладывался в коробку с игрой. В этом буклете было 4 страницы и 88 различных кодов. Все это было очень сложно прочитать, даже при ярком солнечном свете. Разработчики пытались таким образом защитить свой буклет от копира. И у них это получилось — «отксерить» документ было можно, но на выходе получался почти черный лист, где уже ничего понять было нельзя. Сколько игроков испортили зрение, неизвестно. Времени на работу с буклетом тоже уходило порядочно.
Меньше времени уходило на работу с защитным механизмом игры X-Com: UFO Defense. Здесь геймеру говорили, что именно нужно делать и куда смотреть. Обычно требовалось набрать код, расположенный на странице, которую называла игра. Разработчики других игр шли дальше, и в результате пользователю было нужно найти определенную строку текста на заданной странице и назвать такое-то по счету слово. Не очень креативно, но времени на это тоже не требовалось слишком много.
Картографическое подтверждение
Этот способ защиты от копирования использовали разработчики игры «Ultima». В коробку вкладывалась очень красочная и детализированная карта. Для подтверждения оригинальной игры пользователю нужно было искать ответ и в мануале, и на карте, на пересечении определенной долготы и широты. В порядке вещей были вопросы вроде «На какой долготе находится город Skara Brae?». А если учесть еще и то, что вся информация на карте была записана при помощи рун, то новичку приходилось туго — нужно было сначала все перевести (при помощи мануала), а потом уже искать долготу. Но это больше походило на развлечение, так что геймеры не очень жаловались.
Еще более интересной была комбинация цифровых и реальных элементов игры «Deadline» от Infocom. Разработчики не смогли уместить все игровые тексты на 80 КБ. И тогда было принято решение создать не цифровые, а реальные элементы игры с нужными текстами. Их оригинальным образом объединили с цифровым миром. Это была одновременно и защита от копирования и очень увлекательная игра, которую оценили и критики, и геймеры.
Оригинальная схема была задействована и разработчиками игры «Indianopolis 500: The Simulation». Во время виртуальных гонок игроку показывался пикселизованный портрет одного из победителей реальных гонок «Indy 500». С игрой поставлялся альманах с указанием всех победителей гонок за все годы. Игроку требовалось указать имя человека, которого он видел на экране дисплея. Или же геймера просили написать модель автомобиля, которым управлял этот гонщик.
А еще была игра «Where in the World is Carmen San Diego?», в коробку с которой вкладывалась копия «1990 World Almanac». Покупателю игры приходилось отвечать на вопросы вроде «Какое население в Замбии?». Это была и защита и одновременно образовательный инструмент.
Интересный способ защиты от копирования использовали разработчики первых версий ПО Game Guru, поставлявшихся на дискетах. Эта программа уже в те времена позволяла редактировать данные игры в hex-редакторе, входившего в комплект ПО. В программе рассказывалось, что и где нужно изменять, чтобы в разных играх получать бесконечные жизни, много денег и т.п.
Так вот, количество установок программы было ограничено тремя инсталляциями. Каждый раз при установке ПО в специальный файл на диске добавлялся маркер. Как только количество маркеров достигало трех, программу больше нельзя было устанавливать. Если же владелец дискеты пытался защитить ее от записи, то ПО просто прекращало работать и не запускалось.
А вот еще один из методов защиты — обращение к покупателю, к его сознательности.
В то время, когда появилось это видео (показывали его по ТВ), пользователи ПК учились работать с загрузочными дискетами и расширенной памятью и частенько копировали друг у друга игры и программы. Интересно, сколько именно пользователей компьютеров, просмотрев это видео, отказалось от нелегального копирования вожделенной игры, взятой у друга?
Источник