[정보보안] PAM이란?
[정보보안] PAM이란?
옛날 리눅스가 좋은 시절에는 su, passwd, login, xlock와 같은 프로그램들은 사용자 인증이 필요한 경우 간단히 /etc/passwd 파일에서 정보를 읽었다. 만약에 사용자 패스워드를 변경할 필요가 있는 경우, 간단히 /etc/passwd를 편집했다. 이러한 간단하나 투박한 방법은 시스템관리와 응용프로그램 개발자들에게 많은 문제점을 제공했다.MD5와 쉐도우 패스워드가 굉장히 유행함에 따라 다른 방법을 다루고자 할 때 사용자 인증을 필요로 하는 각각의 프로그램 적절한 정보를 얻는 방법을 알아야 했다.
PAM은 사용자정보의 저장방법과 관계없이 프로그램들이 투명하게 사용자를 인증하게 함으로써 이러한 혼잡함을 제거했다.
PAM
- Pluggable Authentication Modules
- 시스템에 공통적인 인증 방법을 제공
- 손쉬운 인증 모듈의 교체 및 추가/삭제
- 응용프로그램(서비스)가 패스워드 파일을 읽지 않고 PAM에게 요청
- 개발자가 사용자 인증에 신경 쓰지 않아도 되고, 시스템 관리자가 직접 응용프로그램의 인증 동작을 세밀하게 제어할 수 있음
- 다양한 인증 모듈을 호출해서 사용자 인증 과정을 수행, 모듈 결과에 알맞은 행동
- 모듈의 종류가 다양해서 인증 절차에 확실한 개념이 필요
- PAM은 윈도우즈 프로그램의 DDL과 같은 라이브러리
PAM 동작 원리
- 사용자나 프로세스가 접근 요청한다.
- 해당 app의 PAM 설정 파일을 확인한다.
- 스택의 PAM 모듈이 리스트 상 순서대로 호출된다.
- PAM 모듈은 성공, 실패 상태를 반환한다.
- 스택은 순서대로 확인되며, 실패 상태를 반환한다 해서 중단되지 않는다.
- 모든 PAM 모듈 상태 결과가 종합돼 전체 인증 과정의 성공, 실패 상태를 반환한다.
댓글
댓글 쓰기