*개요
사용자가 정보 자원에 접근하기 위해서는 다음과 같은 3단계 활동이 요구된다.
1단계 - 식별 (Identification): "인증 받으려고 하는 사람이 누구인가?"
주체가 본인임을 주장하는 것, ID등을 이용해 본인의 신원을 주장하는 것
2단계 - 인증 (Authentication) : "인증 받으려는 사람이 진짜 그 사람인가?"
어떠한 자원을 사용하려는 주체의 신원을 식별하는 작업
3단계 - 인가 (Authorization) : "이 자원을 사용할 수 있는 사람인가?"
인증을 획득한 주체가 자원에 접근하여 원하는 작업을 할 수 있는 권한이 있는지 확인하는 것
*인증
1) 개체인증 : 개체(사람/기기)의 신원을 증명하기 위한 일련의 과정
- 주장자(Claimant) : 자신의 신원을 증명하고자 하는 개체 혹은 주체
- 검증자 (Verifier) : 요구자의 신원을 증명하기 위해 노력하는 개체 혹은 주체
*패스워드 기반 인증
1) 고정된 패스워드
: 서버의 테이블에 패스워드를 그대로 저장해 비교하기 때문에 테이블이 외부로 유출되는 경우 모든 사용자의 패스워드가 노출되는 문제점이 있다.
2) 해쉬(Hash)된 패스워드
: 서버의 테이블이 노출되어도, 해쉬 값의 역상을 알아야 공격이 가능하다.
: 전수조사 공격과 사전(Dictionary) 공격에 취약할 수 있다.
3) 솔트(Salt)된 패스워드
: 해쉬의 입력 값을 증가시켜 전수조사를 어렵게 만든다.
*인가
1) 정의 : 주체가 하고자 하는 작업이 해당 주체에게 허가된 작업인지 확인, 권한 부여, 접근 제어
: 일반적으로 인증을 거친 후 인증된 사용자에 대한 특정 권한을 부여한다. ex) AC
2) 접근 제어의 요소
- 주체 : 사용자, 프로세스
- 객체 : 파일, 데이터베이스, 프로그램
- 접근 : 읽기, 쓰기, 변경, 삭제, 실행
- 접근제어 : 주체가 객체에 접근을 요구했을 때 이 요구를 수락할지, 거절할지를 결정하는 행위
3) 인가를 위한 접근 제어 기술
- 접근제어목록 (ACL, Access Control List) : 사용자 또는 자원 중심의 접근통제 목록을 작성해 접근 통제
- 접근통제표 (ACM, Access Control Matrix) : 자원 중심의 접근통제 표를 작성해 접근 통제
>> ACL이나 ACM은 주체나 객체의 수가 너무 많으면 접근제어 정보를 관리하기 매우 힘들어진다.
- 강제적 접근통제 (MAC, Mandatory Access Control) : 사용자와 자원에 적절한 보안등급(레이블)을 부여해 접근 통제
> 주체와 객체에 적절한 보안 등급(레이블)을 부여하고, 접근 제어시 이 등급을 비교하며 접근의 허용 여부를 판단함
> 군사 환경과 같은 엄격한 보안이 요구되는 분야에 적합
> BLP (Bell-LaPadula)규칙
- No read up
- No write down : 높은 보안 수준을 가진 정보가 낮은 보안 수준을 지닌 곳으로 전이되지 않도록
- 역할기반 접근통제 (RBAC, Role Base Access Control) : 사용자에게 역할(Role)을 부여하고 각 역할별로 권한을 부여 접근 통제
> 기업 환경으로부터 아이디어가 만들어졌다.
> 기업 환경에서는 사용자가 기업 내 어떤 역할을 수행하고 있는가에 따라 권한이 정해지는데, 이를 모델화 한 것이 RBAC이다.