Математика и разработка быстрых TLS-хендшейков С++

Доклад принят в программу конференции
Александр Крижановский
Tempesta Technologies

Основатель и системный архитектор Tempesta Technologies, эксперт в области высокопроизводительных вычислений в Linux/x86-64.

Тезисы

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

За основу мы взяли mbed TLS, которую мы практически полностью переписали, чтобы сделать в 40 раз быстрее. В разработке мы также заимствуем части кода WolfSSL — более быстрой, чем OpenSSL-реализации. WolfSSL использует алгоритмы, аналогичные OpenSSL, которым уже более 5-7 лет. Мы обнаружили, что недавно появились более эффективные алгоритмы, которые мы реализуем в Tempesta TLS.

Работа по оптимизации производительности Tempesta TLS все еще не закончена, но Tempesta TLS уже устанавливает на 40-80% больше TLS-соединений, чем OpenSSL/Nginx, и в некоторых тестах дает до 4 раз меньшее время задержки.

В докладе будут рассмотрены:
* базовые принципы эллиптических кривых и основные "горячие точки";
* возможные side channel attacks (SCA) и методы защиты от них;
* новые и быстрые алгоритмы, используемые в эллиптических кривых;
* альтернативные решения, принимаемые разработчиками OpenSSL, WolfSSL, mbed TLS и Tempesta TLS.

А еще будет много бенчмарков и забавного кода, который на C выглядит сложнее, чем на ассемблере.