8.3. Use of Contexts (コンテキストの使用)
8.3. Use of Contexts (コンテキストの使用)
コンテキスト (contexts) は, 異なるプロトコル間でのプロトコル利用の分離 (これを他の方法で確実に行うのは非常に難しい), および同一プロトコル内の異なる利用の分離に用いられる。ただし, この機能を用いる際には, 次の点を念頭に置くべきである (SHOULD):
-
コンテキストは, それを用いるプロトコルによって指定される定数文字列であるべきである (SHOULD)。メッセージ自体から得られる可変要素を含めるべきではない (SHOULD NOT)。
-
コンテキストを場当たり的に用いるべきではない (SHOULD NOT)。そのような使い方は誤りが起きやすい。コンテキストを用いる場合は, その目的で利用可能なすべての署名方式がコンテキストをサポートすることを要求すべきである (SHOULD)。
-
コンテキストは追加の入力であり, API にまで波及する。したがって, 署名方式がコンテキストをサポートしていても, 実際には利用できないことがある。多くの場合アプリケーションは署名・検証関数を直接ではなく別のプロトコル経由で呼び出すため, この問題はさらに深刻になる。