Я несколько раз избивал голову над проблемой за последние несколько дней: после того, как вы открыли открытый ключ +, мои конечные точки переключаются на симметричную схему шифрования для шифрования сообщений между клиентом и сервером.Сколько накладных расходов на восстановление CryptoStream?
Проблема заключается в том, что я создаю криптопоток и оставляю его открытым, думая, что это лучший способ, так как канал будет использоваться для отправки нескольких соединений. Когда я это делаю, шифрование никогда полностью не выводится в базовый поток. За MSDN, он говорит:
Вы всегда должны явно закрыть объект CryptoStream после выполнены с использованием его с помощью вызова метода Close. Это приводит к сбросу потока и приводит к тому, что все оставшиеся блоки данных обрабатываются объектом CryptoStream.
Это похоже на много накладных расходов, чтобы перестроить его для каждого отправленного сообщения. Есть ли какая-то причина для этого, или я просто что-то пропустил?
Будьте осторожны: при создании более сложных протоколов от AES, подобных этому; очень легко сделать тонкие ошибки, которые полностью нарушают шифрование. Пожалуйста, используйте существующий протокол (TLS) вместо того, чтобы загружать собственную криптосистему. – Daniel
Я думал, используя Rijndael WAS, используя существующую криптосистему? – sircodesalot
Нет, это всего лишь алгоритм шифрования. И это довольно сложно использовать правильно - даже обычно используемые протоколы SSL/TLS были изначально повреждены из-за неправильного использования AES (атака BEAST и т. Д.) И должны были быть обновлены. – Daniel