Существует решение для того, что вы ищете (я уверен, что есть более одного).Мой ответ требует двух нетрадиционных подходов к тому, что мы называем «безопасным соединением» и как вы получаете «код клиента».
Вам необходим физически предварительно выданный ключ, который инициируетбезопасное соединение, и поскольку оно предварительно передано, оно не обязательно должно быть RSA, что открывает перед вами возможности для повышения скорости и более высокий уровень безопасности шифрования.
Физически предварительно поделитесь своимкод клиента аналогичным образом, т. е. загрузите код с компакт-диска в журнале или с карты предоплаты, продаваемой на рынке.Это мешает MITM отправлять вам взломанных и эксплуатируемых клиентов, что позволяет ssl.Когда известно, что клиент защищен, и установлено реальное защищенное соединение, упомянутое в (1), код клиента может быть обновлен.
С помощью комбинации предварительно общего доступаКлюч, который разрабатывает безопасное соединение и клиентский код, который может пройти контрольную сумму, вы можете достичь того, что вы ищете.
В идеале, у нас должны быть предварительные общие ключи безопасного соединения, доступные на рынке, но мы этого не делаем.Таким образом, для того, чтобы вы делали это в одиночку, потребовалось бы внедрить нечто подобное для вашего веб-сайта, в частности, до тех пор, пока люди в этой стране не соберутся с реальной безопасностью.Вам нужно будет передать им ключи по телефону, по почте и т. Д. И код вашего клиента, скорее всего, должен быть расширением браузера для его установки из-за проблем с междоменной безопасностью.