Società Netflix
Lo scambio di chiavi a livello di kernel non è supportato e la connessione deve essere prima stabilita e negoziata nello spazio utente. Per trasferire al kernel la chiave di sessione ottenuta durante il processo di negoziazione della connessione per i socket, è stata aggiunta l'opzione TCP_TXTLS_ENABLE, dopo l'attivazione della quale tutti i dati inviati al socket verranno incapsulati in frame TLS utilizzando la chiave specificata. Per inviare messaggi di servizio, ad esempio per negoziare una connessione, è necessario utilizzare la funzione sendmsg con il tipo di record TLS_SET_RECORD_TYPE.
Sono supportati due metodi principali per crittografare i frame TLS: software e ifnet (utilizzando l'accelerazione hardware delle schede di rete). La scelta del metodo viene effettuata utilizzando
opzioni socket TCP_TXTLS_MODE. Il metodo software consente di connettere diversi backend per la crittografia. Ad esempio, è stato pubblicato il backend ktls_ocf.ko con supporto per AES-GCM, implementato sulla base del framework OpenCrypto. Diversi sysctl sono offerti per la gestione all'interno del ramo kern.ipc.tls.*. Durante la compilazione del kernel, il supporto TLS viene abilitato utilizzando l'opzione KERN_TLS.
Fonte: opennet.ru