Защита от копирования, интеллектуальная защита и вопросы развертывания

10

Через некоторое время с Raspberry Pi 2 Model B v1.1. У меня есть следующие проблемы?

  1. Я знаю, что это направлено на улучшение уязвимых образовательных секторов, но есть возможность продавать продукт, основанный на RPi ?. Чтобы заработать на этом деньги? Стать с ним миллионером?
  2. Как мне защитить разработку, скажем, я не хочу, чтобы кто-то брал мою RPi SD-карту, дублировал ее и имел свои собственные реплики ? Моя текущая альтернатива - заполнить порт SDCard суперклеем :). Другой выбор может сделать RPI для пинг сервера лицензий в Интернете, который, конечно , потребуется WiFi соединение. Или аппаратный HASH ID (это должен быть лучший ответ, я думаю ...)
  3. Я проверил, есть ли механизмы для восстановления установки, даже если у вас нет рута, путем монтирования SD-карты. Опять же, мое лучшее решение - суперклейный подход ....

Заранее спасибо.

Brethlosze
источник
2
Это общий вопрос о встроенном Linux. Это сложная проблема как технически, так и юридически.
Крейг
2
Здравствуйте и добро пожаловать в RaspberryPi.SE! Это слишком много вопросов в одном. Некоторые проблемы также очень широки и не связаны с Pi. Вы должны учитывать, что при наличии времени и усилий можно обойти все системы защиты от копирования. Особенно, если ваша система развернута, и у вас нет способа помешать «плохому парню» использовать все доступные инструменты, чтобы сломать вашу защиту.
Ганима
@craig: Есть ли сообщество встраиваемых Linux-систем?
Brethlosze
WRT # 2: Вы не можете технически предотвратить пиратство на любой платформе, все, что вы можете сделать, это бороться с ним на законных основаниях . Я думаю, у тебя есть телега перед лошадью здесь. К тому времени, когда у вас есть программный проект на основе pi, где это вызывает озабоченность, вы поймете, что нет никакого основанного на pi проекта, который действительно связан с pi. Это просто устройство общего назначения, и сообщество ориентировано на развитие.
Златовласка
2
Это не "их платформа", мудрая разработка приложений, и они знают это и не заботятся. Это не «их цель». Это Broadcom SoC, реализующий архитектуру ARM. Никто не собирается делать с пи, который не может быть тривиально перенесен на очень широкий спектр других устройств. Итак, еще раз: у вас есть телега перед лошадью . К тому времени, когда вы достигнете точки, в которой ваше беспокойство об интеллектуальной собственности имеет какое-либо значение или значение, вы поймете, что я пытаюсь вам сказать ...
Златовласка

Ответы:

6

Если вы действительно заинтересованы в защите своей интеллектуальной собственности, то вы можете объединить свое приложение на основе Rapberry Pi с некоторыми внешними аппаратными ключами на основе микроконтроллера (MCU, такими как AVR, PIC, 8051 ...) (подключенными к Pi через USB, RXTX, I2C, SPI, 1wire ...). Например, приложение на стороне Pi генерирует случайное число, которое отправляется в MCU, декодируется и отправляется обратно в качестве ключа разблокировки для расшифровки чего-то важного. Кроме того, у вас есть важная функция, выполняемая непосредственно в MCU (вы просто передаете параметры и получаете результат из MCU). Вы можете себе представить, как это увеличит сложность взлома для хакера на порядок, поскольку его знания должны быть намного шире, чем обычно. Там нет идеальной защиты, но если вы действительно хотите сделать это вызов, то это может быть путь.

Avra
источник
1
Это действительно хорошее решение .... Я попробую эту концепцию ....
Brethlosze
1
К сожалению, решение для аппаратного ключа такое же, как и для программного ключа - просто удалите оскорбительную часть кода, введите правильный ответ и т. Д. Таким образом, те же навыки будут работать с аппаратным ключом.
Tomnexus
2
Нет, если вы поместите какую-то важную функцию в аппаратный ключ и сделаете его результат критическим для функциональности вашего приложения Pi. Поскольку функции существуют только в микроконтроллере, удалить их на стороне Pi нечего. Это не невозможно сломать, но во много-много раз сложнее, так как требует гораздо более высоких навыков, чем обычный взлом кода.
Авра
1
Хотя эти внешние схемы действительно обеспечивают защиту, эти вещи стоят больших денег: исследования, создание прототипов, производство, тестирование, внедрение, сопровождение. Что если что-то случится? Что, если Raspberry изменит свой интерфейс (ы) в будущих моделях? Если это короткий срок жизни или хобби, сделайте это. Если это промышленный / коммерческий продукт, возможно, OEM - более безопасная ставка.
EDP
5
  1. Я думаю, что это была идея с модулем вычислений все время. Это не должно быть проблемой, чтобы получить прибыль.

  2. / 4. Вариант суперклея, вероятно, является хорошим компромиссом. В конечном итоге вы не можете победить злоумышленника с физическим доступом к устройству. Посмотрите на игровые приставки, которые, вероятно, вложили миллионы в инфраструктуру DRM, и все они в конечном итоге упали. В другом духе вы также можете принять открытость и продать версию своего продукта для разработки и включить какой-то SDK. Отзывы, которые вы получаете от технической группы пользователей, могут оказаться полезными и работать в ваших интересах.

user1217949
источник
Вариант с суперклеем, вероятно, совершенно чокнутый, но здесь вы отметите и другие хорошие моменты. ; |
Златовласка
На самом деле, я думал о каком-то аппаратном идентификаторе от Raspberri Pi, чтобы каждое программное обеспечение RPi могло быть запрограммировано для каждой карты RPi, и поэтому, если я клонирую программное обеспечение, система не будет работать. Старые uProcessors были просто запрограммированы на плате, поэтому вы не можете отключить его :).
Brethlosze
1
Даже если у вас есть идентификатор оборудования, его может прочитать любой другой, имеющий физический доступ. Конечно, программируемые на плате процессоры также предоставляют интерфейсы отладки, так что вы действительно можете их прочитать. В более сложных системах SOC, вероятно, позаботится только о выполнении подписанного кода. Я не был бы слишком удивлен, если бы у чипа Broadcom была некоторая функциональность в этом направлении, но у вас нет документации для этого. Если вы хотите планировать продажу миллионов единиц, они могут поговорить с вами об этом;)
user1217949
LOL .. нет, я думаю, я продам очень небольшое количество их !. Итак, если у меня есть код, работающий под Raspbian, любой другой может взять SD-карту и прочитать ее? отладить это? взломать его?. Я абсолютно уверен, ответ, конечно, да. Будет ли лучший выбор, чтобы иметь Hardware Keyпредложенный Avra , и похоронить SD-карту с SuperGlue внутри своего разъема?
Brethlosze
4

Хотя эта практика определенно теряет покрытие, вы будете удивлены количеством USB-разъемов, которые были наклеены на настольных компьютерах в корпоративных офисных средах. И я говорю о крупных транснациональных корпорациях здесь.

Но теперь по теме ...

Для коммерческих проектов, где защита ИС является основным фактором, Pi лучше всего подходит для раннего создания прототипа / подтверждения концепции. Даже если защита не будет проблемой, развертывание Pi в более широком масштабе - ИМХО не лучшее решение - по ряду причин, которые я описал в более ранней теме на этом форуме.

Не существует системы, защищающей от обратного проектирования / взлома / воспроизведения. Любая система пригодна для использования. Однако каждая система имеет оценку проникновения. Благодаря открытому подходу и внешней SD-карте Pi имеет очень низкий уровень. Специально разработанная военная апробированная аппаратная плата с пользовательским SoC, сэндвич-компонентами и многослойной печатной платой в сочетании с пользовательским загрузчиком, аппаратное шифрование будет иметь более высокий балл.

Кроме того, есть фактор развертывания. Чем шире ваш рынок, тем интереснее будет людям взломать и украсть ваши технологии.

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

Мы используем Pi для продажи таких услуг. Наше программное обеспечение на Pi имеет повышенный уровень защиты, мы используем скомпилированное приложение C, заблокированное на MAC и / или серийном номере процессора. Но, в конце концов, без нашей серверной части даже исходный код практически бесполезен.

электронная обработка данных
источник
3

Вы можете использовать контрейлерные внутри малины с ключом шифрования. На рынке есть пара коммерческих устройств. Я использовал это программное обеспечение Serial Protection для Raspberry Pi , которое работает очень хорошо.

Пауло Ареде
источник
2
Это не поможет вам защитить систему от клонирования - хакеры уберут проверку ключа HW из вашего бинарного файла, если они захотят ... Ключ HW обеспечит только определенный уровень защиты (возможно, остановит хобби первого уровня) хакеры).
Козуч
2

Сделайте это с открытым исходным кодом

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

Тогда взимайте плату за услуги. Вы можете сделать ведра денег, если вы делаете это правильно.

Red-Had делает это так и несколько других компаний. У них все хорошо и они растут.

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

Несколько моих центов:

  1. Никогда не создавайте решение вокруг сценариев, которые могут быть непосредственно прочитаны.
  2. Разбивка функциональности с точки зрения нескольких программ / процессов и оборудования.
  3. Добавьте некоторую аппаратную «функциональную» зависимость для чтения.
  4. Добавьте устройство чтения смарт-карт и продайте смарт-карту «enabler» вместе со своим продуктом.
  5. Есть сервер лицензий
  6. Есть счетчик использования в EEPROM !!! И должен быть какой-то способ «перезарядить» онлайн .. ;-)

...

Джатин Ганди
источник
1

В качестве защиты начального уровня найден уникальный идентификатор SD-карты, /sys/block/mmcblk0/device/который не клонируется обычным программным обеспечением для клонирования образов дисков. Это имеет то преимущество, что не требует отдельного устройства для хранения уникального идентификатора и работает довольно хорошо, как второй уровень защиты после суперклея. Это по крайней мере остановит людей, которые способны просто клонировать SD-карту.

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

if(readID() != 0xDEADBEEF) exit();

Подобные простые проверки легко обнаружить (путем поиска известного идентификатора или отслеживания вызовов exit()) и удалить. Гораздо лучший подход - использовать идентификатор в качестве константы в расчетах. То есть вместо i++где-то в вашем коде вы будете писать

i = i + readID() - 0xDEADBEEF + 1;

Это будет намного сложнее обнаружить, так как точный идентификатор не будет указан в вашем коде дословно ( 0xDEADBEEF + 1 == 0xDEADBEF0), а проверка всех вызовов exit()также не покажет местонахождение вашего защитного кода. Вместо этого ваш код просто рухнет в системе с неверным идентификатором, и злоумышленнику придется отладить логику вашего приложения, чтобы понять и устранить проблему.

Дмитрий Григорьев
источник
0

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

Бенджамин Лииииииииии
источник