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

Публикация № 181165

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Специальные предложения

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

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

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

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

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

См. также

От Hello world - к защите конфигураций за 1 минуту Промо

Защита и шифрование Математика и алгоритмы v8 1cv8.cf Бесплатно (free)

Вы всегда хотели но боялись создать COM объект? Тогда мы идем к вам! С обычным блокнотом, где будем программировать на c#, и таймером ...

19.05.2012    34945    O-Planet    130    

Обезличивание базы средствами Конвертации данных 2

Защита и шифрование v8 КД Бесплатно (free)

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

14.06.2020    2264    Yashazz    20    

Расшифровка DataMatrix кода с пачки сигарет (табачная продукция)

Защита и шифрование v8 Россия Бесплатно (free)

Разбор считанного DataMatrix кода с пачки сигарет - какие символы за что отвечают. Декодирование МРЦ

07.06.2020    5339    Tasselhof    10    

Кодирование по алфавиту. Большие целые числа

Защита и шифрование v8 1cv8.cf Бесплатно (free)

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

14.05.2020    1382    mrsmrv    5    

SHA512 и HMAC512 на 1С 8 без использования внешних компонент

Защита и шифрование v8 1cv8.cf Бесплатно (free)

Имплементация алгоритма расчета Hash 512 с ключом и без. С ключом по алгоритму HMAC. Используются механизмы платформы начиная с версии 8.3.11.

29.04.2020    2793    mrsmrv    21    

Танцы с бубном! Создаём демонстрационную базу

Защита и шифрование v8 Бесплатно (free)

В статье кратко расскажу Вам о моём опыте создания демонстрационной версии базы данных 1С и способах защиты кода.

08.02.2018    15207    user748289    41    

Симметричное шифрование в 1С

Защита и шифрование v8 1cv8.cf Бесплатно (free)

Настоящая статья посвящена реализации в 1С симметричного шифрования встроенными механизмами

02.06.2015    27171    alex271    8    

Защита конфигурации от ...

Защита и шифрование v8 1cv8.cf Бесплатно (free)

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

18.05.2015    19028    hakerxp    29    

Вариант изображений с водяными знаками на php

Защита и шифрование Бесплатно (free)

Предлагаю вариант использования изображений с наложением водяных знаков на хостинге с использованием php.

16.02.2015    15682    NSerget    3    

Хеширование данных с ключом по алгоритму SHA-1 штатными средствами 1С

Практика программирования Защита и шифрование v8 1cv8.cf Бесплатно (free)

Расчет хеш суммы данных по алгоритму SHA-1 с ключом штатными средствами 1С.

27.05.2014    27829    dour-dead    15    

Про использование криптографии в 1С

Защита и шифрование Россия Бесплатно (free)

В последнее время очень популярной стала тема использования шифрования и цифровой подписи (ЭЦП). Возможности удобного использования криптографических преобразований встроены и в 1С. Однако достаточно много людей упускают один важный момент - почти все прикладные решения, использующие криптографию, должны быть выполнены исключительно при наличие лицензии ФСБ. Об этом и пойдёт речь в данной статье.

09.09.2013    35121    y-str    153    

MD5 Hash файла

Защита и шифрование Универсальные функции Бесплатно (free)

Получение md5 хэша для файла

10.03.2011    48779    d0dger    24    

В помощь пользователям КЗК 2

Защита и шифрование v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

Задача: Защитить внеш. обработку или отчет с помощью КЗК 2 - передать клиенту с тем что бы он мог ее запустить, но без копирования файла precomp.dll в каталог ИБ. Так же может применяться и для блоков конфигурации.

28.01.2010    29725    script    42    

И ещё несколько слов о защите разработок...

Защита и шифрование v8 1cv8.cf Россия Бесплатно (free)

Дневные мысли о механизмах защиты кода... (по мотивам http://www.infostart.ru/profile/8914/blogs/660/)

30.10.2008    40094    ValeriVP    79    

Ещё пара слов о защите разработок..

Защита и шифрование Россия Бесплатно (free)

Ночные мысли о механизмах защиты кода..

22.10.2008    20158    Дуб    51    

Защита интеллектуальной собственности для 8 (простые примеры разработки)

Защита и шифрование Россия Бесплатно (free)

Небольшой экскурс в технологии которые могут быть полезны. ( если ставите отрицательные оценки то потрудитесь объяснить за что). код примитивен? - это не минус, это только плюс,

28.02.2008    17255    Legavaz    39