Предотвращение обхода защиты от копирования

StackOverflow https://stackoverflow.com/questions/203229

  •  03-07-2019
  •  | 
  •  

Вопрос

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

Действительно ли невозможно помешать взломщику обойти защиту от копирования?Почему?

Это было полезно?

Решение

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

Теоретически невзломаемая защита не только возможна, но и то, что мы продаем.Основная модель, которой следуют основные поставщики средств защиты от копирования (включая нас), заключается в использовании шифрования exe и dll, а также секретного ключа для расшифровки во время выполнения.

Есть три компонента:

  1. Очень сильное шифрование:мы используем 128-битное шифрование AES, которое эффективно защищено от грубой атаки.Когда-нибудь, когда квантовые компьютеры станут обычным явлением, их можно будет взломать, но неразумно предполагать, что вы сможете взломать это надежное шифрование для копирования программного обеспечения, а не для национальных секретов.

  2. Безопасное хранение ключей:если взломщик сможет получить ключ к шифрованию, вы будете залиты водой.Единственный способ ГАРАНТИРОВАТЬ, что ключ не будет украден, — это хранить его на защищенном устройстве.Мы используем ключ (он существует во многих вариантах, но ОС всегда видит его просто как съемный флэш-накопитель).Ключ хранится на чипе смарт-карты, который защищен от атак по побочным каналам, таких как DPA.Генерация ключей связана с множеством факторов, которые являются недетерминированными и динамическими, поэтому взлом единого ключа/мастер-ключа невозможен.Связь между хранилищем ключей и средой выполнения на компьютере также зашифрована, что позволяет предотвратить атаку «человек посередине».

  3. Обнаружение отладчика:По сути, вы хотите помешать взломщику сделать снимок памяти (после расшифровки) и создать из него исполняемый файл.Некоторые действия, которые мы делаем, чтобы предотвратить это, являются секретными, но в целом мы разрешаем обнаружение отладчика и блокируем лицензию, когда отладчик присутствует (это необязательная настройка).Мы также никогда полностью не расшифровываем всю программу в памяти, поэтому вы никогда не сможете получить весь код, «украв» память.

У нас есть штатный криптолог, который может взломать любую систему защиты.Он тратит все свое время на изучение того, как взломать программное обеспечение, чтобы мы могли предотвратить это.Так что вы не думаете, что это просто дешевая реклама того, что мы делаем, мы не уникальны:другие компании, такие как SafeNet и Arxan Technologies, также могут обеспечить очень надежную защиту.

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

Одна последняя вещь:Я думаю, что мы уникальны тем, что провели несколько открытых конкурсов, в которых мы предлагали людям систему и предлагали им взломать ее.У нас было несколько довольно крупных денежных призов, но нашу систему еще никто не взломал.Если независимый поставщик программного обеспечения возьмет нашу систему и внедрит ее неправильно, это ничем не отличается от установки на входную дверь большого замка, прикрепленного к дешевой засову с помощью шурупов для дерева - его легко обойти.Но если вы используете наши инструменты так, как мы предлагаем, мы считаем, что ваше программное обеспечение невозможно взломать.

ХТХ.

Другие советы

Нет, предотвратить это невозможно.Вы можете сделать это чрезвычайно сложно - некоторые версии Starforce, по-видимому, достигли этого за счет серьезного раздражения ряда «пользователей» (точнее, жертв).

Ваш код работает в их системе, и они могут делать с ним все, что захотят.Подключите отладчик, измените память, да что угодно.Вот так оно и есть.

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

Также стоит отметить, что пользователям может потребоваться взломать защиту от копирования для собственного использования;Я вспоминаю, как несколько лет назад играл в Diablo на своем ноутбуке, у которого не было внутреннего оптического привода.Итак, я загрузил крэк без компакт-диска, а затем несколько часов развлекался во время длительного полета на самолете.Принуждение к такой проверке и, следовательно, к тому, чтобы пользователи обходили ее, — это глупейшая ошибка.

Невозможно остановить это, не сломав свой продукт.Доказательство:

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

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

Или, короче говоря, так, как это видит конечный пользователь:
Steal This Comic

Потому что это фиксированная защита от думающего противника.

Военные теоретики забили этого до смерти, сколько тысячелетий назад?

Защита от копирования подобна безопасности: невозможно достичь 100% совершенства, но вы можете добавлять уровни, которые постепенно усложнят взлом.

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

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

Удачи!

Разница между безопасностью и защитой от копирования заключается в том, что с помощью безопасности вы защищаете актив от злоумышленника, одновременно обеспечивая доступ авторизованному пользователю.При защите от копирования злоумышленник и авторизованный пользователь — это одно и то же лицо.Это делает невозможным идеальную защиту от копирования.

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

В течение достаточно длительного периода времени выживаемость систем защиты от копирования равна 0.Все можно реконструировать, имея достаточно времени и знаний.

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

По сути, история показала нам, что максимум, что можно купить с защитой от копирования, — это немного времени.По сути, поскольку есть данные, которые вы хотите, чтобы кто-то видел одним способом, есть способ добраться до этих данных.Поскольку есть способ, которым кто-то может воспользоваться, чтобы получить доступ к данным.

Единственное, что может сделать любая защита от копирования или шифрование, — это сильно затруднить доступ к чему-либо.Если кто-то достаточно мотивирован, всегда есть способ обойти ситуацию грубой силой.

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

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

«Пытаться сделать биты некопируемыми — все равно, что пытаться сделать воду не мокрой». -- Брюс Шнайер

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

Как отмечали другие, защита от копирования служит только для наказания законных клиентов.У меня нет желания играть в Spore, но если бы я это сделал, я бы, скорее всего, купил ее, а затем установил взломанную версию, потому что на самом деле это лучший продукт из-за отсутствия наносящего вред системе SecuROM или схемы активации, лишающей свойства.

}} Почему?

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

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

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

Просто не стоит беспокоиться.Действительно.Если вы не защитите свое программное обеспечение, и оно хорошее, несомненно, кто-нибудь его украдет.Конечно, барьер будет низким.Но время, которое вы сэкономите, не беспокоясь, будет временем, которое вы сможете инвестировать в свой продукт, маркетинг, отношения с клиентами и т. д., создавая свою клиентскую базу на долгосрочную перспективу.

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

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

Если ваше программное обеспечение востребовано, у вас нет надежды против армии скучающих 17-летних.:)

В случае личного копирования/некоммерческого нарушения авторских прав ключевым фактором, по-видимому, является соотношение между ценой объекта и легкостью его копирования.Вы можете увеличить сложность копирования, но с уменьшающейся отдачей, как показано в некоторых предыдущих ответах.Другой вариант — снизить цену до тех пор, пока даже попытка загрузить его через BitTorrent не станет более обременительной, чем простая покупка.

На самом деле существует множество успешных примеров, когда автор нашел золотую середину ценообразования, что, безусловно, привело к большой прибыли для него.Попытка добиться 100% предотвращения несанкционированного копирования — безнадежное дело, вам нужно только привлечь большую группу клиентов, готовых платить, а не скачивать нелегально.То, что делает пиратское программное обеспечение дешевым, одновременно делает недорогим его публикацию.

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

То, что я описываю, по сути, представляет собой веб-сервис или другой SSL, именно этим сегодня занимается большинство компаний.

Минусы:Конкурент разработает оффлайн-версию того же продукта, пока вы закончите писать криптокод.

О средствах защиты, не требующих сети:

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

Другая схема, не использующая ключ, — это «расширенная защита».Я придумал это только сейчас, но работает это так:Существует приложение, которое сохраняет пользовательские данные и для которого пользователи могут покупать расширения и тому подобное у третьих сторон.Когда пользователь загружает данные или использует новое расширение, расширения и сохраненные данные также содержат код, который выполняет проверки.И, конечно же, эти проверки также защищены проверкой контрольной суммы.На бумаге это не так безопасно, как другая схема, но на практике это приложение все время наполовину взломано, так что оно в основном функционирует как пробная версия, несмотря на то, что оно взломано, поскольку взломанные программы всегда пропускают некоторые проверки и должны исправлять эти расширения по мере необходимости. хорошо.

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

Единственная причина, по которой этого не произошло, заключается в том, что издатели покупают единую защиту, которую они используют повсюду, что делает ее огромной мишенью, точно так же, как Windows является мишенью для вредоносных программ, любая защита, используемая более чем в одном приложении, является более серьезной мишенью.Таким образом, каждому необходимо создать свою собственную, уникальную многоуровневую расширенную защиту.Количество варез-релизов упадет примерно до дюжины релизов в год, если на взлом одного релиза самыми лучшими взломщиками уйдут месяцы.

Теперь немного теории маркетингового программного обеспечения:

Если вы считаете, что варез обеспечивает значительную маркетинговую ценность, это следует учитывать в бизнес-плане.Это может повлечь за собой очень-очень (слишком) базовую облегченную версию, которая по-прежнему будет стоить несколько долларов, чтобы гарантировать ее взлом.Затем вы будете регулярно привлекать пользователей с помощью «ограниченного по времени дешевого обновления с облегченной версии» и других тактик дополнительных продаж.Облегченная версия действительно должна иметь не более одной достойной покупки функции, а в остальном быть очень урезанной.Цена, вероятно, должна быть <10 $.Полная версия, вероятно, должна стоить вдвое дороже, чем цена обновления облегченной платной демо-версии за 10 долларов.например.Если полная версия стоит 80 долларов, вы предложите обновление с облегченной версии до полной версии за 40 долларов или что-то, что действительно кажется выгодной сделкой.Конечно, вам не следует раскрывать эти выгодные предложения покупателям, которые сразу купили издание за 80 долларов.

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

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

Однако будьте осторожны: существует так называемый «закон возрастающих ожиданий».Пример из игр:В стандартную коробку Ultima 4-6 входит тканевая карта, а в коллекционное издание Skyrim — карта из бумаги.Ожидания возросли, и некоторые люди не будут довольны бумажной картой.Вы хотите либо поддерживать постоянное качество продукции или услуг, либо заранее управлять ожиданиями.Я считаю, что это очень важно при рассмотрении этих вещей с добавленной стоимостью, поскольку вы хотите, чтобы они были желательно, но не становились все более дорогими в производстве и не превращались во что-то, что кажется настолько бесполезным, что противоречит цели.

Это тот случай, когда качественное программное обеспечение — это плохо, потому что, если никто не знает, что такое ваше программное обеспечение, они не будут тратить время, пытаясь его взломать, с другой стороны, такие вещи, как Adobe Master Collection CS3, были доступны всего через несколько дней после выпуска.

Итак, мораль этой истории такова: если вы не хотите, чтобы кто-то украл ваше программное обеспечение, есть один вариант:не пишите ничего, что стоит украсть.

Я думаю, что кто-то придумает способ динамического искусственного интеллекта, способный обойти все стандартные в настоящее время методы защиты от копирования;черт возьми, я бы очень хотел, чтобы мне заплатили за работу над этой проблемой.Как только они туда доберутся, будут разработаны новые методы, но это замедлит ход процесса.

Второй лучший способ для общества остановить кражу программного обеспечения — это строго наказать за нее и обеспечить соблюдение санкций.

Лучший способ — обратить вспять моральный упадок и тем самым повысить уровень честности в обществе.

Безнадежное дело, если я когда-либо слышал такое...конечно, это не значит, что вам не следует пытаться.

Лично мне нравится мнение Penny Arcade: «Циклический спор с буквальным соломенным человеком»альтернативный текст http://sonicloft.net/im/52

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top