LoginSignup
1
0

More than 1 year has passed since last update.

DTLS1.3がRFCになったので、wolfSSLで試してみる

Last updated at Posted at 2022-04-24

DTLS 1.3の標準化

先日DTLS1.3の仕様が「RFC 9147 The Datagram Transport Layer Security (DTLS Protocol Version 1.3」として標準化されています。

DTLS1.3はTLS1.3(RFC 8446)に基づいており、同等のセキュリティを提供します。TLS1.3と同じように0-RTTハンドシェイクを利用できます。

また、Connection IDを使う場合は、IPアドレスが変わったとしてもConnection IDを用いて通信を識別することができるため、ハンドシェイクからやり直す必要はありません。

実装状況

今のところ、簡単にソースコードを眺めた所「NSS」や「wolfSSL」で実装が進められているようです。

wolfSSLはまだプルリクエストが出されている状況です。

試す

プルリクの出ているリポジトリをビルドするだけ

https://github.com/wolfSSL/wolfssl/pull/4907 (マージされたら本家のリポジトリで良さそう)

$ git clone https://github.com/rizlik/wolfssl.git
$ cd ./wolfssl

$ git checkout dtls13
$ ./autogen.sh
$ ./configure --enable-dtls --enable-tls13 --enable-dtls13
$ make

Server

$ ./examples/server/server  -v 4 -u

Client

$ ./examples/client/client -v 4 -u
SSL version is unknown
SSL cipher suite is TLS_AES_128_GCM_SHA256
SSL curve name is SECP256R1
I hear you fa shizzle!

パケット

パケットキャプチャしてみます。

DTLS1.3に対応していないWiresharkでは、DTLS1.3の狙い通りただのDTLS1.2に見えます。ちゃんと、ハンドシェイク中のsupported_version拡張はDTLS1.3を示す0xfefcが選択されていることが確認できます。

image.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0