130 lines
3.1 KiB
Groff
130 lines
3.1 KiB
Groff
.\" Hey Emacs! This file is -*- nroff -*- source.
|
|
.\" $Id: pam_fail_delay.3,v 1.5 2002-11-03 06:38:28 horikawa Exp $
|
|
.\" %FreeBSD: src/contrib/libpam/doc/man/Attic/pam_fail_delay.3,v 1.2.6.2 2001/06/11 15:28:11 markm Exp %
|
|
.\" Copyright (c) Andrew G. Morgan 1997 <morgan@parc.power.net>
|
|
.\" $FreeBSD$
|
|
.TH PAM_FAIL_DELAY 3 "1997 Jan 12" "PAM 0.56" "Programmers' Manual"
|
|
.SH 名称
|
|
|
|
pam_fail_delay \- エラー時に遅延を要求
|
|
|
|
.SH 書式
|
|
.B #include <security/pam_appl.h>
|
|
.br
|
|
または
|
|
.br
|
|
.B #include <security/pam_modules.h>
|
|
.sp
|
|
.BI "int pam_fail_delay(pam_handle_t " "*pamh" ", unsigned int " "usec" ");"
|
|
.sp 2
|
|
.SH 解説
|
|
.br
|
|
申請ユーザのアクセスをスキームが拒否する場合にかかる時間を悪用することで、
|
|
しばしば認証スキームに攻撃可能です。
|
|
タイムアウトが
|
|
.I 短い
|
|
場合、
|
|
.I 腕力による
|
|
辞書攻撃が可能な場合があります。
|
|
自動処理により考えられるパスワードをすべて試して、攻撃者がシステムに
|
|
アクセスしようとするのです。
|
|
一方、個々の失敗が (失敗の性質を示すような) 計測可能な時間を費す場合、
|
|
認証処理に関する有用な情報を攻撃者が取得可能です。
|
|
後者の攻撃は、重要な情報の
|
|
.I 隠れ通信路 (covert channel)
|
|
である、手続き遅延を使用することです。
|
|
|
|
.br
|
|
このような攻撃の効果を最低限に抑えるには、エラーとなった認証プロセスで
|
|
ランダムな遅延を導入することが有効です。
|
|
.B PAM
|
|
には、ランダムな遅延を導入する機能があります。遅延は、
|
|
.BR pam_authenticate "(3)"
|
|
関数と
|
|
.BR pam_chauthtok "(3)"
|
|
関数の
|
|
エラー時に発生します。すべての認証モジュールが呼び出された
|
|
.I 後
|
|
で、制御がサービスアプリケーションに戻る
|
|
.I 前
|
|
に発生します。
|
|
|
|
.br
|
|
.BR pam_fail_delay "(3)"
|
|
関数を使用すると、エラー遅延に必要な最低時間 (
|
|
.I usec
|
|
引数) を指定できます。この関数は、ユーザによるサービスの再申請を
|
|
遅らせることが重要となるサービスアプリケーションや認証モジュールから呼び
|
|
出せます。遅延の長さは必要なときに算出されます。
|
|
長さは、
|
|
.I 最大
|
|
要求値に対する擬似ガウシアン分布になります。
|
|
最大要求値の上下 25% までに分散されるのです。
|
|
|
|
.br
|
|
.BR pam_authenticate "(3)"
|
|
や
|
|
.BR pam_chauthtok "(3)"
|
|
から戻る場合、問題の有無に関係なく、新しい要求遅延は
|
|
デフォルト値の 0 にリセットされます。
|
|
|
|
.SH 例
|
|
.br
|
|
.B ログイン
|
|
アプリケーションで約 3 秒間のエラー遅延が必要となる場合、
|
|
このアプリケーションには以下のコードが含まれます。
|
|
.sp
|
|
.br
|
|
.B " pam_fail_delay(pamh, 3000000 /* micro-seconds */ );"
|
|
.br
|
|
.B " pam_authenticate(pamh, 0);"
|
|
.sp
|
|
.br
|
|
モジュールが遅延を要求しない場合、エラー遅延は 2.25 秒と 3.75 秒の
|
|
間になります。
|
|
|
|
.br
|
|
認証プロセスで呼び出されるモジュールでも、以下のような遅延が
|
|
要求されることがあります。
|
|
.sp
|
|
.br
|
|
.RB " (モジュール #1) " "pam_fail_delay(pamh, 2000000);"
|
|
.sp
|
|
.br
|
|
.RB " (モジュール #2) " "pam_fail_delay(pamh, 4000000);"
|
|
.sp
|
|
.br
|
|
この場合、実際のエラー遅延の算出に使用されるのは最大要求値です。
|
|
ここでは 3 秒から 5 秒です。
|
|
|
|
.SH 戻り値
|
|
.BR pam_fail_delay "(3)"
|
|
で問題が発生しなかった場合は、
|
|
.BR PAM_SUC-CESS
|
|
が戻されます。その他すべての戻り値は、重大なエラーとみなしてください。
|
|
|
|
.SH エラー
|
|
.BR pam_strerror "(3)"
|
|
でテキストに変換できます。
|
|
|
|
.SH 準拠
|
|
X/Open グループが、PAM RFC. 1996/1/10 に組み込むことを検討中です。
|
|
|
|
.SH バグ
|
|
.sp 2
|
|
見つかっていません。
|
|
|
|
.SH 関連項目
|
|
|
|
.BR pam_start "(3), "
|
|
.BR pam_get_item "(3), "
|
|
.BR pam_strerror "(3)"
|
|
|
|
.BR システム管理者
|
|
、
|
|
.BR モジュール開発者
|
|
、
|
|
.BR アプリケーション開発者
|
|
用の
|
|
.BR Linux-PAM
|
|
ガイドも参照してください。
|