Если приложение находится в контролируемой среде, то есть вы поставили приложение и оборудование, на котором оно работает (я думаю, что киоски с выставок у меня в голове), тогда у вас могут быть довольно интересные варианты.
Независимо от того, используете ли вы Windows, MacOS или Ubuntu (или что-то еще), вы могли бы работать вместе с локализованным сервером MySQL (или другой базой данных), настроить базу данных так, чтобы данные были зашифрованы, а затем запутать себя ваш скрипт / код (не уверен, говорите ли вы на Java / PHP / .Net или скомпилированное приложение C для собственного использования в Windows или что-то в этом роде.
По крайней мере, таким образом на компьютере размещается только скомпилированный или зашифрованный код, и связь между базой данных (даже если localhost) может быть защищена с помощью шифрования SSH.
Просто выкинуть из головы уникальную идею. Может потребоваться немного больше, чтобы соответствовать вашей конкретной ситуации, но мне кажется, это хорошее начало.
Обновление:
Я перечитал ваш пост и как-то оглянулся на тот факт, что вы планируете сделать это в C #. Локализованная база данных может по-прежнему работать, если это общая машина, где вы можете по существу резервировать базу данных вне офиса ночью или что-либо через безопасный туннель, но запись в базу данных может все еще происходить через локальный хост и безопасный туннель.
Если вы думаете о приложении для iPhone, возможно, вы захотите подумать о настройке SaaS API вне офиса, где вы можете безопасно проверять и принимать информацию по беспроводной сети, но я все еще не уверен, ожидается ли, что это будет «Установите его сами и используйте» - простое программное обеспечение, или если вы работаете в какой-то контролируемой ситуации, когда вы контролируете, когда / где / кто его использует.