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.

If it wasn't for C, we'd be using BASI, PASAL and OBOL