Пример ECDHE-PSK mbedTLS?

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

1 ответ

Решение

ECDHE-PSK - это метод обмена ключами, используемый в TLS. Сначала вы должны взглянуть на учебник mbed TLS TLS.

Затем вам нужно настроить предварительный общий ключ на обоих концах. Обычно это связано с использованием mbedtls_ssl_conf_psk() на стороне клиента и, хотя те же функции теоретически могут быть использованы и на стороне сервера, если вы ожидаете только связи с одним клиентом, на практике большую часть времени вы захотите использовать mbedtls_ssl_conf_psk_cb() установить функцию обратного вызова, которая выберет соответствующий предварительный общий ключ для каждого клиента.

Вам также необходимо настроить список разрешенных шифров. Это можно сделать во время выполнения, используя mbedtls_ssl_conf_ciphersuites(), В качестве альтернативы, если вы знаете, что будете использовать только ECDHE-PSK, вы можете настроить свою сборку так, чтобы отключить все другие обмены ключами, что также сведет к минимуму ваше использование.

Наконец, вы можете найти полностью рабочие примеры использования TLS с различными шифровальными наборами, в том числе на основе ECDHE-PSK в распределении mbed TLS как ssl_client2.c и ssl_server2.c. Вы можете проверить, как функции, упомянутые выше, используются в примерах, и, в частности, вы найдете пример обратного вызова PSK на стороне сервера.

Другие вопросы по тегам