Я пытаюсь выяснить, как использовать mbedTLS (ранее PolarSSL) для выполнения шифрования ECDHE-PSK между двумя одноранговыми узлами. К сожалению, нет каких-либо статей/документации по API, которые мне нужно использовать?ECDHE-PSK Пример mbedTLS?
ответ
ECDHE-PSK - это метод обмена ключами, используемый в TLS. Сначала вы должны взглянуть на mbed TLS TLS tutorial.
Затем вам необходимо настроить предварительно открытый ключ на обоих концах. Обычно это связано с использованием клиентской стороны на стороне , и хотя теоретически можно использовать и те же функции на стороне сервера, если вы только собираетесь общаться с одним клиентом, на практике большую часть времени вы хотите использовать mbedtls_ssl_conf_psk_cb()
для настройки функция обратного вызова, которая будет выбирать соответствующий предварительно общий ключ для каждого клиента.
Вам также необходимо настроить список разрешенных ciphersuites. Это можно сделать во время выполнения, используя mbedtls_ssl_conf_ciphersuites()
. В качестве альтернативы, если вы знаете, что используете только ECDHE-PSK, вы можете customize your build отключить все другие обмены ключами, что также минимизирует ваш след.
Наконец, вы можете найти полностью рабочие примеры выполнения TLS с различными ciphersuites, в том числе на основе ECDHE-PSK в распределении MLS TLS, как ssl_client2.c и ssl_server2.c. Вы можете проверить, как упомянутые выше функции используются в примерах, и, в частности, вы найдете пример серверной стороны PSK callback.