Докажите, что Heroku и Github выполняют один и тот же код

#heroku #github #open-source

#heroku #github #с открытым исходным кодом

Вопрос:

Для проекта с открытым исходным кодом, над которым я сейчас работаю, мне нужно, чтобы люди доверяли веб-сайту. В принципе, пользователь написал бы «foo» на своем телефоне. Он попадет на веб-сайт, который примет сообщение «foo» и отправит его на сервер, работающий на КОМПЬЮТЕРЕ этого пользователя. Я хочу, чтобы люди были уверены, что сервер не изменил «foo» на «bar». Я знаю, что я не злонамеренный, но потенциальные пользователи этого не знают, поэтому мне нужно, чтобы они мне доверяли.

Есть 2 возможности. Первый — использовать криптографию. Пользователь зашифрует на своем телефоне «abc», а сервер, работающий на КОМПЬЮТЕРЕ пользователя, расшифрует его. Но это громоздко для пользователя (ему нужно будет зашифровать его в другом приложении). Второй возможностью было бы убедить пользователя, что я не злоумышленник, показав ему код, запущенный на сервере. Я могу легко показать код на Github. Вопрос в том, как мы можем гарантировать, что код, выполняемый на Github, совпадает с кодом, выполняемым на Heroku?

Комментарии:

1. Что бы вы ни показали пользователю, ему придется поверить вам на слово, что это действительно то, что работает на вашем сервере. Возможно, она доверяет хотя бы Heroku, тогда Heroku мог бы поручиться за то, что было развернуто на сервере, и что указанный URL указывает на этот сервер. Но я не думаю, что они делают это в настоящее время.

2. Особый сегмент пользователей, заботящихся о безопасности, которым требуется такой «сервер без доверия», использующий отдельный криптоинструмент, который подписывает и проверяет сообщения на стороне клиента, кажется, вероятно, не слишком громоздким (но их предпочтительный режим работы).

Ответ №1:

Это зависит от вашего развертывания, для достижения этого необходимо выполнить процесс развертывания, который будет извлекать весь репозиторий и выполнять сборку рабочей среды или среды. Это примерно то же самое с настройкой NPM, где у вас будет файл ввода и сценарий сборки.

Комментарии:

1. Но как посторонний может проверить, что вы действительно так развернуты?

2. Я действительно не знаю, как проходит ваш процесс развертывания, но вы можете предоставить хэш последнего коммита.

3. Но как посторонний может проверить, что хэш последней фиксации, который вы предоставляете, действительно представляет то, что развернуто на сервере?