Симметричный ключ шифрования против.Асимметричные ключи — SSL
-
06-09-2019 - |
Вопрос
Я разрабатываю приложение клиент-сервер, которое использует SSL (openssl) для установления безопасного канала связи между клиентом и сервером.Я считаю, что теперь у меня есть два варианта безопасной передачи данных между клиентом и сервером.Один из вариантов — продолжить передачу данных по установленному защищенному каналу SSL между клиентом и сервером, даже если процесс шифрования/дешифрования будет медленным из-за использования асимметричных ключей.Другой вариант — передать симметричный ключ по каналу SSL и закрыть канал SSL, как только симметричный ключ будет доставлен клиенту.После этого связь будет происходить по обычному каналу TCP с использованием симметричного ключа, который, я считаю, будет намного быстрее, чем использование асимметричных ключей.Есть ли недостатки у этого подхода?Одна вещь, которая очевидна при подходе с симметричным ключом, — это процесс управления ключами, который я собираюсь реализовать, вообще не сохраняя ключи на клиенте.Симметричный ключ будет доставлен клиенту при запуске по каналу SSL.Ключ вообще НЕ будет храниться в клиенте.Есть предположения?
Решение
Вы путаете вещи.SSL использует асимметричный ключ (определенный в сертификате) для передачи автоматически сгенерированного симметричного ключа между клиентом и сервером.Этот симметричный ключ затем используется на протяжении всего защищенного сеанса (канала).
По сути, у вас уже есть быстрое симметричное шифрование при использовании SSL.Единственное асимметричное шифрование происходит в самом начале связи.
Не пытайтесь управлять своими симметричными ключами самостоятельно.Он не будет работать.
Другие советы
Продолжайте использовать соединение SSL, поскольку после начальной фазы SSL использует симметричный шифр.
Один из вариантов — продолжить передачу данных по установленному защищенному каналу SSL между клиентом и сервером, даже если процесс шифрования/дешифрования будет медленным из-за использования асимметричных ключей.
Нет, не будет.SSL использует симметричное шифрование.
Другой вариант — передать симметричный ключ по каналу SSL и закрыть канал SSL, как только симметричный ключ будет доставлен клиенту.
Клиент и сервер уже имеют симметричный ключ шифрования, как только сеанс установлен.Это было бы просто излишним.
Здесь нет проблемы, которую нужно было бы решить.