Как установить SSL-шифры при использовании CFSocket / CFStream в Какао?

Мне недавно нужно было настроитьCocoaHttpServer, который мы успешно используем в нашем приложении для обработки HTTPS-соединений, исходящих из клиентского приложения (работающего на устройствах Android). Это хорошо - есть обильный пример кода, который позволяет это сделать, и мы смогли включить безопасный сервер без проблем.

На практике мы наблюдали невероятно длительные фазы согласования SSL, пока клиент выполнял рукопожатие с нашим сервером - свыше 70 секунд.

В ходе долгих поисков я обнаружил, что задержка вызвана вычислением параметров Диффи-Хеллмана, используемых по умолчанию, когда SSL включен в CFSocket. Этотнить где я впервые начал искать ответ на свой вопрос.

Чтобы соответствовать тому, что делал наш сервер Windows (используя менее защищенный шифр SSL), мне нужно было явно установить шифр на Mac, что нелегко при использовании AsyncSocket в качестве оболочки для обмена сокетами.

Наш сервер Windows использовал: TLS_RSA_WITH_RC4_128_MD5) (0x04) RC4 128 бит MD5 RSA

Наш сервер Macintosh использовал: TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x039) AES 256 бит SHA-1 Обмен эфемерным ключом Диффи-Хеллмана с использованием сертификата RSA

Разница в «безопасности» велика, но, вероятно, не стоит того усилия / вычисления / задержки, которые мы наблюдали. Театр безопасности?

Ответы на вопрос(2)

Ваш ответ на вопрос