On-line: LYSK, Pasha, PSP, SergKis, Мирослав, гостей 0. Всего: 5 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 1506
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.08.10 12:20. Заголовок: Как запретить работу с чужими базами ?


Всем привет !

Кто может подсказать по следующему вопросу:

Имеется своя программа, базы данных: dbf-файлы, индексы: cdx.
Этой программой пользуются определенное кол-во фирм. Программа привязана на ключ (HASP HL).

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


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 45 , стр: 1 2 3 All [только новые]





Пост N: 18
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 17.08.10 12:52. Заголовок: Чего, не прокатит ? ..


Чего, не прокатит ? Задача была - осложнить жизнь челу сперевшему базу. В DBF все/некоторые поля криптированы. В 2 байтах держим уникальное имя запихиваемое туда при инсталяции проги. Есть ключевой файл/ветка реестра с эти именем в коем прописаны всякие атрибуты пользователя и число строк DBF и т.п.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 53
Зарегистрирован: 29.05.06
ссылка на сообщение  Отправлено: 17.08.10 12:54. Заголовок: Andrey пишет: fil п..


Andrey пишет:

 цитата:
fil пишет:
цитата:
А может эту инфу в заголовок DBF класть. Там, помнится, 31/32 байты резервированы





Не прокатит !
А если придет кому нибудь в голову, добавить в рабочую базу через утилиты (DBU или другие) записи другой "стыренной" базы ?
Слишком легкая защита !



Можно сделать инфу в заголовке DBF зависимой не только от значения ключа, но и от числа записей в базе данных. Хотя маловато будет 2 байта, думаю.

А вообще, неплохой подход. Я так думаю, про ключ в заголовке файла "взломщики" очень не скоро додумаются...
Особенно если в порядке дымовой завесы сделать в рабочем каталоге парочку-троечку файлов с названием ( или полями ) типа SECRET_KEY , HASP_KEY и тд :) Нехай экспериментируют... :)




Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 19
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 17.08.10 13:04. Заголовок: В общем, совершенно ..


В общем, совершенно неважно чего пихать в заголовок. По сути это флаг инсталяции. Хотя, конечно, можно затолкать в эти 2 байта число до 65 тыс.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 54
Зарегистрирован: 29.05.06
ссылка на сообщение  Отправлено: 17.08.10 13:18. Заголовок: fil пишет: В общем,..


fil пишет:

 цитата:
В общем, совершенно неважно чего пихать в заголовок. По сути это флаг инсталяции. Хотя, конечно, можно затолкать в эти 2 байта число до 65 тыс.



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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1531
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.08.10 08:27. Заголовок: А как интересно это ..


А как интересно это решается в других системах, типа 1С или других ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 1
Зарегистрирован: 19.08.10
ссылка на сообщение  Отправлено: 19.08.10 09:10. Заголовок: в других системах, т..


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

Еще вариант: таблицы и индексы _хранить_ в зашифрованных архивных файлах, а при старте задачи распаковывать. Соответственно, при закрытии - запаковывать заново. И не забыть под конец удалить распакованные :-)

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1546
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.09.10 14:34. Заголовок: Chikanuk пишет: таб..


Chikanuk пишет:

 цитата:
таблицы и индексы _хранить_ в зашифрованных архивных файлах, а при старте задачи распаковывать. Соответственно, при закрытии - запаковывать заново. И не забыть под конец удалить распакованные



Слишком медленно все будет ! Базы за 1 Gb у некоторых переваливает ....



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1547
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.09.10 14:40. Заголовок: КСС А с какими ключ..


КСС

А с какими ключами HASP работаешь ?


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1549
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.09.10 20:34. Заголовок: Вопрос такой: можно ..


Вопрос такой: можно ли зашифровать текстовые данные в DBF файле и перед показом в Tbrowse расшифровывать ?
Тогда если база случайно грохнется, то можно будет восстановить данные, с потерей некоторого количества записей....
Это терпимо.

Процесс шифрования и расшифрования понятен. В ключе HASP HL есть криптопроцессор. В крайнем случае можно воспользоваться и Харборовскими функциями шифрации.
А как показывать записи в стандартном Tbrowse ?

Тогда вопрос об "обмене" баз между фирмами пропадет вообще. Да и приглашенные со стороны спецы "пролетают" ...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 455
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 11.09.10 11:43. Заголовок: Andrey пишет: А как..


Andrey пишет:

 цитата:
А как показывать записи в стандартном Tbrowse ?


Создать свой блок кода для шифрованного поля.
Или я не понял вопрос?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1552
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.09.10 15:08. Заголовок: PSP пишет: Создать ..


PSP пишет:

 цитата:
Создать свой блок кода для шифрованного поля.



Т.е. для всех текстовых полей создать свой блок кода ?
А как он будет примерно выглядеть ?


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 457
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 11.09.10 19:04. Заголовок: Покажи свой код TBro..


Покажи свой код с TBrowse.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 321
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 23.08.16 15:42. Заголовок: Оживляю тему . Есть..


Оживляю тему . Есть-ли способ работы с шифрованной DBF ? Вроде как-то видел даже примеры где "на лету" осуществляется кодирование/декодирование и запись/чтение .
Не могу вспомнить как это работает .....

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5982
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.08.16 16:03. Заголовок: Softlog86 Можно поп..


Softlog86
Можно попробовать SX_* функции или почитать это

Я как то баловался с шифрованием в Clipper+SIX. В случае падения проги , падения компа , в общем не нормальном завершении
программы , в базе может быть каша , часть записей зашифрована , часть нет.
После пары экспериментов , плюнул на это дело

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1164
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 23.08.16 16:11. Заголовок: Softlog86 Было в SI..


Softlog86
Было в SIXNSX
 
USE:

Syntax:

USE <(db)> ;
[VIA <rdd>] ;
[ALIAS <a>] ;
[<new: NEW>] ;
[<ex: EXCLUSIVE>] ;
[<sh: SHARED>] ;
[<ro: READONLY>] ;
[INDEX <(index1)> [, <(indexn)>]] ;
[TRIGGER <trig>] ;
[PASSWORD <password>]

Generally, this command works the same way as it does in Clipper. The
only difference being the TRIGGER and PASSWORD clauses.

TRIGGER - Allows you to assign a custom trigger function to this table's
workarea.

PASSWORD - Set an encryption password to be used in opening this table.

смотрим hbsix.ch
/*
* USE command with support for TRIGGER and PASSWORD clauses
*/
#command USE <(db)> [VIA <rdd>] [ALIAS <a>] [<nw: NEW>] ;
[<ex: EXCLUSIVE>] [<sh: SHARED>] [<ro: READONLY>] ;
[CODEPAGE <cp>] [INDEX <(index1)> [, <(indexN)>]] ;
[TRIGGER <trig>] [PASSWORD <pass>] => ;
[sx_SetTrigger( TRIGGER_PENDING, <trig>, <rdd> );] <-trig-> ;
[sx_SetPass( <pass>, 1, <rdd> );] <-pass-> ;
dbUseArea( <.nw.>, <rdd>, <(db)>, <(a)>, ;
iif( <.sh.> .OR. <.ex.>, ! <.ex.>, NIL ), <.ro.> [, <cp>] ) ;
[; dbSetIndex( <(index1)> )] ;
[; dbSetIndex( <(indexN)> )]

вроде как должно быть шифрование


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1165
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 23.08.16 16:20. Заголовок: Dima пишет После пар..


Dima пишет
 цитата:
После пары экспериментов , плюнул на это дело


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

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5983
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.08.16 16:29. Заголовок: SergKis пишет: У ме..


SergKis пишет:

 цитата:
У меня работало нормально и не ломалось практически


Ты наверное жестко не тестил.
Я к примеру убивал задачу во время ее работы с базой , тупо нажимал Reset на ящике и после смотрел
как поживает база. То что увидел , не понравилось и забил :)

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1166
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 23.08.16 16:38. Заголовок: Dima пишет Ты наверн..


Dima пишет
 цитата:
Ты наверное жестко не тестил.


Молотком точно не бил
Работала у клиентов в реальном времени несколько лет, потом убрал шифрование и работает до сих пор

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5984
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.08.16 16:41. Заголовок: SergKis пишет: Моло..


SergKis пишет:

 цитата:
Молотком точно не бил




Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5057
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.08.16 18:05. Заголовок: Dima пишет: Ты наве..


Dima пишет:

 цитата:
Ты наверное жестко не тестил.
Я к примеру убивал задачу во время ее работы с базой , тупо нажимал Reset на ящике и после смотрел
как поживает база. То что увидел , не понравилось и забил :)


Интересно, а как будет поживать после этого MySql или PostgeSql ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 45 , стр: 1 2 3 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 280
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет