Думаю сделать сервис, который будет с помощью JS шифровать данные. Сервер их будет получать зашифрованными и расшифровать не может, ключ у пользователя. Исходники JS будут доступны для изучения.
Проблема в том, что даже если сегодня у меня реализация правильная и её проверили все заинтересованные, то завтра никто мне не мешает выкатить новую версию, которая будет отсылать введённый пароль мне на сервер. Пользователи это может и заметят, но не сразу. А если я буду такую версию высылать какому то одному пользователю, который полагается на мнение других о безопасности этого сервиса, то и вовсе тяжело будет такое отловить.
С обычном софтом такая проблема решается отключением автообновлений, проверкой контрольных сумм скачанных бинарников. Но «веб-приложение» штука гибкая и в части безопасности такая гибкость только вредит.
В целом ничего не мешает считать хеш от HTML-страницы и всех загруженных JavaScript-файлов и если он не совпал с последним посещением, то предупреждать пользователя. Можно использовать более сложную систему верификации, но суть такая. Естественно это делать должен плагин для браузера (в браузере вроде таких стандартов нет).
Вопрос такой — есть ли какой-нибудь стандартный плагин для таких целей? Может быть есть другой способ решить эту задачу? Собственно задача в том, чтобы пользователи обоснованно доверяли такому веб-приложению. Как решают эту проблему доверия другие веб-приложения, осуществляющие шифрование на стороне клиента?