Форум » [x]Harbour » "Контейнер" для хранения файлов. (Хочется) » Ответить

"Контейнер" для хранения файлов. (Хочется)

wad1: Недавно в России было на год отодвинуто вступление в силу закона о защите персональных данных. Кроме большого объема орг-мероприятий операторы персональных данных (а это по мнению регуляторов - практически все юридические лица) должны привести в "порядок" автоматизированные системы учета перс. данных. В частности есть требование по фиксации всех входов/выходов в программу, неудачных попыток, фактов вывода на печать документов, содержащих перс. данные, а также фактов изменения этих данных. Причем есть требование: пользователь не должен иметь возможности удалить регистр, содержащий логи. У нас что-то подобное реализовано: факты регистрируются в DBF-файле с возможностью просмотра с некоторыми удобствами. Однако файл с логами грамотный пользователь может удалить. Слышал, что у 1С в 8-ой версии файл базы данных является контейнером, в котором находятся DBF и CDX файлы, и что-то еще. Без специальных инструментов выковырять оттуда таблицу не так просто. Может есть что-то подобное?

Ответов - 24, стр: 1 2 All

Петр: wad1 пишет: Однако файл с логами грамотный пользователь может удалить. Грамотный пользователь - это который "format c:" выучил? Слышал, что у 1С в 8-ой версии файл базы данных является контейнером, в котором находятся DBF и CDX файлы, и что-то еще. Без специальных инструментов выковырять оттуда таблицу не так просто. Может есть что-то подобное? Нет, ничего подобного, к счастью (?), нет. А что мешает "грамотному пользователю" грохнуть контейнер вместе со всеми таблицами, индексами, вьюшками, хранимыми процедурами, триггерами и еще чем-то? Эта тема интересная и решить ее можно в разные способы. Тем более, что в Harbour инструментария/заготовок для решения подобных задач достаточно. Нужно лишь эту задачу конкретизировать

sergey5703: Насколько я знаю 1C 8-й версии сделана на SQL-сервере, а SQL-сервер это и есть один большой контейнер для таблиц (DBF) и индексов (CDX) пользователя, а также множества служебных таблиц (называемых метаданными). Из SQL-серверов, которые можно использовать локально назову Interbase (как правило идет в поставке Delphi) и Firebird SQL Server - сервер баз данных основанный на открытом исходном коде Interbase 6.0 http://www.ibprovider.com/rus/download_firebird.html. Про защиту персональной информации не знаю, но в журнале "Хакер" читал интервью с профессиональным хакером (имя хакера не называлось), так вот с его слов - для него нет разницы Windows, Linux, Unix или FreeBSD стоит у "заказанного" клиента, максимум через неделю он его (клиента) "хакнет" и скачает ЛЮБУЮ приватную персональную информацию. Читал про самый сложный хакерский "инструмент" - программа называется "Ахиллес" и что она делает, вот скачиваю я предположим .exe файл из интернета (какую нибудь инсталляцию), так эта программа ("Ахиллес") перехватывая ВЕСЬ мой трафик "на лету" встраивает в exe-шник "шпиона", да так, что MD5 контрольная сумма exe-шника НЕ ИЗМЕНЯЕТСЯ! А Вы говорите депутаты, защита данных, а тут люди с чемоданчиками баксов - и ВСЕ, хакеры быстро все "хакнут".

wad1: sergey5703 пишет: хакеры быстро все "хакнут". Если правильно защищаться, то быстро точно не получится. Про супер-хакеров почитайте Лукьяненко. У 1С есть несколько вариантов работы с данными: клиент-серверный на MS SQL и PostgreSQL (заявлены также IBM DB2 и Oracle) и файл-серверный. Так я писал о втором. Петр пишет: Грамотный пользователь - это который "format c:" выучил? Грамотный пользователь - это еще и сисадмин клиентской конторы, которому страсть как хочется посмотреть размер зарплаты сослуживцев. От таких нам тоже приходится защищаться. Если "убита" полностью база данных, это - ЧП, которое приведет к разбирательствам и восстановлению из архива. А вот очистка логов к аварии не приводит. Тем более, что периодически их приходится чистить, так как растут непомерно.


Pasha: А проект закона уже опубликован ? Достаточно ли средствами ОС запретить удаление файла(ов) пользователем для удовлетворения требований нового закона ? А насчет хакеров... не стоит преувеличивать их могущества. Это только в кино очкарик вставляет диск в сд и через полминуты все взламывает

wad1: Опубликован не проект, а закон. Принят он давно - в 2006 году, а вступать в полную силу должен был с 01.01.2010. Сейчас отодвинули на год. Но в законе требований к системам конечно нет. Они - в инструкциях, которые делают регуляторы, которых аж три: Роскомнадзор, ФСТЭК и ФСБ. Причем до недавнего времени инструкции ФСТЭК были с грифом ДСП, то есть просто так ознакомиться с ними было нельзя. Кроме сдвига сроков отменено требование применения криптографических средств при хранении данных. Причем средства должны быть обязательно сертифицированы ФСБ, а на работу с ними требуются ФСБ'шные лицензии. Кстати, применяемые ОС также должны иметь сертификат ФСТЭК, поэтому большинство бесплатных UNIX'ов отпадают (сертификация стоит денег, а платить их некому).

Петр: А вот очистка логов к аварии не приводит. А у вас, что очистка логов производится удалением таблицы? И в свою очередь нигде не фиксируется? Рассмотрите версию netio-rpc, к netio прикрутите, что нибудь из embedded sql - sqlite, firebird, или "настоящую" sql, к примеру слоника с поддержкой SSL. Соединение с netio также закройте SSL или TLS. Для шифрования используйте криптоапи от туда же, но лучше не используйте, а то долго сертифицирование проходить будете. Хотя если netio разместите на уже сертифицированном Win 2003, используете сертифицированный MS SQL, а для шифрования использовать сертифицированное и от того не ставшее более безопасным MS CryptoAPI то..

Петр: Кстати, в тему 2010-01-11 12:21 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) " Now it's possible to easy create secure NETIO connections and compression should help in slow connections when big number of data has to be exchange. In RDD file access it mostly help when tables use long records. Hope you will find it useful. Please make tests."

wad1: Петр пишет: А у вас, что очистка логов производится удалением таблицы? И в свою очередь нигде не фиксируется? Очистка выполняется по указанную дату. Однако если это - DBF файл, то что может помешать очистить его через DBU? Петр пишет: прикрутите, что нибудь из embedded sql - sqlite, firebird Петр, Вы это о всей базе, или только о логах? Если о всей - то проблематично: с ней работают не только Harbour'ные приложения. А если только о логах - как-то непропорционально задаче. В любом случае, спасибо за участие.

Петр: Я это о логах, как вариант (в длительной перспективе) можете и всю базу. И прикрутить это к Harbour/Delphi не составит никакого труда, с Clipper, рано или поздно, все равно придется расстаться. А если только о логах - как-то непропорционально задаче. Почему ?

wad1: Устанавливать SQL сервер (неважно какой) только ради ведения логов как-то напряжно. Это же у каждого пользователя нужно делать, а их - десятки (или сотни?) Все-таки идея защищенного "контейнера" мне идеологически ближе. Есть еще и происки конкурентов, от которых хотелось бы скрыть структуру базы. Мечтать так мечтать. Хотя я думаю, такие решения есть, ведь у 1С же получилось.

Петр: Это же у каждого пользователя нужно делать Если вы имеете ввиду каждое рабочее место - то нет. Если вы имеете ввиду каждого заказчика, а что здесь сложного. Embedded sql - это всего лишь одна или несколько динамических библиотек (dll, so) и (возможно) один или несколько конфигурационных файлов.

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

wad1: На Delphi тоже не больно просто. Я уже писал выше, что если применять криптографию, то только сертифицированную ФСБ. А это требует наличия лицензий. Иначе - вплоть до уголовки: занятие бизнесом без наличия лицензий. Кроме того, есть понятие сертификации программных продуктов на отсутствие НДВ - недокументированных возможностей (у безопасников своя, довольно обширная терминология: НДВ, ПЭМИН и т.д.). Чем больше у тебя работает разных продуктов, тем больше по идее головная боль. 1С сертифицирует платформу 8.2 во ФСТЭК. Это - месяцы работы и приличные деньги (около 0.5 млн.р.) Причем сертифицируется конкретный релиз, фиксируется его контрольная сумма, пишутся инструкции по установки с проверкой контрольной суммой и проч. А дальше если внес изменения - опять во ФСТЭК. MS завершает сертификацию WIN 7, сервера 2008 и т.д. А бесплатные продукты некому проталкивать на сертификацию. Одно утешает - строгость законов у нас компенсируется необязательностью их исполнения. А иначе даже и непонятно как дальше жить.

Vlad04: Я уже писал выше, что если применять криптографию, то только сертифицированную ФСБ. А это требует наличия лицензий В последней редакции закона от 2009 года шифрование в качестве обязательного не упоминается. Абсолютной защиты нет. А есть же Free средства, тот же TrueCrypt. занятие бизнесом без наличия лицензий Это совсем другое

Vlad04: (х)Harbour работает с движком Advantage для доступа к базам формата dbf . Advantage так же имеет и свой формат "adt " хранения данных, позволяющий шифрование. Кто нибудь работал с эти форматом "adt " из (х)Harbour. Для Делфи есть примеры , для (х)Harbour не встречал.

MMK: #include "FiveWin.ch" #include "ads.ch" REQUEST ADS function Main() RddSetDefault("ADT") SET Filetype to ADT SET SERVER LOCAL SET FILETYPE TO CDX USE Nash ALIAS Kc NEW SHARED Browse() USE return nil

Vlad04: ок , спасибо. попробую

Vlad04: Открывается. А пароль где и как пристегнуть на дешифрацию? Саму таблицу я шифрую в Архитекторе, ставлю пароль.

Pasha: В ads doc сказано, что используется "160-bit, industry-standard encryption algorithm that ensures data is secure as it goes over the network". Какой алгоритм - не уточняется, но вряд ли он сертифицирован в ФСБ. Судя по длине ключа, это не AES, и уж точно не ГОСТ 28147-89. Думаю, использовать симетричный криптоалгоритм для шифровки/дешифровки на лету не получится, поскольку они не очень бустрые, мягко говоря. Да и в функциях ace, которые запрашивают пароль для шифровки, пароль надо давать в виде "null-terminated string". О длине пароля ничего не говорится, что странно

ММК: Vlad04 пишет: А пароль где и как пристегнуть на дешифрацию? USE Nash ALIAS Kc NEW SHARED AdsEnableEncryption("Ваш пароль") //AdsEncryptTable() Browse() А вот для логов может можно было бы использовать функции типа Encrypt() / Decrypt() ( это FWH )



полная версия страницы