Как сделать программное обеспечение безопасным?

Возможное дублирование:
Защитите код .NET от обратного проектирования ?

Я хочу, чтобы мое программное обеспечение не распространялось без покупки?

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

Но ограничение в том, что не на всех компьютерах есть Интернет, поэтому об этом не может быть и речи.

Одна из идей заключалась в том, что я получаю информацию о компьютере, например CPU Serial Number от WMI, а затем создаю это программное обеспечение для запуска в системе с этим серийным номером. Я не могу придумать лучшей идеи, чем эта.

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

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


person Afnan Bashir    schedule 25.07.2011    source источник
comment
Разработчики пытались это сделать с момента появления коммерческого программного обеспечения, и, вероятно, пришли к выводу, что сделать его безопасным невозможно. Хитрость заключается в том, чтобы сделать его достаточно хорошим, чтобы люди покупали его, если они этого захотят, но не переусердствуйте, чтобы это раздражало ваших платежеспособных клиентов.   -  person Øyvind Bråthen    schedule 25.07.2011
comment
@ Øyvind Knobloch-Bråthen, имея в виду, что здесь, в моей стране, каждое программное обеспечение, доступное на рынке, взломано на DVD за 0,7 доллара, поэтому я думаю, что, когда Microsoft не смогла защитить свои Windows 7 от пиратства, даже этого было достаточно, чтобы получить ppl купить это ............... тогда я думаю о невозможном: P   -  person Afnan Bashir    schedule 25.07.2011
comment
Я думаю, что самое важное - сделать покупку программного обеспечения менее хлопотом, чем найти его где-нибудь пиратским и выбрать цену так, чтобы ваша целевая аудитория не задумывалась о покупке этого программного обеспечения или нет. Лагранжиан: Обратите внимание, что Microsoft не зарабатывает много денег на Windows, продаваемой без рецепта в магазинах. Большинство продаж Windows связано с тем, что вы получаете ее с новым компьютером.   -  person Joey    schedule 25.07.2011
comment
что вы думаете о codeproject.com/KB/cs/GenerateUniqueKey.aspx   -  person Afnan Bashir    schedule 25.07.2011
comment
@Lagrangian: Я не думаю, что Microsoft нужно прилагать какие-либо значительные усилия для борьбы с пиратством Windows. Во-первых, люди уже покупают его косвенно, когда покупают компьютер. Во-вторых, у них достаточно ресурсов, чтобы платить адвокатам за судебное преследование, если они захотят. В-третьих, вероятно, так много людей пытаются взломать Windows, что она в любом случае скоро будет взломана (при достаточном количестве глаз, все ошибки мелкие, помните?).   -  person André Caron    schedule 25.07.2011
comment
@Lagrangian - Добро пожаловать, чтобы использовать уникальный ключевой код на этом веб-сайте. Справедливое предупреждение: если вы это сделаете, будет очень легко изменить файл данных, который вы используете, для работы на любой машине. Все, что нужно, - это кто-то декомпилировать вашу программу, посмотреть, как вы сгенерируете и прочитаете ключ, что занимает максимум 5 минут.   -  person Security Hound    schedule 25.07.2011


Ответы (3)


Краткий ответ: нельзя.

Более длинный ответ: вы всегда МОЖЕТЕ поставить эти защитные барьеры, что делает работу взломщиков более ТРУДНОЙ, но, в конце концов, они БУДУТ взломать ее. Это вопрос баланса: вы можете усложнить их работу, но это означает, что БОЛЬШЕ будет работать и для вас. На мой взгляд, единственный реальный способ защиты от пиратства - это сделать основные части вашего приложения веб-ориентированными, а все ваши клиенты будут использовать уникальный идентификатор при обращении в службу. В большинстве сценариев (и в вашем тоже, как вы указали) это сложно или даже невозможно, но, честно говоря, другого реального пути нет.

person Can Poyrazoğlu    schedule 25.07.2011
comment
Переход в облако определенно поможет держать все в секрете и под контролем. - person gjvdkamp; 25.07.2011
comment
Добавление мер безопасности также может сделать использование программного обеспечения более сложным / раздражающим для клиентов. Например, когда «Ведьмак 2» был выпущен в Польше, игроки не могли играть первые 24 часа или около того, потому что сервер лицензий не работал. - person Paweł Obrok; 25.07.2011
comment
Да, я забыл об этом. Люди на самом деле за что-то ПЛАТЯТ, а это не работает из-за дополнительных мер безопасности. Не совсем то, что кому-то нужно :) - person Can Poyrazoğlu; 25.07.2011

Inishtech предоставляет решение под названием Служба защиты и лицензирования программного обеспечения, что похоже на то, что вы описываете. Это побочный продукт микрософт-проекта. Он извлекает и перемещает определенные части вашего кода в зашифрованную dll, которая работает на виртуальной машине .Net, которая также зашифрована, специально для этого приложения / клиента, как я понимаю, поэтому он должен быть очень безопасным.

Также есть платформа для распространения и администрирования лицензий и т. Д.

Не знаю бесплатных альтернатив.

С уважением, GJ

person gjvdkamp    schedule 25.07.2011
comment
При публикации ответов, которые по сути состоят только из ссылки, обычно рекомендуется как минимум подробно описать, на что вы ссылаетесь, или процитировать соответствующие части (в случае, если связанная страница отключается от сети или когда люди не хотят переходить по возможно бесполезной ссылке, не зная об этом. чего там ожидать). - person Joey; 25.07.2011

Всегда есть аппаратный ключ: http://en.wikipedia.org/wiki/Dongle

person Steve Wellens    schedule 25.07.2011
comment
Что, как правило, тоже можно обойти. Я предполагаю, что можно было бы передать на аутсорсинг определенные программные функции для ключа и, таким образом, иметь их на оборудовании (или вообще не использовать, если ключ отсутствует), но это препятствует простому обновлению этого кода и наверное не стоит. - person Joey; 25.07.2011
comment
Отказ от ответственности: я работаю в компании-изготовителе электронных ключей. Использование ключей на основе смарт-карт, реализованных в соответствии с рекомендациями производителя, теоретически взломано, но требует электронного оборудования стоимостью несколько сотен тысяч долларов и обширных знаний. У нас есть клиенты, которые защищают программное обеспечение по розничной цене 1,5 миллиона долларов с ключами. Если бы они не были в достаточной безопасности, они бы этого не сделали. Что касается перемещения кода, это возможно, но время выполнения будет медленным. Обновление не является проблемой для CodeMeter. - person John Browne; 26.07.2011