У меня есть клиент-серверное приложение, которое использует сервер Firebird 2.5 через Интернет. Я столкнулся с проблемой предоставления безопасного доступа к базам данных FB, и в качестве первого решения попытался решить эту проблему, интегрировав туннельное решение в приложение (точнее, программное обеспечение STunnel). НО, этот аскетизм страдает от многих аспектов: - это увеличивает потребление ресурсов (процессор, память, потоки) на стороне клиента и сервера, - развертывание sotware становится серьезной проблемой, поскольку программное обеспечение STunnel записывается как служба WinNT, а не Dll или компонент (для доступа к службе WINNT необходимы права администратора) и мое клиентское приложение должно работать без установки!
SO, я решил взять быка за рог (или птицу перьями, когда мы говорим о Firebird). Я загрузил исходный код Firebird 2.5 и ввел безопасный код туннелирования непосредственно на свой низкоуровневый уровень связи (слой сокета INET). СЕЙЧАС шифрование/дешифрование выполняется непосредственно механизмом firebird для каждого пакета TCP/IP.
Что вы думаете об этом подходе против внешней туннелизации?