[정보보안] PAM이란?

[정보보안] PAM이란?

옛날 리눅스가 좋은 시절에는 su, passwd, login, xlock와 같은 프로그램들은 사용자 인증이 필요한 경우 간단히 /etc/passwd 파일에서 정보를 읽었다. 만약에 사용자 패스워드를 변경할 필요가 있는 경우, 간단히 /etc/passwd를 편집했다. 이러한 간단하나 투박한 방법은 시스템관리와 응용프로그램 개발자들에게 많은 문제점을 제공했다.
MD5와 쉐도우 패스워드가 굉장히 유행함에 따라 다른 방법을 다루고자 할 때 사용자 인증을 필요로 하는 각각의 프로그램 적절한 정보를 얻는 방법을 알아야 했다.
PAM은 사용자정보의 저장방법과 관계없이 프로그램들이 투명하게 사용자를 인증하게 함으로써 이러한 혼잡함을 제거했다.


PAM

  • Pluggable Authentication Modules
  • 시스템에 공통적인 인증 방법을 제공
  • 손쉬운 인증 모듈의 교체 및 추가/삭제
  • 응용프로그램(서비스)가 패스워드 파일을 읽지 않고 PAM에게 요청
    • 개발자가 사용자 인증에 신경 쓰지 않아도 되고, 시스템 관리자가 직접 응용프로그램의 인증 동작을 세밀하게 제어할 수 있음
  • 다양한 인증 모듈을 호출해서 사용자 인증 과정을 수행, 모듈 결과에 알맞은 행동
  • 모듈의 종류가 다양해서 인증 절차에 확실한 개념이 필요
  • PAM은 윈도우즈 프로그램의 DDL과 같은 라이브러리


PAM 동작 원리

  1. 사용자나 프로세스가 접근 요청한다.
  2. 해당 app의 PAM 설정 파일을 확인한다.
  3. 스택의 PAM 모듈이 리스트 상 순서대로 호출된다.
  4. PAM 모듈은 성공, 실패 상태를 반환한다.
  5. 스택은 순서대로 확인되며, 실패 상태를 반환한다 해서 중단되지 않는다.
  6. 모든 PAM 모듈 상태 결과가 종합돼 전체 인증 과정의 성공, 실패 상태를 반환한다.

댓글

이 블로그의 인기 게시물

[Python] # -*- coding: utf-8 -*-를 쓰는 이유

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[컴퓨터네트워크] Telnet이란?