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

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

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


person Chance    schedule 14.10.2008    source источник


Ответы (18)


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

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

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

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

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

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

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

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

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

HTH.

person John Browne    schedule 22.03.2011
comment
Согласились, что это очень сильное шифрование. Однако вопрос был больше направлен на программные схемы. Специальное оборудование (№2) значительно усложнит взлом. - person UsAaR33; 27.04.2011
comment
Спасибо за информацию. На самом деле я не думал о кастомном оборудовании, но, возможно, это было наивно с моей стороны. - person Chance; 15.05.2011
comment
Вы можете сделать все три с помощью программного решения, но, как сказал UsAaR33, хранение генерации ключа в ключе намного безопаснее, чем только в программном обеспечении. Однако даже с помощью программного решения вы можете зашифровать свой код, что затруднит обратное проектирование или кражу алгоритмов. - person John Browne; 30.06.2011
comment
Теоретически нерушимый? Доказать, что любая система защиты от копирования ломается (теоретически), довольно легко. С другой стороны, практически невозможно взломать. Также следует отметить, что все (достаточно большие) программы содержат ошибки. Это означает, что теоретически нерушимая защита часто оказывается взломанной на практике. - person Hjulle; 26.08.2012
comment
Я поддерживаю точку зрения Хьюлла. Я предлагаю вам отредактировать этот отличный пост, чтобы убрать фразу теоретически нерушимая. Это заставило меня почти сразу перестать читать, потому что, очевидно, это неправильно. - person Dan Nissenbaum; 10.11.2014
comment
Это утверждение доказуемо ложно. Найдите клиента этой или другой компании, использующей аналогичную технологию. Узнайте, какие программные продукты они защищают с его помощью. Находите такие же на сайтах BitTorrent, взломанные. - person Eric; 04.01.2017
comment
Эрик, просто чтобы вы знали, что я больше этим не занимаюсь (работаю в другой компании / в другом доменном пространстве), поэтому я не спорю с вами. Но дело в том, что с помощью аппаратных ключей практически невозможно создать общий взлом приложения. Я делаю этот комментарий только потому, что существует так много неверной информации о защите от копирования в целом. - person John Browne; 21.02.2017

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

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

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

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

person Peter    schedule 14.10.2008

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

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

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

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

person Community    schedule 17.10.2008

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

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

person Tim Williscroft    schedule 14.10.2008
comment
Вот почему продукты, которые обновляются, обычно обновляют систему безопасности при каждой версии. - person Dan Rosenstark; 24.03.2010

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

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

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

Удачи!

person Jason Cohen    schedule 14.10.2008
comment
Я бы сказал, что защита от копирования - это не безопасность, а безопасность на многих уровнях. Еще несколько идей по усложнению работы - это забросить несколько исключений пораньше, проверить прикрепленный отладчик ПОСЛЕ этого и другие подобные забавные вещи. В конце концов, со временем все может измениться. - person Matthew Scharley; 15.10.2008
comment
Еще в 90-х годах мы предположили, что указание реквизитов кредитной карты клиентов в лицензии на программное обеспечение отговорит их от их распространения. Что еще продавец знает о покупателе такого, что он действительно не хочет, чтобы кто-то знал? Это просто эскалация конфликта до взятия заложников (см. Мой ответ ниже) - person Tim Williscroft; 16.11.2009
comment
@Tim - Хороший момент, в зависимости от ваших клиентов. Например, в Smart Bear 95% наших продаж осуществляется через заказы на покупку, так что это не работает. Но мне нравится это! - person Jason Cohen; 18.11.2009

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

person KeithB    schedule 16.10.2008

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

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

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

person Bob King    schedule 14.10.2008
comment
Мне нравится твоя ссылка на Бойцовский клуб. :-) - person Jason Cohen; 15.10.2008

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

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

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

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

person William    schedule 14.10.2008
comment
Согласованный. Поскольку автономные игры раньше приносили большую часть своей прибыли сразу после даты выпуска, казалось, что игровые компании будут продолжать повышать ставки с пиратами. Я думал, что онлайн-игры избавятся от этих мер, но теперь игровые компании используют аналогичную технологию для предотвращения онлайн-мошенничества. Итак, цикл начинается заново. - person Kelly S. French; 19.10.2010

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

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

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

person Kirk Strauser    schedule 16.10.2008

}} Почему?

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

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

person Zoredache    schedule 14.10.2008

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

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

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

person Tanktalus    schedule 14.10.2008

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

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

person Robert Paulson    schedule 15.10.2008

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

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

person Community    schedule 16.10.2008

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

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

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

person X-Ryl669    schedule 26.05.2010

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

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

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

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

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

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

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

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

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

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

person Anonymous Coward    schedule 22.02.2012

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

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

person UnkwnTech    schedule 15.10.2008

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

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

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

person Lance Roberts    schedule 15.10.2008
comment
Посмотрите, какое влияние смертная казнь оказывает на преступления: нет. Люди нарушают закон не для того, чтобы разозлить вас, они умны. Создание закона, которому не будут следовать 90% населения, ни к чему не приведет. - person Aaron Digulla; 05.02.2009
comment
@Aaron Вы пропустили и применяете штрафы. часть. +1, чтобы компенсировать -1 (я думаю, от вас). И съездите, пожалуйста, в Швейцарию. - person Piotr Dobrogost; 20.05.2009

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

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

person Gabriel Hurley    schedule 24.03.2010