tail head cat sleep
QR code linking to this page

manページ  — 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 ガイドも参照してください。


1997 Jan 12 PAM_FAIL_DELAY (3) PAM 0.56

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.