EN JA
GSSAPI(3)
GSSAPI(3) FreeBSD Library Functions Manual GSSAPI(3)

名称

gssapi一般的なセキュリティサービス API

ライブラリ

GSS-API ライブラリ (libgssapi, -lgssapi)

書式

#include < gssapi/gssapi.h>

解説

一般的なセキュリティサービスアプリケーションプログラミングインタフェース (Generic Security Service Application Programming Interface) は、さまざまな基本的な暗号のメカニズムの上での実装を対象として、呼び出し側へのセキュリティサービスを提供します。通常、GSS-API の呼び出し側は、セキュリティ増強が GSS-API によって提供されたサービスの呼び出しを通して統合されているかへのアプリケーションプロトコルとなります。 GSS-API によって、呼び出し側のアプリケーションは、ピアへの権利を委任するために、そして、メッセージ毎をベースにして秘密性と整合性のようなセキュリティサービスを適用するために、ピア (相手側) アプリケーションに関連しているプリンシパルの識別を認証することができます。

GSS-API を使用するために 4 つのステージがあります:

a)
アプリケーションは、他のプロセスへの識別を検証する 1 組の資格証明を獲得します。アプリケーションの資格証明は、実行されている任意のローカルのユーザ名に関連しているかどうか分からない、グローバルな識別を保証します。
b)
1 組の通信アプリケーションは、それらの資格証明を使用して結合セキュリティコンテキストを確立します。セキュリティコンテキストは、メッセージ毎のセキュリティサービスを提供するために必要である共有された状態の情報を含む 1 組の GSS-API データ構造です。セキュリティコンテキストの一部としてアプリケーションの間で共有されるかもしれない状態の例は、暗号のキー、とメッセージシーケンス番号です。セキュリティコンテキストの確立の一部として、コンテキスト開始プログラムは、応答側に認証されて、応答側が順番に認証されることを必要とします。開始プログラムは、創始プログラムのエージェントまたは代表として振る舞う、さらなるセキュリティコンテキストを開始する権利を応答側にオプションで与えます。この権利の転送は、委任と呼ばれて、1 組の資格証明を作成することによって達成され、開始アプリケーションよって使用されるものと同様ですが、応答側によって使用されます。

セキュリティコンテキストを作る共有された情報を確立して保守するために、特定の GSS-API 呼び出しは、暗号化され保護されたデータを含む不透明な (サイズおよび形がわからない) データタイプである、トークンデータ構造を返します。そのような GSS-API ルーチンの呼び出し側は、アプリケーションプロトコルで必要ならカプセル化されたトークンをピアアプリケーションに転送する責任があります。そのようなトークンを受け取り次第、ピアアプリケーションは、それに応じてセキュリティコンテキスト状態の情報をアップデートして、トークンをデコードしてて、情報を抽出する対応する GSS-API ルーチンに渡すべきです。

c)
メッセージ毎のサービスは、次のいずれかを適用するために呼び出されます:

整合性とデータ起源認証、または秘密性、整合性とアプリケーションデータへのデータ起源認証は、任意のオクテット文字列として GSS-API によって取り扱われます。保護したいメッセージを転送するアプリケーションは、保護を適用して、適切なセキュリティコンテキストを指定し、結果のトークンを受信アプリケーションに送信するために適切な GSS-API ルーチン (gss_get_mic または gss_wrap) を呼び出します。受信側は、保護を取り除いて、データを有効にするために、対応するデコードルーチン (gss_verify_mic または gss_unwrap) へ受信されたトークン (と、gss_get_mic によって保護されたデータの場合、添付のメッセージデータ) を渡します。

d)
通信セッション (いくつかの転送の接続にわたって拡張されるかもしれない) の完了で、各アプリケーションは、セキュリティコンテキストを削除するために GSS-API ルーチンを呼び出します。また、複数のコンテキストは、アプリケーションのオプションで、単一の通信関連の中で (連続するか、または同時に) 使用されます。

GSS-API ROUTINES

このセクションは、GSS-API を構成するルーチンをリストし、それぞれのルーチンの目的の簡単な説明を提示します。

GSS-API 資格証明管理ルーチン:

gss_acquire_cred
グローバルな識別仮定します;前もって存在している資格証明のための GSS-API 資格証明ハンドルを取得します。
gss_add_cred
増加する資格証明を構成します
gss_inquire_cred
資格証明に関する情報を取得します
gss_inquire_cred_by_mech
資格証明に関するメカニズム毎の情報を取得します。
gss_release_cred
資格証明ハンドルを破棄します。

GSS-API コンテキストレベルルーチン:

gss_init_sec_context
ピアアプリケーションでセキュリティコンテキストを開始する
gss_accept_sec_context
ピアアプリケーションによって開始されたセキュリティコンテキストを受け付ける
gss_delete_sec_context
セキュリティコンテキストを破棄します
gss_process_context_token
ピアアプリケーションからセキュリティコンテキストでトークンを処理します
gss_context_time
どれくらい長いコンテキストが有効なままで残るかを決定する
gss_inquire_context
セキュリティコンテキストに関する情報を取得する
gss_wrap_size_limit
コンテキストで gss_wrap(3) のためのトークンサイズの制限を決定する
gss_export_sec_context
セキュリティコンテキストを別のプロセスに転送します
gss_import_sec_context
転送されたコンテキストをインポートする

GSS-API のメッセージ毎のルーチン:

gss_get_mic
メッセージのために暗号メッセージの整合性コード (MIC) を計算する;整合性サービス
gss_verify_mic
メッセージに対して MIC をチェックする;受信されたメッセージの整合性を確認する
gss_wrap
MIC をメッセージにアタッチし、オプションでメッセージの内容を暗号化します;秘密性サービス
gss_unwrap
アタッチされた MIC でメッセージを検証し、必要なら、暗号化されたメッセージの内容を復号化します

GSS-API 名前操作ルーチン:

gss_import_name
隣接する文字列名を内部の形式に変換します
gss_display_name
内部の形式名をテキストに変換します
gss_compare_name
2 つの内部の形式名を比較します
gss_release_name
内部の形式名を破棄します
gss_inquire_names_for_mech
指定されたメカニズムによってサポートされた名前タイプをリストします
gss_inquire_mechs_for_name
指定された名前タイプをサポートするメカニズムをリストします
gss_canonicalize_name
内部名を NM に変換します
gss_export_name
NM をエクスポート形式を変換します
gss_duplicate_name
内部名のコピーを作成します

GSS-API のその他のルーチン

gss_add_oid_set_member
オブジェクト識別子をセットに追加します
gss_display_status
GSS-API 状態コードをテキストに変換します
gss_indicate_mechs
利用可能な基本的な認証メカニズムを決定します
gss_release_buffer
バッファを廃棄します
gss_release_oid_set
1 組のオブジェクト識別子を破棄します
gss_create_empty_oid_set
オブジェクト識別子を含まないセットを作成します
gss_test_oid_set_member
オブジェクト識別子が 1 組のメンバであるかどうか決定します。

個々の GSS-API 実装は、必要な機能性が一般的な形式から利用可能でないなら、追加のメカニズム特有のルーチンを提供することによって、これらのルーチンを増補します。アプリケーションは、移植性のある領域で可能な限り一般的なルーチンを使用することが奨励されます。

規格

RFC 2743
Generic Security Service Application Program Interface Version 2, Update 1
RFC 2744
Generic Security Service API Version 2 : C-bindings

歴史

gssapi ライブラリは、 FreeBSD 7.0 ではじめて登場しました。

作者

John Wray, Iris Associates

COPYRIGHT

Copyright (C) The Internet Society (2000). All Rights Reserved.

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

January 26, 2010 FreeBSD