Как я могу использовать аппаратные решения для создания «небьющегося» шифрования или защиты от копирования? - PullRequest
0 голосов
/ 14 января 2010

Два типа проблем, о которых я хочу поговорить:

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

  2. Скажем, вы хотите передать программное обеспечение другим пользователям, но хотите защитить его от пиратства (то есть, другой пользователь делает копию этого программного обеспечения и продает ее как свою собственную). Какой эффективный способ защититься от этого (как защита музыки на компакт-дисках, например, DRM)? И с точки зрения программного обеспечения, и с точки зрения аппаратного обеспечения?

Или эти 2 относятся к одному классу проблем? (Dongles - это аппаратно-чиповое решение, как многие отмечают ниже)?

Итак, можно ли использовать чиповое или аппаратное шифрование? И если да, то что именно нужно? Вы покупаете специальный тип процессора, особый вид оборудования? Что нам нужно сделать?

Любое руководство приветствуется, спасибо!

Ответы [ 4 ]

2 голосов
/ 14 января 2010

Если вы не продаете эту программу за тысячи долларов за копию, это почти наверняка не стоит усилий.

Как уже отмечали другие, вы в основном говорите о ключе, который, помимо того, что он является основным источником трудно исправляемых ошибок для разработчиков, также является основным источником раздражения для пользователей, и есть долгая история взлома этих якобы «не взламываемых» ключей. AutoCAD и Cubase - два примера, которые приходят на ум.

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

Только мои два цента.

1 голос
/ 15 августа 2011

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

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

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

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

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

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

0 голосов
/ 14 января 2010

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

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

См. deskey или hasp (похоже, что он захвачен)

0 голосов
/ 14 января 2010

В тот день я видел аппаратные ключи на порте параллелла. Сегодня вы используете USB-ключи типа this . Ссылка на Википедию .

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