Ну, я бы рассмотрел процесс, похожий на Amazons AWS. Вы аутентифицируетесь с помощью личного пароля, который не сохраняется удаленно. Просто хеш используется для проверки пользователя. Затем вы генерируете сертификат с одним из основных и проверенных временем алгоритмов и предоставляете его с защищенной страницы. Затем алгоритм шифрования с открытым / закрытым ключом может использоваться для шифрования данных для пользователей.
Но основная проблема остается той же: если кто-то с достаточными привилегиями может получить доступ к данным (скажем, взломал ваш сервер), вы потерялись. Если бы у нас было достаточно времени и сил, все могло быть сломано. Это просто вопрос времени.
Но я думаю, что алгоритмы и приложения, такие как GPG / PGP и подобные, очень хорошо известны и могут быть реализованы таким образом, чтобы защищать веб-приложения и поддерживать удобство использования на уровне, который может выдержать средний пользователь.
edit Я хочу догнать @ Carl и Unkwntech и добавить их утверждение: если вы не доверяете самому сайту, не надо отдавать личные данные. Это даже до того, как кто-то взломает их серверы ...; -)