Связь клиент/сервер с использованием TCP/IP по протоколу TLS 1.3

Я хочу написать клиент и сервер предпочтительно на C, при необходимости на простом C++.

Сервер будет работать на какой-то разновидности Linux, клиент предназначен для тестирования сервера.

Я хочу убедиться, что сообщения получены и не содержат ошибок; поэтому я буду использовать TCP.

Я хочу, чтобы они общались безопасно; поэтому я буду использовать последнюю версию TLS (v1.3).

Я намерен использовать библиотеку GnuTLS по следующим причинам:

  • Активно обновляется авторитетным проектом с открытым исходным кодом
  • Лицензия разрешает продажу продукта

Учитывая вышесказанное, если оно будет реализовано и протестировано, я могу заявить, что связь между клиентом и сервером безопасна, надежна (т. е. гарантирована) и проверена на наличие ошибок. Да?

Я что-то упускаю? Есть ли что-то заведомо ложное?

Редактировать: сертификаты... я думаю, что мне не хватает сертификатов для защиты от атак "человек посередине"...


person oaklodge    schedule 26.05.2020    source источник


Ответы (1)


TLS — сложная тема. В зависимости от вашего конкретного кода подключение TLS может быть выполнено успешно, даже если вы не сможете должным образом проверить сертификат. Таким образом, только на основании того, что вы указали до сих пор в своем вопросе, нельзя быть уверенным, что данные передаются с надлежащей сквозной защитой и что ни один человек посередине не может манипулировать данными.

person Steffen Ullrich    schedule 26.05.2020