Я делаю небольшой отчет об обмене ключами и хочу узнать, безопасен ли этот senario.C# AES key exchange senario: будет ли это безопасно?
Во-первых, я сделаю простой серверный клиентский источник мгновенных чатов.
Он отправит класс на сервер, который состоит из двух полей: идентификатор отправителя, сообщение, и он будет зависеть от AES. Сервер объявит сообщение другим клиентам.
Каждый клиент будет делиться ключом с сервером (используя обмен ключами Диффи-Хеллмана.).
Каждый отдельный клиенты будут иметь разные ключи по сравнению с другими клиентами, а также ключевое значение будет
храниться в каждом клиенте, а сервер (сервер будет хранить все ключи для каждого клиента.)
Первое, что я хочу задать, возможно ли это?
Во-вторых, будет ли это безопасно?
В-третьих, будет ли более разумный способ сделать аналогичный эффект?
Будет ли другой способ избежать человека в средней атаке, за исключением получения ключа от центра сертификации? – March3
Смысл, который вы контролируете как клиента, так и сервера, для которого не требуется привлечение общественности. Будьте собственным CA, подписывайте сертификат для сервера, дайте публичный сертификат для CA клиентам, затем клиенты могут проверить, что сертификат, который сервер передает им, подписан вашим частным CA, доказывая, что сервер является " реальным "сервером, а не кем-то, олицетворяющим ваш сервер (предполагая, что вы держите CA в безопасности и используете новый сертификат для каждого сервера, который вы развертываете, иначе я мог бы просто декомпилировать копию серверного программного обеспечения, и вы вернулись к той же проблеме, реальный сервер от поддельного). –