Может ли шифрование с помощью симметричного ключа вместо рукопожатия ssl для связи через сокет улучшить скорость соединения? - PullRequest
0 голосов
/ 05 декабря 2011

Мне нужно реализовать связь через сокет tcp между сервером и клиентом iOS.Я думаю об использовании симметричного ключа шифрования для защиты данных, передаваемых по каналу.Я буду хранить симметричный ключ внутри приложения, которое я считаю безопасным.(не будет никакого рукопожатия ключа)

Однако я не уверен, улучшит ли скорость соединения соединение с помощью симметричного шифрования ключа через сокет ssl?

Мое требование - соединение должно бытьустанавливается как можно скорее, когда пользователь запускает приложение.Кто-нибудь может указать мне правильное направление?

1 Ответ

2 голосов
/ 05 декабря 2011

Проблема скорости с TLS связана только с рукопожатием открытого ключа.Как прокомментировал Бруно, TLS использует симметричное шифрование после рукопожатия.

Если рукопожатие с открытым ключом добавляет слишком большую задержку для этого конкретного приложения, вы не должны использовать схему общего секрета, которую вы предлагаете с общим ключом шифрования.Если вы используете один и тот же ключ для каждого соединения, зашифрованный текст уязвим для атак, анализирующих зашифрованный текст нескольких сеансов.Вместо этого вам нужно применить схему для использования «общего секрета» (который никогда не используется непосредственно для шифрования) для согласования уникального ключа шифрования для каждого соединения.Кроме того, вам нужен некоторый протокол для проверки целостности передаваемых данных.

Все это сложно сделать правильно, поэтому, если возможно, вам следует использовать TLS.

...