Help us understand the problem. What is going on with this article?

Kernel TLSをOpenSSLで有効にする

More than 1 year has passed since last update.

Linux 4.13より、Kernel内でTLS処理を行うKTLSが利用できるようになりました。

最新のOpenSSLではKTLSを利用できるので試してみる。

参考
- kernel.orgのドキュメント
- PLAYING WITH KERNEL TLS IN LINUX 4.13 AND GO

(TLS1.2のAES-128-GCMしか対応してない?)

ビルド

デフォルトでは有効でないので、ビルドする。
KTLSに対応してないカーネルを使用している場合は、強制的に無効になってしまいます。

$ git clone https://github.com/openssl/openssl.git
$ cd ./openssl
$ ./config enable-ktls
$ make

確認

適当なサイトに接続し、straceを使って、setsockoptでktlsを有効にしていることを確認する。

$ LD_LIBRARY_PATH=. strace ./apps/openssl s_client -connect asnokaze.com:443 2>&1 |grep setsock
setsockopt(3, SOL_TCP, TCP_ULP, [7564404], 4) = 0

これでよいのかな。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away