Go to main content
Oracle® Solaris 11 セキュリティー開発者ガイド

印刷ビューの終了

更新: 2016 年 11 月
 
 

GSS-API の実装に固有な機能

GSS-API の実装によっては、いくつかの動作が若干異なる場合もあります。ほとんどの場合、実装による違いはプログラムに最小限の影響しか与えません。どのような場合でも、実装に固有な動作 (Oracle Solaris 実装も含む) に依存しなければ、移植性を最大限にすることができます。

Oracle Solaris 固有の関数

Oracle Solaris の実装には、カスタマイズされた GSS-API 関数はありません。

人が読める名前についての構文

GSS-API の実装によっては、名前の出力可能な形式についての構文が異なる場合があります。移植性を最大限にする場合は、アプリケーションで、人が読める (つまり出力可能な) 形式を使用する名前を比較するべきではありません。そのかわり、gss_compare_name() を使用して内部形式名がほかの名前と一致するかどうかを確認してください。

Oracle Solaris 実装の gss_display_name() では名前を次のように表示します。input_name 引数がユーザー主体を指す場合、gss_display_name() は user_principal@realm を output_name_buffer として、gss_OID 値を output_name_type として返します。Kerberos v5 が実際のメカニズムである場合、gss_OID は 1.2.840.11354.1.2.2 になります。

gss_import_name() が GSS_C_NO_OID 名前型で作成した名前を gss_display_name() が受け取った場合、gss_display_name() は GSS_C_NO_OID を output_name_type パラメータで戻します。

匿名の形式

gss_display_name() 関数は、匿名の GSS-API 主体を示すとき、文字列 <anonymous> を出力します。この名前に関連する名前型 OID は GSS_C_NT_ANONYMOUS です。Oracle Solaris 実装で有効な印刷可能な名前の中では、これ以外にかぎかっこ (<>) で囲まれているものはありません。

選択されたデータ型の実装

gss_cred_t、gss_ctx_id_t、gss_name_t の各データ型はポインタとして実装されています (一部の実装では算術型として指定される場合もある)。

コンテキストの削除と格納されたデータの解放

コンテキストの確立に失敗すると、Oracle Solaris 実装では部分的に構築されたコンテキストを自動的に削除しません。したがって、アプリケーションでこの事態を処理する、つまり、gss_delete_sec_context() でコンテキストを削除する必要があります。

Oracle Solaris の実装では、格納されたデータ (内部名など) を、メモリー管理を通じて自動的に解放します。しかし、データ要素が必要でなくなったときには、アプリケーションで適切な関数 (gss_release_name() など) を呼び出す必要があります。

チャネルバインディング情報の保護

チャネルバインディングをサポートしているかどうかは、メカニズムによって異なります。Diffie-Hellman メカニズムと Kerberos v5 メカニズムはどちらもチャネルバインディングをサポートしています。

開発者は、チャネルバインディングデータには機密保護が施されていないものとしてください。Kerberos v5 メカニズムには機密保護が用意されていますが、 Diffie-Hellman メカニズムではチャネルバインディングデータの機密性は保持されません。

コンテキストのエクスポートとプロセス間トークン

Oracle Solaris 実装では、同じコンテキストに対する複数のインポートの試みを検出および拒否します。

サポートされる資格の型

GSS-API の Oracle Solaris 実装では、gss_acquire_cred() による、GSS_C_INITIATE、GSS_C_ACCEPT、および GSS_C_BOTH の各資格の獲得をサポートしています。

資格の有効期間

GSS-API の Oracle Solaris 実装では、資格の有効期間の設定をサポートします。したがって、プログラマは gss_acquire_cred()gss_add_cred() などの関数で、資格の有効期間に関連するパラメータを使用できます。

コンテキストの有効期間

GSS-API の Oracle Solaris 実装では、コンテキストの有効期間の設定をサポートします。したがって、プログラマは gss_init_sec_context()gss_inquire_context() などの関数で、コンテキストの有効期間に関連するパラメータを使用できます。

ラップサイズの制限と QOP 値

GSS-API の Oracle Solaris 実装では、ベースとなるメカニズムとは異なり、gss_wrap() で処理するメッセージの最大サイズ制限を課しません。アプリケーションは gss_wrap_size_limit() でメッセージの最大サイズを決定できます。

GSS-API の Oracle Solaris 実装では、gss_wrap_size_limit() を呼び出すとき、無効な QOP 値を検出します。

minor_status パラメータの使用

GSS-API の Oracle Solaris 実装では、関数が minor_status パラメータで戻すのは、メカニズムに固有な情報のみです。他の実装では、戻されたマイナーステータスコードの一部として実装に固有な戻り値が含まれることもあります。