Здравствуйте, sin_cos, Вы писали:
_>допустим, я создал сервис, который что-то шифрует на клиенте с помощью js. то есть, на сервер отправляется уже зашифрованная информация и сервер никак не может ее расшифровать. таких сервисов полно. zero knowledge system.
_>как вы можете быть уверены, что сервер иногда умышленно не отдает какому-нибудь счастливчику слегка модифицированную версию js, которая, например, отправляет пароль в чистом виде на сервер? вы ведь не будете каждый ответ от сервера изучать?
1. Страница шифрования со всеми скриптами, стилями должна быть всегда идентична, никаких счётчиков. Изменяться может только при выпуске новой версии.
2. В браузере должен стоять аддон, считающий хеш-сумму страницы, всех её ресурсов.
3. Код на JavaScript не должен делать некоторые вещи, которые могут вызвать выполнение незагруженного ранее кода, например eval, добавление тегов <script> и тд. Тут надо хорошо подумать.
Конечно же всё должно быть доступно open-source с возможностью собрать идентичную версию.
Тогда ты можешь быть уверен, что выполняется именно тот код, который открыто опубликован.
"Из коробки" — никак. Только надеяться на честность владельца сервиса и то, что тобой не заинтересуются спецслужбы, которые могут надавить на него. А лучше пользоваться оффлайн-средствами вроде GPG.