Приемы искажения программной метки диска защита от копирования
Цифровое пиратство — суровая реальность, с которой каждый день сталкиваются разработчики. Долгие часы вашей работы могут остаться без соответствующего вознаграждения, если вы не позаботитесь о защите. Разбираемся, как не допустить такой ситуации.
Что требуется от поставщика ключей
Если вы выберете вариант с ключами, то вдобавок к надёжной защите поставщик ключей должен обеспечить:
- простоту реализации;
- приемлемую скорость производства ключей — вы не должны ждать, пока поставщик предоставит новые ключи, чтобы продать больше вашего ПО;
- гибкость реализации и возможность настройки решения под ваши нужды;
- уверенность в том, что поставщику можно доверять и что ваше приложение не останется без поддержки на протяжении всего своего жизненного цикла;
- помощь в реализации решения, а также постоянную поддержку на случай, если вы решите обновить ваше ПО.
Виды защит
Как и говорилось выше, есть различные опции для защиты ПО от взлома и копирования. Эти опции могут отличаться по стоимости, уровню защиты и специализации.
Защита по «доверию». Здесь вы рассчитываете на то, что пользователи будут платить без всяких проблем. Один пользователь — одна лицензия, вечная. В принципе, затрат с вашей стороны практически нет. Как только приложение скомпилировано, его можно начать распространять. Но проблема в том, что если ваш продукт станет популярным, то кто-то точно его взломает, начав раздавать. Защиты от взлома в таком случае нет, она нулевая.
Офлайн-программная защита
Речь идет о защите без подключения к интернету. Обычно реализуется такая схема сразу после компиляции программы. Чаще всего используется программная оболочка с определенными настройками. Защищенная программа не подключается для проверки целостности ни к каким внешним серверам. В принципе, обойти такую защиту можно без всяких проблем.
Онлайн-программная защита
Здесь уже речь идет о более серьезном методе — проверке лицензии при помощи сервера лицензирования. В этом случае требуются относительно высокие затраты в начале и периодические расходы позже. Как и в предыдущем варианте, используется программная оболочка, но параметры лицензирования чекаются и настраиваются в онлайне.
При желании можно добавить опции проверки ПО: как используется, есть лицензия или нет. Если требуется постоянное подключение к сети, то продукт, скорее всего, будет работать не всегда и не везде.
Степень серьезности такой защиты — между средним и высоким уровнем.
Аппаратная защита
Один из наиболее надежных методов, который сочетает в себе преимущества всех прочих стратегий. За лицензирование отвечает электронный USB-ключ, которому не требуется подключение к сети. Цена каждого ключа для разработчика низкая, нет периодических дополнительных трат. Реализовать можно как при помощи API, так и посредством программной оболочки.
Достоинством такого метода является то, что лицензию можно убрать за пределы операционной системы, ключ хранится вне ПК. Ключ либо очень сложно, либо вообще невозможно скопировать. ПО, которое защищено при помощи аппаратного ключа, может использоваться на тех системах, где нет подключения к сети. Это, к примеру, правительственные объекты или промышленность. Еще один плюс в том, что электронному ключу не требуются различные решения для разных программных сред, а возможности лицензирования очень гибкие.
Решения на основе аппаратного ключа можно развернуть буквально за минуты, они поддерживаются практически любыми версиями операционных систем.
Правда, помните, что поставщик решения (если вы не можете создать аппаратный ключ самостоятельно) должен делать все быстро, чтобы не возникла необходимость ожидать партии ключей и, соответственно, переноса старта продаж вашего ПО. Также поставщик должен предоставить простое и эффективное решение, которое быстро разворачивается. Конечно, вы должны доверять поставщику — в противном случае его услугами пользоваться не стоит.
О защите ПО стоит подумать еще на стадии проектирования: после того как проект готов частично или полностью, изменить что-то будет непросто.
Существует 1000 и один способ защиты электронных документов от несанкционированного копирования. Но как только документ переходит в аналоговое состояние (согласно ГОСТ Р 52292–2004 «Информационная технология. Электронный обмен информацией. Термины и определения», понятие «аналоговый документ» включает в себя все традиционные формы представления документов на аналоговых носителях: бумаге, фото-и кинопленке и т. п. Аналоговая форма представления может быть преобразована в дискретную (электронную) форму с помощью различных методов оцифровки), количество способов его защиты от копирования резко сокращается, а стоимость их практической реализации также стремительно возрастает. Например, как это может выглядеть в «правильной» компании:
- Ограничить количество мест и применяемых технологий преобразования электронного документа в аналоговый.
- Ограничить количество мест и круг лиц, допущенных для ознакомления с содержимым аналоговых документов.
- Оборудовать места ознакомления с содержимым аналогового документа средствами видеофиксации, визуального контроля
- и т. п.
Компромиссом может стать применение нашего продукта SafeCopy.
Программная защита онлайн
Обязательное подключение к серверу лицензирования обычно приводит к росту трат для запуска и добавляет периодические расходы. Здесь тоже используется программная оболочка для защиты, однако благодаря тому, что параметры лицензирования вынесены в онлайн, появляется больше возможностей. Дополнительные опции позволяют отследить, где используется ПО, как используется, с лицензией или без. Из-за необходимости постоянного интернет-подключения ваш продукт, возможно, получится использовать не везде. Защита в данном случае — между средним и высоким уровнем, так как параметры лицензирования остаются на защищённых серверах лицензирования.
Но что можно сделать для защиты своего ПО?
Есть много различных решений для лицензирования и защиты программного обеспечения. Прежде чем выбрать какой-то для себя, стоит ответить на несколько важных вопросов.
Во-первых, необходимо определиться с тем, какой уровень защиты может понадобиться вашему конкретному проекту. Не стоит палить из пушки по воробьям, выбор должен быть адекватным. Многие разработчики совершают здесь ошибку, используя более мощную (и дорогую) защиту, чем в действительности нужно.
Во-вторых, нужно спросить себя, сколько вы готовы потратить на защиту. Ответ может быть сложным, поэтому, чтобы сделать правильный выбор, стоит проанализировать то, что может понадобиться именно вам.
Затем, когда вы со всем определитесь, можно начинать выбирать защиту, исходя из стратегии использования программного продукта.
Ключевые элементы защиты
Все начинается с выбора принципа лицензирования: необходимо выбрать, как за ваш продукт будут платить. Существует множество разновидностей, в целом их можно разделить на четыре типа:
- Одноразовый платеж. За ваше ПО платят раз, после чего могут пользоваться неограниченное время.
- Функциональные ограничения. Дополнительные возможности пользователь может открыть за дополнительную плату.
- Временная лицензия. Вы «сдаете приложение в аренду», то есть речь идет о подписке.
- Многоуровневая. Представляет собой комбинацию названных методов. Пользователь получает Silver-, Gold- или Platinum-версию ПО при соответствующей оплате.
Еще раз подчеркнем важность выбора адекватной защиты. Если вы собираетесь защитить свой велосипед методом, который применяется в Форт-Ноксе, это вряд ли можно назвать разумным. Есть и обратная зависимость: если хотите защитить Форт-Нокс, не используйте для этого велосипедный замок, это бесполезно, взлом гарантирован. В целом, стратегия лицензирования должна соответствовать цене самого продукта.
Кодовые диски (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“ и назовите символ в первом ряду второй колонки». Почти все игровые элементы были цветными, что делало невозможным использование копира, которые были черно-белыми в то время. Эту игру «спиратить» было практически невозможно.
Принцип защиты документов
С помощью SafeCopy для каждого получателя изготавливается уникальная копия документа, в которую с помощью аффинных преобразований вносится скрытая маркировка. При этом могут немного изменяться интервалы между строками и символами текста, наклон символов и т.д. Главный плюс такой маркировки – её нельзя убрать без изменения содержимого документа. Водяные знаки смываются обычным Paint, с аффинными преобразованиями такой фокус не пройдёт.
Копии выдаются получателям в печатном виде или в электронном pdf формате. В случае утечки копии можно гарантированно определить его получателя по уникальной совокупности искажений, вносимых в каждую копию. Поскольку маркируется весь текст, для этого достаточно буквально нескольких абзацев. Остальная страница может отсутствовать / быть помята / закрыта ладонью / залита кофе (нужное подчеркнуть). Чего мы только не видели.
Чего не может маркировка?
Маркировка – не панацея в борьбе с утечками данных и защите копий документов. Внедряя её на своём предприятии, важно понимать три ключевых ограничения:
Маркировка не запрещает копирование и фотографирование экземпляров документа. Но если сканы или фото документов «всплывут», она поможет в поиске нарушителя. По сути, защита копий носит превентивный характер. Сотрудники знают, что по фотографиям и копиям документов их гарантированно смогут определить и наказать, и либо ищут другие (более трудоемкие) пути «слива», либо вовсе отказываются от него.
Маркировка определяет, чья копия утекла, а не того, кто её слил. Пример из жизни – документ утёк. Маркировка показала, что утек экземпляр Ивана Неудачникова (имя и фамилия изменены). Служба безопасности начинает расследование и выясняется, что Иван оставил документ на столе в своём кабинете, где его сфотографировал злоумышленник. Ивану – выговор, службе безопасности – квест по поиску виновных среди людей, посещавших кабинет Неудачникова. Такой квест нетривиален, но более прост, чем поиск среди людей, посещавших кабинеты всех получателей документа.
Система доверия
Начальные траты равны нулю — вы надеетесь, что те, кто купит ваше ПО, не будут его распространять, и вы получите доход с каждого пользователя. Не нужна никакая предварительная подготовка или реализация: как только вы скомпилировали программу, её можно распространять. Проблема в том, что по мере роста количества пользователей, они неизбежно (не)намеренно начнут распространение. Про то, что при такой системе уровень защиты практически никакой, наверное, можно и не упоминать.
Прим.перев. В качестве примера можно привести редактор Sublime Text, который порой предлагает заплатить за него, но не вынуждает. И не забываем про многострадальный WinRar с его напоминаниями о том, что он — не бесплатная программа.
Программная защита оффлайн
Как правило, это недорогой вариант. Обычно такое решение реализуется после компиляции программы. Зачастую для защиты приложения используется программная обёртка с определёнными настройками. Когда программа запущена у пользователей, она не подключается ни к каким внешним системам. Так как все параметры лицензирования находятся на компьютере, на котором запускается ПО, такую защиту довольно просто обойти. Уровень защиты при использовании данного решения находится между низким и средним.
Аппаратная защита
Защита очень сильная, так как за лицензирование отвечает электронный USB-ключ, которому не нужно подключаться к интернету. Стоимость каждого ключа на каждую лицензию низкая; кроме того, отсутствуют периодические расходы. Реализовать можно с помощью API или программных обёрток.
Этот вариант — один из наиболее простых, надёжных и универсальных, так что остановимся на нём подробнее.
Прим.перев. Функции лицензирования можно разрабатывать самостоятельно, но это весьма непростой и трудоёмкий процесс. Опять же, можно воспользоваться готовым ПО для управления лицензированием, но оно, в свою очередь, тоже потребует лицензирования и будет стоить денег. Также можно поискать open-source библиотеки и решения для этих целей, вроде этой и этой.
Для чего пригодится маркировка?
Защита конфиденциальных документов. Сценарий описан выше. Кратко так: промаркировали копии, выдали их получателям и бдим. Как только копия документа «объявилась в неразрешенных местах», сравнили ее со всеми промаркированными копиями и оперативно определили владельца «объявившейся копии».
Чтобы определить шпиёна, поочередно накладываем «объявившуюся копию» на копию каждого получателя документа. У кого процент совпадения пикселей больше, тот и шпиён. Но лучше один раз увидеть на рисунке.
Наложение «объявившейся копии» на все промаркированные производится не вручную, а автоматически. Промаркированные копии в системе не хранятся, чтобы не проедать гигабайты диска впустую. Система хранит только набор уникальных признаков маркировки для каждого получателя и генерит копии мгновенно.
Проверка подлинности документов. Про методы изготовления защищённой полиграфической продукции можно почитать у Вики. По сути, они сводятся к изготовлению бланков с разного рода маркировкой – водяными знаками, специальными чернилами и т.д. Примеры такой продукции – банкноты, страховые полисы, водительские удостоверения, паспорта и т.д. Такую продукцию нельзя изготовить на обычном принтере. Зато на нём можно распечатать документ с аффинными преобразованиями текста. Что это даёт?
Распечатав бланк с незаметной маркировкой текста, можно проверять его подлинность просто по наличию маркировки. При этом уникальность маркировки позволяет не только проверить подлинность, но и установить конкретное физическое или юридическое лицо, которому был передан бланк. Если маркировки нет или она указывает на другого получателя, значит бланк фальшивый.
Такая маркировка может быть использована как самостоятельно, например, для бланков строгой отчётности, так и совместно с другими способами защиты, например, для защиты паспортов.
Привлечение нарушителей к ответственности. Крупные утечки стоят компаниям больших денег. Чтобы наказание нарушителя не ограничилось выговором, необходимо привлечь его к ответственности в суде. Мы запатентовали свой способ защиты документов, чтобы в суде результаты SafeCopy принимались в качестве доказательств.
Ключевые элементы защиты
Защита от копирования ПО начинается со стратегии лицензирования, которая определяет, как за ваш продукт будут платить. Вот некоторые из распространённых стратегий:
- Постоянная. Одноразовый платёж даёт неограниченный доступ к приложению.
- На основе функциональности. После покупки приложения дополнительные возможности открываются за отдельную плату.
- Временная. Приложение арендуется на определённое время, оплата взимается за продление этого срока.
- Многоуровневая. Версии ПО предлагаются на основе предопределённого пакета возможностей, например, Silver, Gold или Platinum.
Определившись со стратегией лицензирования, можно заняться поиском ПО, которое её реализует, сильно усложнив или даже сделав невозможным её обход.
Стратегия защиты ПО от копирования должна учитывать, где и как им будут пользоваться. Будет ли оно подключаться к интернету? Будет ли оно работать на обычном ПК или на встроенном устройстве? В защите от копирования нет универсального подхода на все случаи. Найдите решение, которое будет удовлетворять вашим критериям.
Искомое решение должно соответствовать вашим потребностям. Если рассматривать приведённую выше аналогию, то вам не нужно запирать велосипед в Форт-Ноксе, чтобы он был в безопасности. Точно так же не следует использовать замок от велосипеда для защиты чего-то вроде алмаза Хоупа. Лицензирование должно соответствовать ценности ПО.
Прим. перев. При построении стратегии лицензирования необходимо учитывать тот факт, что ваше ПО будут взламывать и, если захотят, обязательно взломают. Чтобы усложнить этот процесс, позаботьтесь об обфускации вашего кода, защите от отладки и дизассемблирования. Это можно сделать самостоятельно, а можно поискать готовые решения (как платные, так и бесплатные). При этом не забывайте, что программу при желании всё равно взломают, поэтому затраты денег и времени на лицензирование и защиту от взлома должны оправдывать цели — если ваше ПО малопопулярно, то и взламывать его не станут.
Как защитить ваш продукт?
Существует много решений для лицензирования и защиты, но перед тем, как выбирать, вам нужно задать себе несколько важных вопросов.
В первую очередь следует подумать, какой уровень защиты требуется вашему приложению. Сойдёт ли что-нибудь на уровне замка для велосипеда или же нужно нечто более существенное, как Форт-Нокс? Многие разработчики совершают ошибку на этом этапе и защищают приложение сильнее, чем необходимо.
Затем спросите себя о том, сколько вы готовы потратить на защиту. На этот вопрос нет правильного ответа, поэтому вам придётся провести небольшое исследование, чтобы узнать цены на те способы, которые вам подходят.
Когда вы со всем этим определитесь, можно начинать искать варианты защиты.
Ручной поиск
Это обычная защита для большого количества игр, включая Populous, X-Com: UFO Defense, Railroad Tycoon, Prophecy и множества других названий. В этом случае с игрой не продавались дополнительные элементы. Нужная для сверки с игрой информация содержалась в инструкции к игре. Нужные данные могли печататься на свободных страницах инструкции. В игре Populous пользователю показывали герб определенного мира и просили назвать этот мир. В инструкции же гербы с указанными названиями печатались в нижней части ряда страниц. Так что нужно было, порой, пролистать всю инструкцию для поиска требуемых данных. И без мануала играть было невозможно.
В Railroad Tycoon показывались изображения поездов, и нужно было назвать их. В Prophecy показывалось изображение врага, и нужно было идентифицировать этого персонажа. Такой метод защиты от копирования заставлял пользователя все время листать свою инструкцию, так что при активной игре мануалы уже через короткое время становились изрядно потрепанными. Паузы в игре, когда требовалось пройти проверку, очень раздражали, плюс тратилось время.
В Sim City использовался специальный буклет со страницами красного цвета, который вкладывался в коробку с игрой. В этом буклете было 4 страницы и 88 различных кодов. Все это было очень сложно прочитать, даже при ярком солнечном свете. Разработчики пытались таким образом защитить свой буклет от копира. И у них это получилось — «отксерить» документ было можно, но на выходе получался почти черный лист, где уже ничего понять было нельзя. Сколько игроков испортили зрение, неизвестно. Времени на работу с буклетом тоже уходило порядочно.
Меньше времени уходило на работу с защитным механизмом игры X-Com: UFO Defense. Здесь геймеру говорили, что именно нужно делать и куда смотреть. Обычно требовалось набрать код, расположенный на странице, которую называла игра. Разработчики других игр шли дальше, и в результате пользователю было нужно найти определенную строку текста на заданной странице и назвать такое-то по счету слово. Не очень креативно, но времени на это тоже не требовалось слишком много.
Не дайте своему труду пропасть зря
Хотя с пиратством ведётся борьба, это не значит, что можно пренебречь лицензированием и защитой ПО.
Вы вкладываете сотни, возможно, даже тысячи часов работы в ваш продукт; последнее, что вам нужно взамен, — чтобы кто-то украл вашу работу. Перед выпуском любого ПО нужно подумать о том, как вы собираетесь его лицензировать и защищать.
По статистике, приведенной в исследовании 2018 BSA Global Software Survey:
- Нелицензированное (пиратское) ПО составляет 37% от всего объема программного обеспечения, установленного на персональных ПК по всему миру.
- Стоимость контрафактного ПО оценивается в $46 млрд.
- Malware, которыми заражены многие пиратские программы, загружаемые из сторонних источников, обходятся бизнесу в $359 млрд в год.
- Потери от взлома лицензионного ПО составляют порядка $600 млрд ежегодно.
Skillbox рекомендует: двухлетний практический курс «Я — веб-разработчик PRO».
Напоминаем: для всех читателей «Хабра» — скидка 10 000 рублей при записи на любой курс Skillbox по промокоду «Хабр».
Разработчики программного обеспечения, которые создают платные продукты, вряд ли хотят потратить несколько лет своей жизни на программу, которую тут же взломают и станут использовать бесплатно. Проблемой могут стать и репутационные потери: например, при загрузке взломанного ПО определенной компании, которое заразит ПК пользователя внедренным злоумышленником вирусом, жертва, вероятно, будет обвинять в происшедшем не взломщика, а производителя.
Что касается доходов, то по данным BSA бизнес, который решит серьезно отнестись к защите своих программных продуктов, может рассчитывать на повышение прибыли примерно на 11% (впрочем, важно понимать, что это среднее значение).
Смешивать, но не взбалтывать
Если не интегрировать систему маркировки с другими корпоративными системами, то сфера её применения, скорее всего, будет ограничена только бумажным документооборотом, которого с годами становится всё меньше. Да и в этом случае использование маркировки вряд ли можно будет назвать удобным – придётся вручную загружать каждый документ и изготавливать для него копии.
Зато если сделать систему маркировки частью общего ИТ и ИБ ландшафта, становится заметным синергетический эффект. Наиболее полезны следующие интеграции:
Интеграция с СЭД. В СЭД выделяется подмножество документов, которые требуют маркировки. Каждый раз, когда новый пользователь запрашивает такой документ из СЭД, он получает его маркированную копию.
Интеграция с системами управления печатью. Системы управления печатью работают как прокси между ПК пользователей и принтерами в организации. Они могут определить, что отправленный на печать документ требует маркировки, например, по наличию метки конфиденциальности в атрибутах файла или по наличию файла в корпоративном хранилище конфиденциальных документов. В этом случае пользователь, отправивший документ на печать, получит из лотка принтера его маркированную копию. В более простом сценарии можно сделать отдельный виртуальный принтер, отправляя документы на который, из лотка будут выходить маркированные копии.
Интеграция с электронной почтой. Во многих организациях нельзя использовать электронную почту для рассылки конфиденциальных документов, но эти запреты часто нарушаются. Где-то из-за безалаберности, где-то из-за сжатых сроков или прямого указания руководства. Чтобы ИБ не была палкой в колесе прогресса и приносила компании деньги, мы предлагаем реализовать следующий сценарий, позволяющий безопасно рассылать по внутренней электронной почте и экономить на отправке документов с нарочным.
При отправке документа пользователь добавляет признак необходимости маркировки. В нашем случае – служебный адрес электронной почты. Почтовый сервер, получая письмо с таким признаком, изготавливает для каждого получателя копии всех вложений и рассылает их вместо оригинальных вложений. Для этого на почтовый сервер устанавливается компонент системы маркировки. В случае с Microsoft Exchange он исполняет роль т.н. транспортного агента. Работе почтового сервера этот компонент не мешает.
Сейчас, чтобы вы ни слушали, смотрели, во что бы не играли — 90% всего контента защищено авторским правом. Разработчики встраивают в свои продукты разнообразные «антипиратские» схемы защиты. Программное обеспечение требует лицензий, кодов, аутентификации пользователя в сети. Понятно, что все эти технологии защиты от «пиратов» не появились просто так. Многие годы они развивались и совершенствовались. Что было у истоков?
Разработчики программного обеспечения, включая игры, использовали защиту от копирования еще во времена, когда Интернета не было. В большинстве случаев защитные схемы были вовсе не цифровыми, а… аналоговыми.
Ранние схемы защиты от копирования были двух типов: кодовые диски и ручной поиск. Если скопировать игру или какое-то ПО было просто, то преодолеть подобный метод защиты было сложно, если не невозможно. Движущиеся элементы, окрашенные страницы, цикл «вопрос-ответ» — все это было довольно эффективным, хотя и раздражало некоторых пользователей. Причем тогда Интернет еще не стал тогда всемирной сетью. Никаких цифровых сканов, цветных копиров, брутфорса и прочего либо не было, либо все это было недоступно рядовому пользователю. Об аналоговых методах защиты можно говорить как о низких технологиях, которые помогали решать высокотехнологичные проблемы.
Картографическое подтверждение
Этот способ защиты от копирования использовали разработчики игры «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-редакторе, входившего в комплект ПО. В программе рассказывалось, что и где нужно изменять, чтобы в разных играх получать бесконечные жизни, много денег и т.п.
Так вот, количество установок программы было ограничено тремя инсталляциями. Каждый раз при установке ПО в специальный файл на диске добавлялся маркер. Как только количество маркеров достигало трех, программу больше нельзя было устанавливать. Если же владелец дискеты пытался защитить ее от записи, то ПО просто прекращало работать и не запускалось.
А вот еще один из методов защиты — обращение к покупателю, к его сознательности.
В то время, когда появилось это видео (показывали его по ТВ), пользователи ПК учились работать с загрузочными дискетами и расширенной памятью и частенько копировали друг у друга игры и программы. Интересно, сколько именно пользователей компьютеров, просмотрев это видео, отказалось от нелегального копирования вожделенной игры, взятой у друга?
Научный руководитель – Р.Т. ФАЙЗУЛЛИН, д.т.н.
Омский государственный университет
ЗАЩИТА КОМПАКТ-ДИСКА МЕТОДОМ ИСКАЖЕНИЯ ТАБЛИЦЫ СОДЕРЖАНИЯ
Защита программного продукта от несанкционированного копирования - актуальная задача в связи с сохранением коммерческих и авторских прав фирм и разработчиков.
Условно любую защиту можно разделить на две подсистемы: первая - представляет собой тот или иной способ постановки любой метки на носителе, которую было бы невозможно, или весьма затруднительно перенести (скопировать) или воспроизвести программными методами (эмулировать); вторая - это встраиваемый в защищаемое приложение модуль, который проверяет наличие заранее установленной метки.
Основой любой защиты можно считать ее способность к идентификации носителя, с которым она попала к пользователю. Уровень защиты на данном этапе должен быть таким, чтобы условная метка или характеристика, которая была присуща данному носителю, не воспроизводилась любыми средствами битового копирования (CloneCD, Alcohol 120% и другие), так как с них обычно и начинается взлом.
Одним из наиболее эффективных методов подобной защиты является искажение ТОСа (Table of Contents - таблица содержания). Примером подобной защиты AudioCD являются Easy Audio Lock и TZcopyprotection.
Для использования этого метода пишущий привод должен поддерживать режим RAW DAO (Disc At Once), а читающий привод должен уметь распознавать искаженный TOC, переходя в этом случае на использование "резервного" средства адресации – Q-канала подкода.
Для создания защищенного диска нужны: программа записи дисков, умеющая создавать многосессионные CD, копировщик защищенных дисков, сохраняющий содержимое TOC'a в текстовом файле, доступном для изменения и пишущий привод, поддерживающий режим записи DAO.
Записываем на CD-R или CD-RW диск две сессии в штатном режиме. Запускаем Clone CD и создаем образ оригинального диска. На жестком диске должны образоваться три записываемых файла (с расширениями CCD, IMG и SUB). CCD - файл управления CloneCD, содержащий информацию о логической структуре CD, IMG - образ, данные главного канала всех треков CD, SUB - данные подканала всех треков CDSub.
Теперь откроем файл с расширением CCD в любом текстовом редакторе. Каждый элемент ТОС начинается со строки [Entry X] (X – номер элемента) и имеет 14 полей: Session, Point, ADR, Control, TrackNo, AMin, ASec, AFrame, ALBA, Zero, PMin, PSec, PFrame (смысл и значения данных полей могут варьироваться в зависимости от номера элемента).
В третьем элементе содержится информация об абсолютном адресе начала первого трека первой сессии. Мы намерены изменить TOC, увеличив стартовый адрес этого трека, чтобы он вышел за пределы начальной сессии. Изменим значения параметров Pmin, PSec, PFrame (физический адрес сектора, выраженный в минутах, секундах и долях секунд) и PLBA (логический адрес сектора), так чтобы их значения превышали значения соотв. параметров второго элемента. PLBA адрес вычисляется по формуле: PLBA=(((PMin*60)+PSec)*75+PFrame)–150. Сохраним изменения и запишем искаженный образ на CD-R/CD-RW диск.
Копировщик Clone CD оценивает длину искаженного трека в 4294868664 байт и, обнаружив, что запись искаженного TOC'a на данном приводе невозможна, корректирует ее. Процесс записи протекает без каких-либо ошибок, и мы получаем работоспособный диск.
Попробуем скопировать этот диск при помощи трех самых распространенных копировщиков – Clone CD, Alcohol 120% и BlindWriter.
По статистике Clone CD диск содержит всего одну сессию с общей протяженностью в 6,9 мегабайт, но зато размер единственного трека последней составляет 3,99 терабайт. И после записи созданного образа первый трек читается без каких-либо ошибок, но второй исчезает.
Теперь попробуем скопировать при помощи Alcohol 120%, который видит обе сессии, но сохраняет в образ лишь вторую из них (Clone CD сохранял первую). На этот раз после записи присутствуют оба трека, но второй читается без проблем, а первый не читается вообще.
Записанный при использовании BlindWriter диск не определился ни в одном из приводов и стирание его оказалось невозможным во всех программах, в том числе и тех, что игнорируют некорректную ТОС.
Основные преимущества использования электронных ключей
Электронные ключи — лучший выбор для лицензирования и защиты ПО. Такая защита быстро и легко реализуется с помощью программной обёртки. Для большей гибкости можно встроить API в ваше ПО или даже добавить сочетание обёртки с интегрированным API.
Электронные ключи дают много преимуществ, начиная с форм-фактора. Наличие физического ключа даёт возможность убрать лицензию с компьютера. С внешним ключом, расположенным за пределами операционной системы, защита становится сильнее.
Переместить лицензию с одного компьютера на другой так же легко, как переподключить флешку. Защищённый электронный ключ нельзя прочитать или скопировать.
Использование электронного ключа исключает необходимость связываться с сервером лицензирования, поэтому вашим ПО можно воспользоваться в местах с ограниченным интернет-подключением вроде секретных правительственных объектов, где трафик либо сильно мониторится, либо вовсе запрещён. С электронными ключами не нужно создавать разные решения для разных сред.
Другие преимущества электронных ключей:
- повышенная безопасность интеллектуальной собственности, обеспеченная крепкой связью между прошивкой ключа и вашим ПО;
- гибкие, почти неограниченные возможности лицензирования;
- невероятная простота реализации. Первоклассное решение на основе электронных ключей можно реализовать в считанные минуты, а не дни, недели или месяцы;
- поддержка нескольких платформ. Электронные ключи могут поддерживаться как всеми версиями Windows, так и машинами с Mac и Linux.
Типы защиты
Рассмотрим основные опции для защиты от копирования, включая стоимость, уровень защиты и реализацию.
Читайте также: