Сейчас на форуме: user99, _MBK_, ManHunter, Magister Yoda, rtsgreg1989 (+8 невидимых)

 eXeL@B —› Основной форум —› Разработка защиты данных программы
. 1 . 2 . 3 . >>
Посл.ответ Сообщение

Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 08 октября 2005 12:43
· Личное сообщение · #1

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




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 08 октября 2005 12:48
· Личное сообщение · #2

Шифруй ключом, который известен только сотрудникам да и всё.




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 08 октября 2005 12:49
· Личное сообщение · #3

Archer пишет:
Шифруй ключом

Ога. Криптоалгоритмы помогут решить проблему.



Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 08 октября 2005 12:55
· Личное сообщение · #4

в смысле? я не совсем понял..
ну зашифрую я файл - а прога то все равно должна с ним работать в незашифрованном виде => придется дать ей ключ (ну допустим, даже исхитримся - постоянный ключ + генератор "сеансового"), но тогда любой более-менее знающий кракер его оттуда вынет или просто использует функции, которые осуществляют дешифровку (т.е. просто вклинится между уровнем шифрования и уровнем функций использующих файл) и плакала моя защита..




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 08 октября 2005 13:00
· Личное сообщение · #5

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



Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 08 октября 2005 13:32 · Поправил: online
· Личное сообщение · #6

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

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




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 08 октября 2005 13:40
· Личное сообщение · #7

online
На основе СВОЕГО собственного ключа будет шифроваться файл. Т.е. каждый юзер самостоятельно выбирает себе ключ. Без знания оного расковырять файл будет нереально.




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 08 октября 2005 13:42
· Личное сообщение · #8

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




Ранг: 536.4 (!), 171thx
Активность: 0.660.13
Статус: Администратор
Создатель CRACKL@B

Создано: 08 октября 2005 13:45
· Личное сообщение · #9

online
В твоём варианте криптография не поможет, единственно что конечно можно: извратить какой-нибудь криптоалго + вмпротектом каким-нибудь прогу завешать, чтобы исследователю было сложно, но сделай злоумышленник заказ кряк тиме и баксов за 200 расковыряют и такое дело, но новички и середнячки вряд ли справятся.
Ещё можно каждую запись в твоей БД шифровать по отдельности и делать выборку по отдельности, тоже будет сложнее (всю сразу базу нельзя будет сдампить), но тоже не суперзащита конечно.

-----
Всем не угодишь




Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 08 октября 2005 14:07 · Поправил: Bitfry
· Личное сообщение · #10

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

При открытии ключ вводится разными способами (на выбор):
1. С клавы.
2. Из файла (ненадёжно).
3. Из внешнего устройства (типа, стандартная USB-флешка форматируется специальным образом и.т.п.).
4. Железо (серийники и т.д.).
5. Как я уже сказал способов много, но, например, биометрия требует спец. устройств и приличные ресурсы проца.

online
Сформулируй чётко, что куда.

-----
Всем привет, я вернулся




Ранг: 389.6 (мудрец)
Активность: 0.150
Статус: Участник

Создано: 08 октября 2005 15:39
· Личное сообщение · #11

online пишет:
вместе с файлом получит и программу, которая (каким-то образом) умеет его дешифровать.

Это значит, что общение клиента с файлом все-таки будет происходить?

-----
TBR




Ранг: 172.2 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 08 октября 2005 15:52
· Личное сообщение · #12

обсасывая идею Ara:
как вариант можно попросить помоЩи у ассиметри4ной криптографии: каждому дешифровЩику выдавать персональный открытый клю4, а каждой копии проги - закрытый, ну а дальше все по старому - DSS, RSA (по желанию)...

ЗЫ: еще одна идея - подклю4ить стеганографию для скрытия того самого дешифровЩика, представьте сколько времени нашему брату му4иться придется ;)

-----
HOW MUCH BLOOD WOULD YOU SHED TO STAY ALIVE




Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 08 октября 2005 16:22
· Личное сообщение · #13

Ara пишет:
На основе СВОЕГО собственного ключа будет шифроваться файл. Т.е. каждый юзер самостоятельно выбирает себе ключ. Без знания оного расковырять файл будет нереально.

Bitfry пишет:
Для того чтобы приступать к решению подобных задач, и даже выбору направления, нужно определить что публично, что допустимо, на какие жертвы пойдёт пользователь для секретности.


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

Bad_guy пишет:
В твоём варианте криптография не поможет, единственно что конечно можно: извратить какой-нибудь криптоалго + вмпротектом каким-нибудь прогу завешать, чтобы исследователю было сложно, но сделай злоумышленник заказ кряк тиме и баксов за 200 расковыряют и такое дело, но новички и середнячки вряд ли справятся.


да, я понимаю что так поступить, но дело в том, что стоимость файла существенно больше 200$, поэтому так не пойдет

Bad_guy пишет:
Ещё можно каждую запись в твоей БД шифровать по отдельности и делать выборку по отдельности, тоже будет сложнее (всю сразу базу нельзя будет сдампить), но тоже не суперзащита конечно.


не понял, объясни, плс, подробнее..

Bitfry пишет:
online
Сформулируй чётко, что куда.


см. выше.

Grey пишет:
Это значит, что общение клиента с файлом все-таки будет происходить?


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

ProTeuS пишет:
обсасывая идею Ara:
как вариант можно попросить помоЩи у ассиметри4ной криптографии: каждому дешифровЩику выдавать персональный открытый клю4, а каждой копии проги - закрытый, ну а дальше все по старому - DSS, RSA (по желанию)...

ЗЫ: еще одна идея - подклю4ить стеганографию для скрытия того самого дешифровЩика, представьте сколько времени нашему брату му4иться придется ;)


к сожалению, не совсем понял - объясни плс.



Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 08 октября 2005 16:29
· Личное сообщение · #14

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




Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 08 октября 2005 19:21
· Личное сообщение · #15

Как я понял, ты тогуешь базой данных. Поэтому положи ее в инет и давай доступ только по паролю. лучше давать доступ к конкретным частям а не ко всей базе. А как распоралелить доступ пользователей в системе, извенете, но это уже другой разговор. Могу сделать не очень дорого, так что обращайтесь, обсудим =)



Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 09 октября 2005 01:45 · Поправил: online
· Личное сообщение · #16


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



Ранг: 123.7 (ветеран)
Активность: 0.10
Статус: Участник
1nn0$/100

Создано: 09 октября 2005 02:41
· Личное сообщение · #17

online
http://www.cryptography.ru/ http://www.cryptography.ru/ Посмотри что-нибудь тут. Я думаю, найдешь.

-----
Blame the victim!




Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 09 октября 2005 02:46
· Личное сообщение · #18

спасибо.
что-нибудь я не нем конечно найду. но вопрос "что искать?".
Я пока не знаю как подступиться к проблеме даже на уровне идей, а не реализации, поэтому и пришел за помощью к отцам на креклабе.




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 09 октября 2005 02:54
· Личное сообщение · #19

DrGolova пишет:
Поэтому положи ее в инет и давай доступ только по паролю

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



Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 09 октября 2005 03:03 · Поправил: online
· Личное сообщение · #20

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




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 09 октября 2005 03:05
· Личное сообщение · #21

online пишет:
мы хотим дать всем скачивать наш софт

Какие вы добрые )online пишет:
дело в том, что стоимость файла существенно больше 200$




Ранг: 123.7 (ветеран)
Активность: 0.10
Статус: Участник
1nn0$/100

Создано: 09 октября 2005 03:10
· Личное сообщение · #22

online
Я не очень понимаю, что ты хочешь... Но, по-моему, криптография с открытым ключом даст 99% гарантию безопасности информации... Кстати на вышеупомянутом сайте есть раздел СПРАШИВАЙТЕ-ОТВЕЧАЕМ. Обратись туда, им виднее.

-----
Blame the victim!




Ранг: 18.1 (новичок)
Активность: 0.010
Статус: Участник

Создано: 09 октября 2005 03:24 · Поправил: Spiteful
· Личное сообщение · #23

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



Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 09 октября 2005 04:40
· Личное сообщение · #24

Ara пишет:
online пишет:
мы хотим дать всем скачивать наш софт
Какие вы добрые )online пишет:
дело в том, что стоимость файла существенно больше 200$


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


1nn0cent пишет:
online
Я не очень понимаю, что ты хочешь... Но, по-моему, криптография с открытым ключом даст 99% гарантию безопасности информации...

тут могу посоветовать 2 пути ;) - либо прочитать еще раз тред с начала, либо спросить у Spitefulа - вот он шустрый парень), сразу въехал что к чему))


2Spiteful:
да, ты правильно понял. Единственное, я все никак не пойму, что вы все так зациклились на БД? нет в программе никакой БД!
и программа не обрабатывает запросы пользователя к частям БД, а юзает весь файл сразу, так что не знаю как здесь можно шифровать по кусочкам..

Spiteful пишет:
Ну и чтоб ключи не считали влегкую, хорошенько разбавить код мусором, чтоб нечитабельно было.

да, спасибо. Запишу в блокнотик)
придумать можно много чего...
да, конечно, ты абсолютно прав: можно много чего придумать в этой жизни!
вот именно об этом я и спрашиваю у глубокоуважаемых мной уважаемых корифеев этого форума..
посоветуйте пожалуйста "чего"..



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 09 октября 2005 05:25
· Личное сообщение · #25

online
Кончай хамить.
Ты вроде пришел за помощью?
Шифруешься тут от всех, ничего не говоришь.

Поставь нормально условия.
Размер файла, примерные данные (текст, медиа, 3D).
ЦЕЛЬ!
Какая цель?
Прогу вы даёте бесплатно. Файл бесплатно. Ты написал:
сделать как чтобы этим файлом не мог воспользоваться посторонний имея на руках прогу с файлом.
Внятно раскрой своё понимание слова воспользоваться.

-----
Всем привет, я вернулся




Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 09 октября 2005 05:56
· Личное сообщение · #26

Bitfry
прощу прощения, если какие-то мои слова могли быть восприняты как хамство.
я и правда пришел за помощью и ни от кого не шифруюсь, сейчас попробую объяснить более подробно:
файл - это обычный текстовый файл с некоторой внутренней разметкой (какой - неважно, я и сам до конца ее не знаю).
программа - это длл, которая при инициализации его съедает, пребразовывает в какие-то внутренние структуры и экспортирует несколько функций (грубо говоря, функция "посчитать"). И функция "посчитать" при своей работе (вычислениях) использует те структуры, что она съела из файла.
Вот так дело обстоит на данный момент. Моя задача вписать сюда защитный механизм такой чтобы для пользователя это хозяйство, как правильно сказал Spiteful, представляло черный ящик из которого не так -то просто было достать сам файл в исходном, незашифрованном, виде.
Надеюсь, более понятно стало?




Ранг: 420.3 (мудрец)
Активность: 0.240
Статус: Участник

Создано: 09 октября 2005 06:18
· Личное сообщение · #27

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

-----
Сколько ни наталкивали на мысль – все равно сумел увернуться




Ранг: 18.1 (новичок)
Активность: 0.010
Статус: Участник

Создано: 09 октября 2005 06:28
· Личное сообщение · #28

нет в программе никакой БД!
некоторым файлом (в котором хранятся данные о наших хим. соединениях)


Я не знаю структуру этого файла и как осуществляется обращение пользователя к файлу, ну например, файл занимает 50 Мб, каждые 10 мегабайт шифруются/расшифровываются своим ключом(или даже алго). В процессе работы определяется к какому блоку произошло обращение, определяется ключ, и расшифровка, желательно не весь 10 метровый блок, а то быстренько дамп и склеивание
Тут можно добавить антидамповые трюки какие-нибудь.
Чтоб эффективней мешать код с мусором, какую-нибудь вирт. машину прикрутить...
Ну и конечно, как сказал ValdiS, если там инфа на нобелевку тянет, то все равно отломают



Ранг: 12.0 (новичок)
Активность: 0=0
Статус: Участник

Создано: 09 октября 2005 06:28
· Личное сообщение · #29

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



Ранг: 62.9 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 09 октября 2005 06:34
· Личное сообщение · #30

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

Сам же файл следует разделить на достаточно большое количество структурных составляющих, причем делить желательно не по СМЕЩЕНИЮ, а по СМЫСЛУ. Далее реализовать генератор простых процедурок шифрования/дешифрования и пусть каждая составляющая файла получит индивидуальный дешифровщик. Ну для усиления эффекта можно добавить дешифровщики дешифровщиков и т.д.

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


. 1 . 2 . 3 . >>
 eXeL@B —› Основной форум —› Разработка защиты данных программы
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати