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

4. ECC のための TLS 拡張

本仕様では2つの TLS 拡張が定義されている:(i) Supported Elliptic Curves Extension (サポートされる楕円曲線拡張) および (ii) Supported Point Formats Extension (サポートされるポイント形式拡張)。これらは、新しいセッションを開始するハンドシェイク中に、特定の曲線とポイント形式(例:圧縮 vs 非圧縮)の使用を交渉することを可能にする。これらの拡張は、限られた数の曲線やポイント形式しかサポートしない可能性のある制約のあるクライアントにとって特に重要である。これらは [RFC4366] で概説されている一般的なアプローチに従う;メッセージの詳細はセクション5で規定される。クライアントは、ClientHello メッセージに適切な拡張を含めることで、サポートする曲線と解析可能なポイント形式を列挙する。サーバも同様に、ServerHello メッセージに拡張を含めることで、解析可能なポイント形式を列挙する。

ClientHello メッセージで ECC 暗号スイートを提案する TLS クライアントは、これらの拡張を含めるべきである (SHOULD)。ECC 暗号スイートを実装するサーバは、これらの拡張をサポートしなければならず (MUST)、クライアントがこれらの拡張を使用する場合、クライアントが指定した曲線の選択を尊重しながらハンドシェイクを完了できない限り、サーバは ECC 暗号スイートの使用を交渉してはならない (MUST NOT)。これにより、クライアントがサーバの EC 鍵を処理できないために、交渉された ECC ハンドシェイクがその後中止される可能性が排除される。

ECC 暗号スイートを提案しない場合、クライアントは ClientHello メッセージにこれらの拡張を含めてはならない (MUST NOT)。ECC 暗号スイートを提案するクライアントは、これらの拡張を含めないことを選択してもよい。この場合、サーバはセクション5に記載されている楕円曲線またはポイント形式のいずれかを自由に選択できる。同セクションでは、これらの拡張の構造と処理についてもより詳細に説明している。

セッション再開の場合、サーバは現在の ClientHello メッセージにある Supported Elliptic Curves Extension および Supported Point Formats Extension を単に無視する。これらの拡張は、新しいセッションを交渉するハンドシェイクの間のみ役割を果たす。