Netflix компаниясы
Обмен ключами на уровне ядра не поддерживается и соединение должно вначале быть установлено и согласовано в пространстве пользователя. Для передачи ядру полученного в процессе согласования соединения сессионного ключа для сокетов добавлена опция TCP_TXTLS_ENABLE, после активации которой все отправляемые в сокет данные будут инкапсулироваться в кадры TLS с использованием заданного ключа. Для отправки служебных сообщений, например для согласования соединения, следует использовать функцию sendmsg с типом записи TLS_SET_RECORD_TYPE.
Поддерживается два основных метода шифрования TLS-кадров: программный и ifnet (с задействованием аппаратных средств ускорения сетевых карт). Выбор метода осуществляется при помощи
опции сокета TCP_TXTLS_MODE. Программный метод позволяет подключать разные бэкенды для шифрования. В качестве примера опубликован бэкенд ktls_ocf.ko с поддержкой AES-GCM, реализованный на базе фреймврока OpenCrypto. Для управления предлагается несколько sysctl в рамках ветки kern.ipc.tls.*. При сборке ядра поддержка TLS включается при помощи опции KERN_TLS.
Source: opennet.ru