Говорят, что когда вы используете ssl, вы не позволяете человеку посередине краже информации от сервера к клиенту или наоборот. В моем случае кражу jsonwebtoken. То, что я понимаю также из других ответов, заключается в том, что ssl использует закрытый ключ и открытый ключ. Закрытый ключ хранится на сервере, а открытый ключ выдается клиентам. Вы можете шифровать информацию с помощью закрытого ключа, но вы не можете расшифровать ее с помощью закрытого ключа для того, что вам нужен открытый ключ. Также вы можете шифровать информацию с помощью открытого ключа, но вы не можете расшифровать его с помощью открытого ключа, поэтому вам нужен секретный ключ.SSL - человек в средней атаке - кража jsonwebtoken
Как я сейчас смотрю, когда сервер отправляет открытый ключ клиенту, тогда человек посередине также может получить копию открытого ключа, и он сможет расшифровать информацию с сервера на клиент. Я прямо на этом, или я что-то пропустил. Я понимаю, что человек в середине не может расшифровать информацию от клиента на сервер, потому что у него нет закрытого ключа, но если он уже сможет расшифровать информацию с сервера клиенту, тогда он сможет украсть jsonwebtoken, который позволяет ему регистрироваться от имени клиента.
Для меня было бы логичнее, если у клиента есть закрытый и открытый ключ. Закрытый ключ должен храниться на его компьютере, а открытый ключ отправляется на сервер. Таким образом, сервер шифрует информацию, которая отправляется клиенту с открытым ключом клиента вместо его собственного закрытого ключа. Закрытый ключ на сервере затем используется только для дешифрования информации от клиента. В этом случае у вас будет двухстороннее шифрование, а человек посередине не сможет вообще расшифровать информацию. Но пока я понимаю, что это не работает.
Возможно, я совершенно неправ, или, может быть, я что-то упустил. Надеюсь, кто-то может немного осветить некоторые вещи, потому что это не на 100% понятно мне. Заранее благодарим за помощь.
Итак, ключ сеанса используется для другого типа шифрования? Это имело бы смысл. – user1881928
Клиент не генерирует ключ сеанса; не шифрует его; и не отправляет его. Он согласовывается по протоколу ключевых соглашений. – EJP
@EJP, я обновил текст, чтобы сказать, что секретный секрет отправляется вместо ключа sesison. Чтобы упростить, я описываю только ключевое соглашение на основе RSA. – Mats