Для проекта с открытым исходным кодом, над которым я сейчас работаю, мне нужны люди, которым доверяют веб-сайт. В принципе, пользователь будет писать «foo» на своем телефоне. Он пойдет на веб-сайт, который примет сообщение «foo» и отправит его на сервер, работающий на ПК этого пользователя. Я хочу, чтобы люди были уверены, что сервер не изменил «foo» на «bar». Я знаю, что я не злой, но потенциальные пользователи этого не знают, поэтому мне нужно, чтобы они доверяли мне.Докажите, что Heroku и Github управляют тем же кодом
Есть 2 возможности. Первый - использовать криптографию. Пользователь зашифровал бы на своем телефоне «abc», и сервер, запущенный на ПК пользователя, расшифровал бы его. Но это громоздко для пользователя (ему нужно будет зашифровать его в другом приложении). Вторая возможность - убедить пользователя, что я не злонамерен, показывая ему код, запущенный на сервере. Я могу легко показать код на Github. Вопрос в том, как мы можем гарантировать, что код, запущенный в Github, совпадает с кодом, запущенным на Heroku?
Независимо от того, что вы показываете пользователю, она должна будет принять ваше слово за это, что это действительно то, что работает на вашем сервере. Возможно, она доверяет по крайней мере Heroku, тогда Heroku может поручиться за то, что было развернуто на сервере, и что данный URL указывает на этот сервер. Но я не думаю, что они делают это в настоящее время. – Thilo
Специальный сегмент очень безопасных пользователей, которые требуют такого «бессердечного сервера», используя отдельный криптовальный инструмент, который подписывает и проверяет сообщения на стороне клиента, кажется, не слишком громоздким (но предпочтительный режим работы). – Thilo