"Oleg Prosvetov" ...
> Респект, Усем!
>
> На нижеследуемый текст меня вдохновила реализация шифрования в YaP и желание
> помочь разработчикам Firebird в скорейшем решении проблемы защиты базы данных.
> К сожелению реализация шифрования в YaP на меня не произвела должного
> впечатления,
Вдоховила, но не впечатлила... гм... :)
> но уже хорошо что начало положено. Я предлагаю шифрование с помощью PGP.
> Желающим
> ознакомиться с PGP сюда: http://ru.wikipedia.org/wiki/PGP
При наличии официального сайта с документацией даже не упоминать его - как
минимум странно... гм...
> Возможно идеи которые я изложу ниже уже витали в головах разработчиков,
> поэтому не
> судите строго.
Возможно уже витали. Попробую быть немного корректней Олега :)
> 1) Для того чтобы защитить базу данных для начала необходимо решить проблему
> PlainText-
> запросов.
Не сказал бы, что это проблема #1
> Как известно данные между клиентом и сервером Firebird передаются практически
> в открытом виде, поэтому с помощью таких программ как например FlexTracer
> достаточно
> просто отследить все запросы посылаемые клиентом серверу и обратно.
Запросы обратно не посылаются, однако :)
> Это значительно
> упрощает задачу взломщика, который может изучив как работает программа, может
> воспользоваться базой данных поставляемой с этой программой по своему
> усмотрению.
Весьма спорное и не обоснованное утверждение. Впрочем - не будем о нём, тут
и так есть что опровергать :)
...
> Прехват public(открытых) ключей взломщику ничего не даст, на то они и
> называются открытые,
> т.е. доступные всем. Расшифровка же данных клиентом и сервером будет
> осущесвлятся ихними
> private(закрытыми) ключами. Кстати для надежности можно задавать интервал
> генерации и
> обмена ключами, но увлекатся я думаю не стоит, потому что будут тормоза :)
> Т.е. мы получаем
> зашифрованный канал между клиентом и сервером и программа перехвата остается
> при своих
> интересах :)
Про атаку "man in the middle" мы, конечно, не в курсе. Вынужден огорчить -
это элементарно
взламывается.
> 2) Теперь собственно переходим к главной проблеме, защите базы данных.
> Технология:
> а) клиент посылает запрос серверу о необходимости создать зашифрованную
> базу данных
> б) сервер генерирует новую пару ключей, создает базу и открытым ключем
> из этой пары
> шифрует базу т.е. различные ее страницы(page) (Data, Blob data, Index
> root и т.д.)
Это будет не просто медленно, а _ооочень_ медленно. Советую узнать для чего
используют
симметричные, а для чего не симметричные алгоритмы.
--
Хорсун Влад
PS Хотелось бы узнать, чем это лучше моего предложения :)