wolfSSLでのDTLS1.3実装では、Early Dataまたは0-RTT Dataをサポートします。Early Dataは、クライアントが最初のClientHelloメッセージとともに送信できるアプリケーション データです。アプリケーション データを送信するまでに必要な往復時間が0であるため、0-RTTデータとも呼ばれます。DTLS1.3でEarly Dataを利用するには、サーバーはPSK接続を使用するときにCookie交換を省略する必要があります。Early Dataを使用したハンドシェイクを次の図に示します:
Client Server
ClientHello
+ early_data
+ key_share
+ psk_key_exchange_modes
+ pre_shared_key
Early Data -------->
ServerHello
+ pre_shared_key
+ key_share
EncryptedExtensions
+ early_data
Finished
<-------- Application Data
EndOfEarlyData
Finished -------->
Application Data <-------> Application Data
cookie交換を行わずにwolfSSLでDTLS1.3 Early Dataを使用するには、次の様なサーバー変更が必要です:
- WOLFSSL_DTLS13_NO_HRR_ON_RESUME を定義して wolfSSL をコンパイル
- configure スクリプト使用時にはCPPFLAGS=-DWOLFSSL_DTLS13_NO_HRR_ON_RESUME を追加
- user_settings.hを使用する場合には、#define WOLFSSL_DTLS13_NO_HRR_ON_RESUME を追加
- WOLFSSLオブジェクトでwolfSSL_dtls13_no_hrr_on_resume(ssl, 1)を呼び出して、再開時のCookie交換を無効にします。
- 通常の接続と同様に続行
ご質問がある方はinfo@wolfSSL.jp までご連絡ください。