スポンサーリンク

PAM_FAIL_DELAY

名称
書式
解説

戻り値
エラー
準拠
バグ
関連項目

名称

pam_fail_delay − エラー時に遅延を要求

書式

#include <security/pam_appl.h>
または
#include <security/pam_modules.h>

int pam_fail_delay(pam_handle_t *pamh, unsigned int usec);

解説

申 請ユーザのアクセスをスキームが拒否する場合にかかる時間を悪用すること で、しばしば認証スキームに攻撃可能です。タイムアウトが 短い場合、 腕 力 に よる辞書攻撃が可能な場合があります。自動処理により考えられるパスワー ドをすべて試して、攻撃者がシステムにアクセスしようとするのです。一 方、 個 々の失敗が (失敗の性質を示すような) 計測可能な時間を費す場合、認証処 理に関する有用な情報を攻撃者が取得可能です。後者の攻撃は、重要な情報の 隠れ通信路 (covert channel) である、手続き遅延を使用することです。

こ のような攻撃の効果を最低限に抑えるには、エラーとなった認証プロセスで ランダムな遅延を導入することが有効です。 PAM には、ランダムな遅延を導入 す る 機 能 が あ り ま す。 遅 延 は、 pam_authenticate(3) 関 数 と pam_chauthtok(3) 関数のエラー時に発生します。すべての認証モジュールが呼 び出された 後で、制御がサービスアプリケーションに戻る 前に発生します。

pam_fail_delay(3) 関数を使用すると、エラー遅延に必要な最低時間 ( usec 引数) を指定できます。この関数は、ユーザによるサービスの再申請を遅ら せ る ことが重要となるサービスアプリケーションや認証モジュールから呼び出せ ます。遅延の長さは必要なときに算出されます。長さは、 最大要求値に対する 擬似ガウシアン分布になります。最大要求値の上下 25% までに分散されるので す。

pam_authenticate(3) や pam_chauthtok(3) から戻る場合、問題の有無に関 係 なく、新しい要求遅延はデフォルト値の 0 にリセットされます。

ログインアプリケーションで約 3 秒間のエラー遅延が必要となる場合、このア プリケーションには以下のコードが含まれます。

pam_fail_delay(pamh, 3000000 /* micro-seconds */ );
pam_authenticate(pamh, 0);

モジュールが遅延を要求しない場合、エラー遅延は 2.25 秒と 3.75 秒の間 に なります。

認 証プロセスで呼び出されるモジュールでも、以下のような遅延が要求される ことがあります。

(モジュール #1) pam_fail_delay(pamh, 2000000);

(モジュール #2) pam_fail_delay(pamh, 4000000);

この場合、実際のエラー遅延の算出に使用されるのは最大要求値です。ここ で は 3 秒から 5 秒です。

戻り値

pam_fail_delay(3) で問題が発生しなかった場合は、 PAM_SUC-CESS が戻され ます。その他すべての戻り値は、重大なエラーとみなしてください。

エラー

pam_strerror(3) でテキストに変換できます。

準拠

X/Open グループが、PAM RFC. 1996/1/10 に組み込むことを検討中です。

バグ

見つかっていません。

関連項目

pam_start(3), pam_get_item(3), pam_strerror(3)

システム管理者モジュール開発者アプ リ ケー ショ ン 開 発 者 用 の Linux-PAM ガイドも参照してください。

スポンサーリンク