Netflix a publié des correctifs d'implémentation TLS pour le noyau FreeBSD

Société Netflix suggéré pour tester l'implémentation de TLS (KTLS) au niveau du noyau FreeBSD, qui permet une augmentation significative des performances de chiffrement pour les sockets TCP. Prend en charge l'accélération du cryptage des données transmises à l'aide des protocoles TLS 1.0 et 1.2 envoyés au socket à l'aide des fonctions write, aio_write et sendfile.

L'échange de clés au niveau du noyau n'est pas pris en charge et la connexion doit d'abord être établie et négociée dans l'espace utilisateur. Pour transférer au noyau la clé de session obtenue lors du processus de négociation de connexion pour les sockets, l'option TCP_TXTLS_ENABLE a été ajoutée, après activation de laquelle toutes les données envoyées au socket seront encapsulées dans des trames TLS à l'aide de la clé spécifiée. Pour envoyer des messages de service, par exemple pour négocier une connexion, vous devez utiliser la fonction sendmsg avec le type d'enregistrement TLS_SET_RECORD_TYPE.

Deux méthodes principales de cryptage des trames TLS sont prises en charge : logicielle et ifnet (en utilisant l'accélération matérielle des cartes réseau). Le choix de la méthode s'effectue à l'aide
options de socket TCP_TXTLS_MODE. La méthode logicielle vous permet de connecter différents backends pour le cryptage. À titre d'exemple, le backend ktls_ocf.ko prenant en charge AES-GCM, implémenté sur la base du framework OpenCrypto, a été publié. Plusieurs sysctls sont proposés pour la gestion au sein de la branche kern.ipc.tls.*. Lors de la construction du noyau, la prise en charge de TLS est activée à l'aide de l'option KERN_TLS.

Source: opennet.ru

Ajouter un commentaire