2015-09-11 9 views
3

Я пытаюсь выяснить, как использовать mbedTLS (ранее PolarSSL) для выполнения шифрования ECDHE-PSK между двумя одноранговыми узлами. К сожалению, нет каких-либо статей/документации по API, которые мне нужно использовать?ECDHE-PSK Пример mbedTLS?

ответ

6

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.