Разработка защиты серийными номерами

Тема в разделе "WASM.RESEARCH", создана пользователем jangle, 8 мар 2005.

  1. jangle

    jangle New Member

    Публикаций:
    0
    Регистрация:
    5 фев 2005
    Сообщения:
    56
    Адрес:
    Russia
    Подскажите, насколько стойкой, может быть защита софта от хакеров, основанная на серийных номерах? Я работаю в одной из лабораторий Минздрава, и нам потребовалось защитить разрабатываемое нами ПО. У меня в этом деле пока опыт небольшой, и я написал несложный механизм проверки серийных номеров. Насколько легко это можно взломать?



    Для примера, вот простой текстовый редактор, защищеный

    такой схемой. Сможете подобрать к нему серийник?



    http://scriptcom.narod.ru/files/textpad.zip
     
  2. Dr.Golova

    Dr.Golova New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2002
    Сообщения:
    348
    Стандартный криптопровайдер не слишком надежная штука. Лучше сразу для ключей использовать ассиметричную криптографию с ключами >= 512 бит (для RSA).
     
  3. Dr.Golova

    Dr.Golova New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2002
    Сообщения:
    348
    Ммм, прикольно сделано. Но сломают те, кому будет не лениво разбираться какое из WM_XXX отвечает за какое действие. Мне лениво =)
     
  4. ProgramMan

    ProgramMan New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2004
    Сообщения:
    263
    jangle, кульная защита. Её вобще ктонибудь ломал? Не нашёл не одной стандартной лазейки. Тока зря SI не блокируешь.
     
  5. jangle

    jangle New Member

    Публикаций:
    0
    Регистрация:
    5 фев 2005
    Сообщения:
    56
    Адрес:
    Russia




    А вроде читал, что у него неплохая криптостойкость, 128 бит, чтоли. Ну и пусть он хуже, чем RSA, взломают пароль не через 50 лет, а через 10, хакеру от этого не легче.



    Там несколько уровней защиты, один из них действительно

    "запутывает" взломщика, отбивая у него охоту разбираться в алгоритме программы.









    Пока никто не сломал, т.к. только вчера ночью ее доделал. Вообще-то я не спец по защите, все материалы брал из статей с WASM.RU, например "Неявный самоконтроль как средство создания не ломаемых защит" Криса Касперски и т.п.



    Кстати, что такое SI ?
     
  6. ProgramMan

    ProgramMan New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2004
    Сообщения:
    263
    jangle, SI-SoftICE.

    Больше всего при взломе напрягает премешения када...

    А так, действительно запутывает защита.
     
  7. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    jangle

    В чем смысл твоей защиты? Дело в том, что для взлома таких защит никто не будет изучать алгоритм хитросплетений, будут просто эмулировать оборудование той машины, где стоит зарегистрированная версия.
     
  8. jangle

    jangle New Member

    Публикаций:
    0
    Регистрация:
    5 фев 2005
    Сообщения:
    56
    Адрес:
    Russia
    Можно конечно сделать проверку на наличие SoftICE, у меня

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

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



    Кстати на http://forum.sources.ru с 12 марта проводится конкурс методов защиты программ. Можно выложить свои защиты или попытаться взломать чужие. Победители конкурса получат дипломы и диджимани.

    Подробности тут: http://forum.sources.ru/index.php?showtopic=84647&view=showall
     
  9. jangle

    jangle New Member

    Публикаций:
    0
    Регистрация:
    5 фев 2005
    Сообщения:
    56
    Адрес:
    Russia
    to Broken Sword



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



    А как они узнают серийный номер?
     
  10. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    тогда я не пойму о каких серийных номерах идет речь. Т.е. нет "привязки" к оборудованию? Вы говорите о защите одной копии программы? Ну хорошо, а если зарегистрированный пользователь раздаст валидные серийные номера всем желающим?
     
  11. jangle

    jangle New Member

    Публикаций:
    0
    Регистрация:
    5 фев 2005
    Сообщения:
    56
    Адрес:
    Russia
    Дело в том, что этот защитный механизм предназначен для

    узко специализированного ПО. Количество наших клиентов измеряется десятками в лучшем случае сотнями организаций. А значит, мы волне можем скомпилировать, для каждого потенциального клиента свою версию программы, со своим серийным номером. И даже, если зарегистрированный пользователь разгласит в Интернете свой серийник, это ничего не даст. Так как для каждой уникальной копии программы, нужен свой уникальный серийный номер.



    Хранение даже тысяч копий ПО, при современный объемах жестких дисков не проблема. Пользователь может конечно начать распространять копии CD диска с серийником. Однако, вряд ли клиент приобретя программу за 3000$ сразу выложит ее в Интернет, для свободного скачивания, жаба его задушит! :)))
     
  12. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433




    :) дело в том, что защищая программу любым способом Вы ставите перед собой единственную цель: программу должен использовать только купивший ее пользователь. Однако, как правило, у купившего пользователя оказывается очень много родственников и просто друзей (из других клиник), которым также необходима Ваша программа. И вот на следующий день она есть во всех клиниках России.



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

    jangle New Member

    Публикаций:
    0
    Регистрация:
    5 фев 2005
    Сообщения:
    56
    Адрес:
    Russia
    Алгоритм защиты всегда можно изменить если он будет неэффективным, например сделать привязку к "железу" как вы говорите, а противодействовать распостранению программы через "знакомых" мы не в состоянии...



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

    Если это невозможно или очень трудно, буду считать, что мне удалось выполнить свою задачу, благо начальство не требует от меня чудес инженерной мысли :))
     
  14. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433




    я просто хочу сакцентировать внимание на такой мысли: то что у Вас какая-то секция кода или данных зашифрована суперстойким алгоритмом равносильно тому что ее вообще не существует в поставляемом дистрибутиве!!! понимаете?



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



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



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

    Скоро на wasm-е будет моя статья по одной подобной разработке...
     
  15. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    что у Вас какая-то секция кода или данных зашифрована суперстойким алгоритмом равносильно тому что ее вообще не существует в поставляемом дистрибутиве!!! понимаете?



    вы высылаете пользователю не недостающие куски кода/данных, а ключ, которым он может их расшифровать





    Ну чего ты песни развел? Все в дистрибе есть, только пошифровано. Однако обходится такой метод иначе. Достается легальный ключ. Куски кода, им пошифрованные, дампятся и ку-ку защите. Тут надо хитрее поступать ;)
     
  16. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    зачем что-то дампить? ключи же есть! (с) :)
     
  17. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    jangle

    Ясно одно, рано или поздно алгоритм будет вскрыт.

    Один из самых надежных способов(как понимаю эту тему я) это множество лишних инструкций, либо электронный ключ котороый можно куда-нибудь воткнуть. Программа с аппаратным ключом будет смотрется симпотичнее.
     
  18. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433




    да нет же, я не о том! Вскрывать вообще ничего не нужно, когда есть ключ!!! (а он есть, по определению, хотя бы у одного "не жадного" пользователя) Нужна ПРИВЯЗКА. Вот в чем суть. Такая, которую эмулировать будет невыгодно :)
     
  19. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    Я прекрасно понимаю, к чему ты клонишь :) Просто ключи удобны не всем. И многие программы защищать ими просто бе :-/
     
  20. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    jangle >




    Ну раз так, то всякие привязки к железу - лишнее.

    Ваши клиенты подчиняются одному ведомству?

    Можно взять пример с IDA - варезные версии, конечно, появляются, но информация о владельце в них всегда есть!

    играйте на психологическом аспекте - продавайте на имя директора или главного инженера учреждения - они сами поставит раком всех работников, если версия пойдёт в массы - потому что суд поставит в эту позу его самого :derisive:

    А сломать всё равно сломают, щас лениво - потом интерес может появиться...