Разрабатываем систему защиты авторских прав. Урок 1. Мозговой штурм

03.04.13

Разработка - Защита ПО и шифрование

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

Разрабатываем систему защиты авторских прав. Урок 1. Мозговой штурм

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

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

  • Привязаться к реестру Windows. При переносе на другой   компьютер потребует повторной активации.

  • Сделать аппаратный ключ.

  • При старте программа коннектиться к сайту, а там есть сведения, сколько лицензий.

  • Определенное количество запусков.

  • Сделать программный ключ.

  • Сделать ключевой диск или флэшку.

  • Определять, сколько человек пользуются программной.

  • Идентификация по отпечатку пальцев.

  • Идентификация по голосу.

  • Идентификация по лицу через вэб камеру.

  • Постоянно менять регистрационный ключ и сделать автоматическое обновление ключа с сайта.

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

Сделать ключевой диск или флэшку. Технология использования специальной дискеты с защитой от копирования (ключевой диск) давным давно устарела. Более того, сейчас даже не на всех компьютерах есть дисковод.  Как правило, дисковода нет на ноутбуках и даже не некоторых стационарах компьютерах, не говоря уже про нетбуки, на которых нет даже привода CD-ROM. Использовать флэшку? Ничего не даст. Поясню почему. Дело в том, что технология ключевой дискеты заключалась в том, что дискету умышленно портили, например, прокалывали в ней дырочку. Естественно, скопировать ее полностью стандартными средствами было невозможно. Но в начале дискеты находилась программа, которая "умела" читать остальную часть информации, обходя поврежденный участок. Как такое провернуть на флэшке, вообще непонятно. Мы не можем избирательно повредить часть ее микросхемы, можем только испортить ее полностью. Кстати защита, основанная на ключевом диске, она защитит только от ламеров. Мало мальский опытный пользователь легко взломает эту защиту, используя различные системные утилиты копирования.

Что насчет рационального звена? Может, использовать "хитрую" флэшку, которую нельзя скопировать? Электронный эмулятор флэшки? Но эта идя уже есть в списке: Сделать аппаратный ключ.

Идентификация по отпечатку пальцев. Ага, вместе с прогой продавать дактилоскопический девайс. Дорогая тогда будет программа. Конечно, если это супер пупер нетленка, которая очень нужна богатым покупателям и они согласны выложить за нее кругленькую сумму зелени, то почему бы и нет? Но, скорее всего, в одиночку вы не сможете написать дорогую инженерную программу типа AutoCAD или север баз данных Oracle. А если и сможете, то уже и так все знаете, и, значит, не читаете эту статью.  В общем, эту идею тоже вычеркиваем. Но у нас есть правило - найти рациональное звено. Как пользователь еще может идентифицировать себя? Паролем? Но пароль он может передать другому человеку. Можно, конечно, время от времени менять пароли. Вот тебе и рациональное звено: выдавать пользователю пароль, а через какое то время менять его и выдавать новый. Даже если он кому то скажет свой пароль, то по истечению какого то времени он перестанет действовать. Идея, конечно не ахти, у нее много недостатков, но, тем не менее, есть пища для размышлений.

Идентификация по голосу. Эту идею отвергаем по причине, что слишком сложно и дорого реализовать для рядового программиста. К тому, же, голос можно записать на диктофон. А рациональное зерно? Может, определять пользователя по манере работы с мышкой или нажимать на клавиши? Тоже как то не айс.  Но опять же, пища для размышлений, когда мы будет усовершенствовать защиту. А пока выберем чего попроще, для начала.

Идентификация по лицу через вэб камеру. Отвергаем по той же причине, что и предыдущий пункт. Сложно, хотя это уже почти не фантастика. Но, если мы не глава спецслужбы типа ФБС или ЦРУ, то реализовать такое нам не под силу. Кстати, сразу возникает мысль, а может, привязывать программу не к пользователю, а к компьютеру? Хотя подобна идея уже есть списке: прописаться в реестр Windows, но, как вариант, можно определять конфигурацию компьютера и привязаться к ней. Правда, тогда программа перестанет работать, если юзер апгредит свой комп. Нехорошо, пользователь то не виноват, что у нас приязка к конфигурации. Но, тем не менее, идея имеет право на существование.

В итоге у нас список идей становиться таким:

  • Привязаться к реестру Windows. При переносе на другой   компьютер потребует повторной активации.

  • Привязаться к конфигурации компьютера. При переносе на другой   компьютер прога так же потребует повторной активации.

  • Сделать аппаратный ключ.

  • При старте программа коннектиться к сайту, а там есть сведения, сколько лицензий.

  • Определенное количество запусков.

  • Сделать программный ключ.

  • Определять, сколько человек пользуются программной.

  • Постоянно менять регистрационный ключ и сделать автоматическое обновление ключа с сайта.

Его мы будем анализировать уже на следующем уроке.

Источник: http://easyprog.ru/index.php?option=com_content&task=view&id=1227&Itemid=29

См. также

Запрет глобального поиска в конфигурации

Защита ПО и шифрование Платформа 1С v8.3 1С:Бухгалтерия 3.0 Абонемент ($m)

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

1 стартмани

09.02.2023    2224    9    aximo    4    

2

Как защитить pdf файл

Защита ПО и шифрование Абонемент ($m)

Для установки защиты pdf документа, полученного в 1С, написано консольное приложение на c#., использующее одну зависимость pdfSharp.dll. В результате работы приложения ограничены операции над документом и записаны метаданные. С помощью аргументов командной строки можно управлять работой приложения.

2 стартмани

30.01.2023    1658    1    olevlasam    3    

3

Универсальный синтаксический анализатор ASN.1 для декодирования .key, .cer, .der, .p7m, .p7s, .crt, .pem

Защита ПО и шифрование Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Универсальный синтаксический анализатор ASN.1, который может декодировать любую допустимую структуру ASN.1 DER или BER, независимо от того, закодирована ли она в кодировке Base64 (распознаются необработанные base64, защита PEM и begin-base64) или в шестнадцатеричном кодировании.

1 стартмани

04.12.2022    2984    12    keyn5565`    0    

13

Шифрование строки на основе мастер-пароля в 1С Предприятие 8.3.19

Защита ПО и шифрование Платформа 1С v8.3 Абонемент ($m)

Демонстрация возможностей шифрования строки на основе мастер-пароля в 1С Предприятие 8.3.19. AES без zip файла, RSA, PKDF2. (c использованием библиотеки С# через com).

2 стартмани

31.08.2022    3832    7    vit59    2    

6

Обфускатор байт-кода

Защита ПО и шифрование Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

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

10 стартмани

16.06.2022    10306    80    ZhokhovM    12    

40

Как уберечь конструкторскую документацию от воровства конкурентами?

Защита ПО и шифрование Платформа 1С v7.7 Платформа 1С v8.3 Абонемент ($m)

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

2 стартмани

09.03.2022    5654    3    ge_ni    9    

2

Защита конфигураций, обработок, расширений 1С онлайн, управление версиями

Защита ПО и шифрование Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Система построена на веб платформе, все управление происходит на сайте в личном кабинете пользователя.

1 стартмани

27.12.2021    4556    2    idm80    11    

9
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. orefkov 1152 03.04.13 20:47 Сейчас в теме
Не могу не удержаться от цитаты:
[quote]
Однажды Сисадмин пожаловался Учителю:
– Мы выдали всем нашим пользователям индивидуальные пароли, а они не желают хранить их в тайне. Записывают на листочках и приклеивают к мониторам. Что нам делать? Как заставить их?
Инь Фу Во спросил:
– Сначала скажи, почему они это делают.
Сисадмин подумал и ответил:
– Может быть, они не считают пароль ценным?
– А разве пароль сам по себе ценный?
– Не сам по себе. Ценна информация, которая под паролем.
– Для кого она ценна?
– Для нашего предприятия.
– А для пользователей?
– Для пользователей, видимо, нет.
– Так и есть, – сказал Учитель. – Под паролем нет ничего ценного для наших работников. Надо, чтоб было.
– Что для них ценно? – спросил Сисадмин.
– Догадайся с трёх раз, – рассмеялся Учитель.
Сисадмин ушёл просветлённый и сделал на корпоративном портале персональные странички для всех работников. И на тех страничках был указан размер зарплаты. Узнав об этом, все пользователи забеспокоились о своих паролях. На другой день в курилке обсуждали размер зарплаты Главбуха. На третий день ни у кого не было видно листочков с паролями.
[/quote]
Так и с программой. В идеале она должна нести такую ценность для пользователя, что бы он сам ее защищал от распространения :) И даже сам просил поставить на нее ключ :)
salexdv; CaSH_2004; VRP; teflon; bulpi; awk; СергейКа; утюгчеловек; KonstB; SpartakM; +10 Ответить
2. RuslanZ 411 03.04.13 22:30 Сейчас в теме
Почему не рассмотрен вариант идентификации с помощью днк?
Светлый ум; Sbiz; +2 Ответить
3. Steelvan 302 03.04.13 22:35 Сейчас в теме
Это намек на твое использование "водяного знака" с риском потерять подписку ?
4. orefkov 1152 03.04.13 22:38 Сейчас в теме
(3)
Угу. Понятно, что для очень тиражных решений это не подойдет, но принцип понятен.
Так же по этой модели не получится "один раз написать программу, а потом загорать на Канарах".
Хотя имхо, так вообще очень редко бывает.
andrewks; +1 Ответить
5. andrewks 1368 03.04.13 23:06 Сейчас в теме
(4) orefkov,
Хотя имхо, так вообще очень редко бывает.

да так вообще не бывает :)
6. СергейКа 669 05.04.13 11:10 Сейчас в теме
Какой-то странный "мозговой штурм" - в один мозг. Похоже что он сильно "заштурмован" :)
Очень не верится что с таким подходом к своему продукту можно будет "один раз написать программу, а потом загорать на Канарах".
adhocprog; +1 Ответить
7. orefkov 1152 05.04.13 11:35 Сейчас в теме
Имхо, все перечисленные методы - это не защита.
Все это ломается, рано или поздно, дешево или дорого.
Когда начинаешь тему глубже изучать (причем со стороны ломальщиков) - убеждаешься, что сделать качественную защиту очень сложно. Причем ломают в самом "слабом" месте, обычно на стыке защиты и программы. Вот например, сделал навороченную проверку отпечатка пальца, а потом оказывается, что в коде надо только один условный переход заменить на безусловный.
Поэтому принцип прост - защита должна быть такой, чтобы стоимость взлома превышала выгоду от взлома.
На какуюнить дешевую прогу хватит и покупной навесной защиты, из свежих, чтобы еще не было автораспаковщиков.
Если делаешь свою защиту - код защиты должен сразу интегрироваться с кодом программы, желательно, чтобы программа использовала код защиты в качестве данных, все шифровать/расшифровывать налету.

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

Вон, посмотрите интервью с Нуралиевым, он сам сказал: "Это просто мечта, не один раз получить деньги с клиента, а регулярно"
8. adhocprog 1139 27.09.13 14:48 Сейчас в теме
(7)
не один раз получить деньги с клиента, а регулярно

это мечта всех бизнесменов )
9. tango 506 27.09.13 14:59 Сейчас в теме
(8) adhocprog, Нуралиев о своей мечте говорил
10. пользователь 02.04.18 14:59
Сообщение было скрыто модератором.
...
Оставьте свое сообщение