본문 바로가기
정보처리기사/이론설명

[이론설명 이기적] 개발보안구축 - 시스템 보안 구축

by wildOjisan 2025. 8. 2.

🔐 접근통제 → 인증 → 시스템 인증 → 인증 수단의 종류

  • 접근통제: 특정 사용자나 시스템이 어떤 자원에 접근할 수 있는지를 제한하는 것
  • 인증(Authentication): 그 전에, 누군지 확인부터 해야겠지?
    → "너 누구야?"를 묻는 단계
  • 시스템 인증: 사용자가 주장하는 신원을 시스템이 검증하는 것
    → 이때 어떤 방법으로 **'누군지 확인하느냐'**에 따라 인증 수단을 분류해

📂 시스템 인증 수단의 분류

시스템은 사용자의 신원을 확인하기 위해 다음 5가지 중 하나 이상을 사용해.
키워드는 "사용자가 무엇을 알고 있는가, 가지고 있는가, 있는가, 하는가, 어디 있는가"

분류                                 기준                                                      예시

 

1. 지식기반 인증 사용자가 알고 있는 정보 비밀번호, PIN 번호, 패스프레이즈
2. 소유기반 인증 사용자가 가지고 있는 물건 OTP 토큰, 스마트카드, 보안 USB, 인증서
3. 존재기반 인증 사용자의 신체적 특성 지문, 홍채, 얼굴 인식, 정맥, 음성
4. 행위기반 인증 사용자의 행동 패턴 키 입력 속도, 마우스 움직임, 걸음걸이
5. 위치기반 인증 사용자의 접근 위치 GPS, IP 주소, 기지국

 

 

 

---------------------------------------------------------------------------------------------------------------------------------------

 

 

 

🧩 세션(Session.         옛날 방식)

"서버와 클라이언트 간에 연결이 유지되는 동안의 상태 또는 정보 저장 공간"

좀 더 쉽게 말하면:

"사용자 한 명이 웹사이트에 로그인해서 로그아웃할 때까지의 시간 동안 서버가 '이 사람'을 기억하기 위한 기술"


🤔 왜 세션이 필요할까?

웹은 기본적으로 HTTP 프로토콜을 사용해
그런데 HTTP는 어떤 특징이 있냐면?

무상태(stateless) 프로토콜이다!

즉,

  • 너가 로그인을 했든
  • 장바구니에 상품을 담았든
  • 서버는 다음 요청에서 그게 누군지 전혀 기억하지 못해

그래서 등장한 게 세션!

"이 사용자가 보낸 다음 요청도, 같은 사람이 보낸 거라고 기억하자!"


📦 세션의 구조 (기본 흐름)

  1. 사용자가 로그인하면
  2. 서버가 세션 ID를 하나 만들어서
  3. 이 세션 ID를 사용자 브라우저에 저장 (쿠키에 저장하는 경우가 많음)
  4. 다음 요청 때마다, 이 세션 ID를 보내오면
  5. 서버는 "아 이거 아까 로그인한 그 사람이구나!"라고 인식

💡 실제 비유

세션은 놀이공원 입장권에 붙은 팔찌 같은 거야.

  • 팔찌를 차면 (세션 ID 발급됨)
  • 어트랙션 탈 때마다 팔찌 보여주면 "어, 입장한 사람 맞네~"라고 해줌
  • 팔찌를 잃어버리면? 다시 입장 절차 밟아야 함

💾 세션은 서버가 관리한다

 

세션 ID 사용자마다 하나씩 부여되는 고유값
저장 위치 서버 메모리, DB, 파일 등
클라이언트는? 보통 쿠키에 세션 ID만 저장
 

즉, 중요한 정보는 서버가 갖고 있고
클라이언트(브라우저)는 그저 세션 ID만 기억


🔐 세션 vs 쿠키 비교

항목                         세션                                                                               쿠키

 

저장 위치 서버 클라이언트(브라우저)
보안성 비교적 안전 노출 위험 있음
사용 예 로그인 상태 유지 자동 로그인, 광고 추적
수명 브라우저 닫으면 종료(default) 설정한 기간까지 유지 가능
 

🧠 세션이 실제로 어디에 쓰이나?

  • 사용자 로그인 상태 유지
  • 장바구니 정보 저장
  • 게시글 작성 중인 사용자 확인
  • 보안 인증 유지
  • 서버 간 사용자 상태 공유 (SSO)

🧪 정보처리기사 실기 예상 문제

[단답형]

HTTP는 비연결성과 무상태성을 가지므로 사용자의 상태를 유지하기 위해 서버에 저장하는 정보는?
세션(Session)

 

 

 

 

-------------------------------------------------------------------------------------------------------------------------------------

 

 

 

 

🧩 AAA

Authentication, Authorization, Accounting
즉, 인증, 인가, 계정관리(혹은 과금)

이 세 단어의 앞글자를 따서 AAA라고 불러.
**"사용자가 네트워크나 시스템을 사용할 때, 누군지 확인하고, 뭘 할 수 있는지 결정하고, 사용 내역을 기록"**하는 일련의 흐름이야.


🔍 AAA 구성요소 상세

구성요소                                             의미                                       쉬운 설명

 

Authentication (인증) "너 누구야?" 사용자의 신원을 확인 (ID/PW, 지문 등)
Authorization (인가) "그래서 너 뭘 해도 돼?" 인증된 사용자가 접근 가능한 자원을 결정
Accounting (계정관리/과금) "뭐 했는지 기록하자" 사용자의 활동을 기록/모니터링 (로그, 과금 등)

🔒 AAA가 왜 필요할까?

✅ 시스템을 안전하게 보호하려면:

  • 아무나 들어오면 안 되니까 → 인증
  • 아무나 다 할 수 있으면 위험하니까 → 인가
  • 누가 뭐했는지 추적이 가능해야 하니까 → 계정 관리

→ 그래서 대부분의 보안 프로토콜이나 시스템은 AAA를 기반으로 설계


📡 AAA 관련 프로토콜

AAA 구조를 사용하는 대표적인 프로토콜도 시험에서 잘 나와.

프로토콜                      설명                                                                                                 

 

RADIUS Remote Authentication Dial-In User Service
원격 접속 사용자 인증/인가/회계
TACACS+ Terminal Access Controller Access-Control System Plus
네트워크 장비용 인증/인가
Diameter RADIUS의 확장판 (확장성↑)
Kerberos 대칭키 기반 인증 프로토콜
OAuth 토큰 기반 인가 프로토콜
 

🧪 실기 스타일 예상 문제

[단답형]

네트워크 보안에서 인증(Authentication), 인가(Authorization), 계정 관리(Accounting)를 아우르는 용어는?
AAA

 

 

 

 

---------------------------------------------------------------------------------------------------------------------------------------

 

 

 

 

🧩 접근 통제 정책

시스템 자원(예: 파일, 데이터베이스, 네트워크 등)에 대해
“누가, 무엇을, 언제, 어떻게 접근할 수 있는지”를 정하는 규칙

즉, 사용자가 마음대로 아무 데나 접근하지 못하게 **규칙(정책)**을 만들어두는 거야.


📚 대표적인 접근 통제 정책 3가지

구분              이름                                                                            한 줄 요약                                 특징

 

1️⃣ MAC 강제적 접근 통제 (Mandatory Access Control) 관리자가 모든 권한 결정 군대식, 강력한 보안

문서에 ‘기밀’ 등급 → ‘3급 이상만 열람 가능’
2️⃣ DAC 임의적 접근 통제 (Discretionary Access Control) 소유자가 권한 제어 유연함, 보안 약함

내가 만든 파일을 누구에게 읽기/쓰기 허용할지 직접 설정 가능
3️⃣ RBAC 역할 기반 접근 통제 (Role-Based Access Control) 역할(Role) 단위로 권한 부여 기업/조직 시스템에 적합

‘인사팀 직원’은 인사 DB 열람 가능, ‘개발자’는 소스코드 저장소 접근 가능 등

[단답형]

사용자가 소유한 자원에 대해 접근 권한을 자유롭게 부여하는 정책은?
DAC