Название: Файловый контейнер или его вариации... Отправлено: -QT- от Октябрь 22, 2008, 12:14 Доброго времени суток All !
Задумался над сохранностью информации в файлах, как текстовых так и SQLite базами данных. Необходимо защитить от не санкционированного изменения информации. Как Вы думаете что из кроссплатформенных решений можно привязать к QT. Есть у меня идея создать для qt шифруемый файловый контейнер, но с чего начинать не знаю. :D Наверное что-то связанное с созданием шифруемого файла в котором размещать собственно файловую систему ??? ну в общем мысли бегают - но бестолку :-\ Может уже что то подобное есть нужно только доработать или просто прилинковать к qt ? Название: Re: Файловый контейнер или его вариации... Отправлено: Detonator от Октябрь 22, 2008, 12:28 Я использую http://www.eldos.com/solfs/
Название: Re: Файловый контейнер или его вариации... Отправлено: -QT- от Октябрь 22, 2008, 12:47 Я использую http://www.eldos.com/solfs/ Эта весчь без исходников, да ? Если можно по подробнее как ее можно заюзать в моей проблеме ? Смотрел намедни TrueCrypt 6.0а. На дебиане у меня не собрался - затребовал фусе 2.6 и глибси 2.8 да еще виксвэджит ему подавай а у меня нету и не будет его в проекте (ресурс ограничен). Попробовал собрать его без гуи но все равно ругается на виксвэджит. Можно ли его собрать без этой приблуды ? Да вот еще, наткнулся на статейку: http://www.securit.ru/press/issues/?id=4 (http://www.securit.ru/press/issues/?id=4) Название: Re: Файловый контейнер или его вариации... Отправлено: Detonator от Октябрь 22, 2008, 13:50 > Эта весчь без исходников, да ?
С исходниками, но платная. > Если можно по подробнее как ее можно заюзать в моей проблеме ? Файловая система внутри файла, поддержка шифрования, режима только для чтения. Что то еще надо? Или тебе обязательно GPL? Тогда возьми простую либу со стойким шифрованием, шифруй данные и в таком виде пихай их в обычный zip-контейнер. Название: Re: Файловый контейнер или его вариации... Отправлено: Detonator от Октябрь 22, 2008, 13:53 Смотрел намедни TrueCrypt 6.0а. ... Да вот еще, наткнулся на статейку: http://www.securit.ru/press/issues/?id=4 (http://www.securit.ru/press/issues/?id=4) По моему ты куда то в дебри лезешь, для твоих целей годится что нибудь гораздо более простое. Название: Re: Файловый контейнер или его вариации... Отправлено: -QT- от Октябрь 22, 2008, 14:20 По моему ты куда то в дебри лезешь, для твоих целей годится что нибудь гораздо более простое. Да, да чем проще тем лучше. :)8) Хотя может попробовать написать драйвер виртуального диска для никса и винды. Потом прикрутить шифрование на лету, отслеживание попыток отладки и ... что-то я не то совсем несу. ;D А так хочется почуствовать себя крутым как обрыв. По поводу GPL лучше наверное BSD. Но если деваться некуда то и коммерческая лицензия пойдет, только придется доказывать необходимость ее использования (что только эта и всё). :o Цитировать Тогда возьми простую либу со стойким шифрованием, шифруй данные и в таком виде пихай их в обычный zip-контейнер. Я так бы и сделал но нужно не только простые файлы защищать а и СкуЛайтовскую базу данных, как с ней работать если в зипе ? вот вопрос как у Гамлета :-[Название: Re: Файловый контейнер или его вариации... Отправлено: -QT- от Октябрь 22, 2008, 15:11 У меня мысль возникла. :D
А может можно прикрутить к QSqlDriver потоковое шифрование/дешифрование с использованием QtCrypt ??? Таааакс начнем с QFile пожалуй. Или может с QIODevice. Нет это не то !!! Копаем в другом направлении. Я слышал есть форк SQLite c шифрованием ПОМОГИТЕ достать :-\ Название: Re: Файловый контейнер или его вариации... Отправлено: Detonator от Октябрь 22, 2008, 15:54 скайлайтовская база большая? Если нет то загрузи ее в память и работай, если большая но секретность не очень критична, делай временную незашифрованную копию и с ней работай.
Название: Re: Файловый контейнер или его вариации... Отправлено: -QT- от Октябрь 22, 2008, 15:59 скайлайтовская база большая? Если нет то загрузи ее в память и работай, если большая но секретность не очень критична, делай временную незашифрованную копию и с ней работай. База не большая но и оператива маленькая. Такой вариант я рассматривал, кроме этого:Нужна отказоустойчивость. Если питалово вырубят то все накроется медным тазом. А постоянный сброс на диск - падение скорости работы намного. Можно разархивировать на HDD но тогда это не секюрно. Название: Re: Файловый контейнер или его вариации... Отправлено: spirit от Октябрь 22, 2008, 16:18 читаните этот тред, Константин описывал шифрование для Sqlite
http://www.prog.org.ru/topic_7748_0.html (http://www.prog.org.ru/topic_7748_0.html) а конкретнее вот это Цитировать Константин: есть "родная" модифицированная sqlite, которая шифрует данные "на лету" без катастрофического падения производительности. как заявляет автор (кстати, он же автор и оригинальной sqlite), падения производительности на глаз вы не заметите /* по моему скромному мнению производительности sqlite уже и так некуда падать */ вся внутренняя работа по коду/декоду данных прозрачна и даже не потребуется модифицировать прослойку QSql...но эта модификация платная. есть бинарная демка. если интересует, поищу ссылки - где-то точно были либо на sqlite.org где-то есть упоминание со ссылочкой на почитайки Название: Re: Файловый контейнер или его вариации... Отправлено: Alex Custov от Октябрь 22, 2008, 17:05 Цитировать Константин: /* по моему скромному мнению производительности sqlite уже и так некуда падать */ разве она такая медленная? В каком режиме синхронизации? Название: Re: Файловый контейнер или его вариации... Отправлено: spirit от Октябрь 22, 2008, 17:11 Цитировать Константин: /* по моему скромному мнению производительности sqlite уже и так некуда падать */ разве она такая медленная? В каком режиме синхронизации? этот вопрос надо было задать в тот тред ссылку которого я привел :) Название: Re: Файловый контейнер или его вариации... Отправлено: Tonal от Октябрь 22, 2008, 20:27 http://fuse.sourceforge.net/
http://www.berdaflex.com/ru/eclipse/books/rcp_filemanager/ch04s05.html https://sourceforge.net/projects/avf http://msdn.microsoft.com/en-us/library/aa380369(VS.85).aspx Ключевые слова для гугления: виртуальная файловая система, userspace fie system Название: Re: Файловый контейнер или его вариации... Отправлено: -QT- от Октябрь 22, 2008, 21:52 http://fuse.sourceforge.net/ В гугле как раз так и искал.http://www.berdaflex.com/ru/eclipse/books/rcp_filemanager/ch04s05.html https://sourceforge.net/projects/avf http://msdn.microsoft.com/en-us/library/aa380369(VS.85).aspx Ключевые слова для гугления: виртуальная файловая система, userspace fie system fuse гдето наталкивался на порт под винду но с бубном и плясками - в проект интегрировать не катит. http://www.berdaflex.com/ru/eclipse/books/rcp_filemanager/ch04s05.html это интересно но пока не понял как это конкретно реализовывается - если знаете скажите. https://sourceforge.net/projects/avf - Operating System : Linux, Solaris завязано на платформе, тоже следующий линк. Название: Re: Файловый контейнер или его вариации... Отправлено: -QT- от Октябрь 22, 2008, 22:07 читаните этот тред, Константин описывал шифрование для Sqlite Данный пост был проштудирован :) в первую очередь.http://www.prog.org.ru/topic_7748_0.html (http://www.prog.org.ru/topic_7748_0.html) Реально готов заплатить за помощь в реализации на(для) Qt драйвера виртуальной файловой системы, сам приму активное участие в написании сей приблуды. То есть на мое скромное мнение нужно пробовать использовать QFile or QIODevice для этого. Хотя нужно же и с SQLit-ом тоже вопрос решить. ??? Название: Re: Файловый контейнер или его вариации... Отправлено: ритт от Октябрь 22, 2008, 22:40 если хочешь начать с QIODevice, советую ознакомиться с сорцами кделибз. сейчас навскидку не помню где точно искать, но это примерно io, kio и т.д., а также различные фильтры на основе интерфейса KZip (если не ошибаюсь). тот же кио-слэйв позволяет раотать с любыми файловыми системами прозрачно - нужно только бэкэнд спарить с интерфейсом. я год-два назад посмотривал в данном направлении, но так времени и не было заняться задуманной задачей всерьёз. если пойдёшь по этому пути, я постараюсь найти время и принять участие...
по второй части: если имеется определённое финансирование, можно приобрести модифицированный склайт (с шифрованием "на лету") - на данный момент для склайт это самое эффективное решение. Название: Re: Файловый контейнер или его вариации... Отправлено: Alex Custov от Октябрь 22, 2008, 22:48 если хочешь начать с QIODevice, советую ознакомиться с сорцами кделибз. сейчас навскидку не помню где точно искать, но это примерно io, kio и т.д., а также различные фильтры на основе интерфейса KZip (если не ошибаюсь). тот же кио-слэйв позволяет раотать с любыми файловыми системами прозрачно - нужно только бэкэнд спарить с интерфейсом. я год-два назад посмотривал в данном направлении, но так времени и не было заняться задуманной задачей всерьёз. если пойдёшь по этому пути, я постараюсь найти время и принять участие... Это всё сильно завязано на KDE. Там даже шедулер для слейвов свой. Название: Re: Файловый контейнер или его вариации... Отправлено: ритт от Октябрь 22, 2008, 23:32 я не говорю про привязку к кде - я говорю про саму идею реализации.
если реализовать подобный механизм на чистой кутэ (возможно, через фсэнджине или ещё как - надо ковыряться), удивитесь как много полезного можно будет реализовать с "прозрачностью" для приложения. мне лично очень нравится в кде возможность ходить по урлам типа settings://[...], sysinfo://[...] и т.п. т.к. в 4.4 появился новый qthelp://[...], думаю, нечто подобное уже реализовано и остаётся не так много... и пример ближе к теме: что-то вроде QFile file("mycryptofs://pack1.zip/etc/fstab"), где pack1.zip будет архивом со стойким шифрованием или "mycryptofs://C:/test.txt", если интерфейс позволит устанавливать источник отдельно и т.д., и т.п. - для приложения будет асолютно неважно где на самом деле находится этот файл (это может быть даже потоковый источник в инете). ы? Название: Re: Файловый контейнер или его вариации... Отправлено: Alex Custov от Октябрь 22, 2008, 23:47 а, в этом смысле. Ну да, будет круто:) Только "qthelp" там обрабатывается жёстко и о модульности как в KIO приходится только мечтать. Для этого надо будет написать по сути аналог KIO ( QIO ;) ), и использовать его везде вместо обычных QFile/QHttp/ и т.д., что по сути огромная работа.
Название: Re: Файловый контейнер или его вариации... Отправлено: ритт от Октябрь 23, 2008, 00:02 ну, я об этом и говорю :)
и плюсом возможность установки фильтра на базовый контейнер - получится вообще здорово - можно будет и сжатие, и шифрование "на лету" организовать...лишь бы фантазии хватило... Название: Re: Файловый контейнер или его вариации... Отправлено: Alex Custov от Октябрь 23, 2008, 00:06 закинул им suggestion, посмотрим :)
Название: Re: Файловый контейнер или его вариации... Отправлено: ритт от Октябрь 23, 2008, 00:09 какой ты шустрый :)
дай потом номерок, как отпишутся? /* ё-маё, я уже джедай :) */ Название: Re: Файловый контейнер или его вариации... Отправлено: -QT- от Октябрь 23, 2008, 08:32 Финансирование это из собственных средств - тобишь зарплаты.
По поводу KIO - посмотрел предварительную информацию, возможно и даже наверное более резонно попробовать. Подумалось ведь КДЕ 4.х уже работает и там это портировано на четвертую ветку. Ищу сорцы КИО сейчас посмотрим что из этого можно сварганить. Дааа... реализация QIO-slaves --> вкусно ... ням. Интересно что по этому поводу скажут тролли ? Название: Re: Файловый контейнер или его вариации... Отправлено: -QT- от Октябрь 23, 2008, 09:15 Цитировать Есть в QT замечательная штука под названием QAbstractFileEngine. В двух словах это заготовка для построения VFS в отдельно взятой программе. Вот цитата из документации: http://lestornqt.blogspot.com/ (http://lestornqt.blogspot.com/)A QAbstractFileEngine subclass can be created to do synchronous network I/O based file system operations, local file system operations, or to operate as a resource system to access file based resources. Собственно все операции с файлами (open, read, write, etc) идут именно через потомка этого класса QFSFileEngine. Также этот механизм используется для доступа к ресурсам (да-да, тот самый QIcon(":/icons/icon.png")). Таким образом создав 3 класса class MyFileEngineHandler : public QAbstractFileEngineHandler class MyFileEngine: public QAbstractFileEngine class MyFileEngineIterator : public QAbstractFileEngineIterator мы получаем собственноручно созданную VFS для наших нужд. Надыбано по поиску в ассистанте и тырнэте. Что по этому поводу скажет сообщество ? Название: Re: Файловый контейнер или его вариации... Отправлено: ритт от Октябрь 23, 2008, 09:24 > если реализовать подобный механизм на чистой кутэ (возможно, через фсэнджине или ещё как - надо ковыряться)...
:) это радует. выходит, что в твоём случае задача действительно решается написанием наследников...в моём случае ещё потребуется интерфейс для обвешивания (в)фски фильтрами - т.е. чтобы не писать (в)фску со сжатием/шифрованием на лету, а применять фильтр к существующией (в)фске (скажем, qtdoc://) и читать/писать кутэдоки в сжатом виде _прозрачно_ как для приложения, так и для фсэнджины... правда, когда у меня появится время на реализацию задуманного, оно (задуманное) может мне уже быть неинтересным :) Название: Re: Файловый контейнер или его вариации... Отправлено: -QT- от Октябрь 23, 2008, 09:37 правда, когда у меня появится время на реализацию задуманного, оно (задуманное) может мне уже быть неинтересным :) Всё нужно вовремя, мы переростаем возникающие проблемы и потом нехотим возвращатся к ним. Сейчас пробую простейшее приложение с QAbstractFileEngine, посмотрим что можно выжать из него. Название: Re: Файловый контейнер или его вариации... Отправлено: Alex Custov от Октябрь 28, 2008, 16:46 какой ты шустрый :) дай потом номерок, как отпишутся? /* ё-маё, я уже джедай :) */ Цитировать Hello, Actually there is no plans for that, but you are still free to use kdelibs on your project even if it is commercial project (kdelibs is LGPL). I agree that is cool feature but actually it's not on roadmap. Best Regards. Alexis Ménard Software Engineer, Widgets Team 1 Phone : +4799271013 Qt Software, Nokia Norge AS, Sandakerveien 116, 0484 Oslo, Norway ====================================================================== Qt Developer Days 2008 Register Today! REDWOOD CITY, California: October 29th - 30th Learn more: www.trolltech.com/qtdevdays2008 ====================================================================== |