PAM_FAIL_DELAY(3)

명칭
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 가이드도 참조해 주세요.