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

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

Разве не возможно предотвратить взломщик защиты от копирования? Зачем?

18 ответов

Решение

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

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

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

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

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

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

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

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

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

НТН.

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

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

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

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

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

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

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

Короче говоря, то, как конечный пользователь видит это:
Украсть этот комикс

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

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

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

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

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

Удачи!

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

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

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

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

"Попытка сделать кусочки не копируемыми - это все равно, что сделать воду не мокрой". - Брюс Шнайер

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

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

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

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

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

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

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

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

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

}} Зачем?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам