メインコンテンツまでスキップ

3.4. TLS セッション ID との相互作用

サーバーがチケットを提示しないクライアントにセッションチケットを発行する予定である場合、サーバーは ServerHello に空の Session ID を含めるべきです (SHOULD)。サーバーがチケットを拒否して完全ハンドシェイクにフォールバックする場合、ステートフルなセッション再開のサポートを示すために空でない Session ID を含めてもよいです。クライアントがサーバーからセッションチケットを受け取った場合、クライアントは ServerHello で送信された Session ID を破棄します。

チケットを提示する際、クライアントは Session ID を生成して TLS ClientHello に含めてもよいです (MAY)。サーバーがチケットを受け入れ、かつ Session ID が空でない場合、サーバーは ClientHello に存在するものと同じ Session ID で応答しなければなりません (MUST)。これにより、クライアントは、サーバーがセッションを再開しているのか、完全ハンドシェイクにフォールバックしているのかを容易に区別できます。Session ID はクライアントが生成するため、サーバーはチケットを検証する際に Session ID が特定の値を持つことに依存してはなりません (MUST NOT)。クライアントによってチケットが提示された場合、サーバーはステートフルなセッション再開のために ClientHello 内の Session ID を使用しようと試みてはなりません (MUST NOT)。あるいは、クライアントは ClientHello に空の Session ID を含めてもよいです (MAY)。この場合、クライアントは ServerHello で送信された Session ID を無視し、後続のハンドシェイクメッセージによってサーバーがセッションを再開しているかどうかを判断します。