보안 원칙과 인증·인가
기밀성·무결성·가용성과 위험 개념, 식별·인증·인가·감사 및 다중요소 인증을 학습한다.
1. 정보보안의 목표
정보보안은 정보와 정보시스템이 허가된 방식으로 사용되도록 보호하는 활동이다. 가장 기본적인 목표는 CIA이다.
| 요소 | 의미 | 대표 침해 |
|---|---|---|
| 기밀성(Confidentiality) | 인가된 주체만 정보를 볼 수 있음 | 도청, 정보 유출 |
| 무결성(Integrity) | 정보가 인가된 방식으로만 변경됨 | 위·변조, 재전송 |
| 가용성(Availability) | 필요할 때 서비스를 사용할 수 있음 | DoS, 장애, 자원 고갈 |
정보 자산
┌────────────┐
│ 기밀성 │
│ 무결성 │
│ 가용성 │
└────────────┘
예방·탐지·대응·복구 통제로 보호
보안 속성에는 인증성, 책임추적성, 부인방지, 신뢰성, 프라이버시 등이 추가될 수 있다.
2. 자산·위협·취약점·위험
- 자산: 보호 가치가 있는 데이터·시스템·서비스·인력·평판
- 위협: 자산에 손해를 일으킬 수 있는 원인이나 사건
- 취약점: 위협이 악용할 수 있는 약점
- 위험: 위협이 취약점을 이용해 손실을 일으킬 가능성과 영향
- 통제: 위험을 줄이기 위한 관리적·기술적·물리적 대책
위협 ──악용──► 취약점 ──영향──► 자산 손실
│
▼
위험
│
통제로 가능성·영향 감소
위험은 단순히 취약점의 개수와 같지 않다. 중요한 자산에 실제 악용 가능성이 높고 영향이 크면 위험이 커진다.
3. 수동 공격과 능동 공격
| 구분 | 특징 | 예시 |
|---|---|---|
| 수동 공격 | 데이터를 직접 바꾸지 않고 관찰 | 도청, 스니핑, 트래픽 분석 |
| 능동 공격 | 데이터·서비스·신분을 변경하거나 방해 | 변조, 재전송, 위장, DoS |
수동 공격은 탐지가 어려우므로 암호화와 트래픽 보호가 중요하다. 능동 공격은 인증·무결성 검증·접근통제·가용성 대책이 중요하다.
4. 식별·인증·인가·감사
사용자 주장: "나는 user01이다"
│
▼
식별(Identification)
│
▼
인증(Authentication)
비밀번호·인증서·생체·보안키 확인
│
▼
인가(Authorization)
어떤 자원에 어떤 작업을 허용할지 결정
│
▼
감사(Accounting/Auditing)
누가 언제 무엇을 했는지 기록·검토
- 식별은 신원을 주장하는 단계이다.
- 인증은 주장한 신원이 맞는지 확인한다.
- 인가는 인증된 주체의 권한을 결정한다.
- 감사는 행동의 추적성과 책임을 지원한다.
인증에 성공했다고 모든 데이터에 접근할 수 있는 것은 아니다.
5. 인증요소와 MFA
| 요소 | 예시 |
|---|---|
| 지식 기반 | 비밀번호, PIN |
| 소유 기반 | OTP 토큰, 스마트카드, 휴대기기, 보안키 |
| 생체 기반 | 지문, 얼굴, 홍채 |
| 위치·행위 기반 | 접속 위치, 입력 패턴, 위험 기반 신호 |
MFA는 서로 다른 요소 범주를 둘 이상 결합한다.
비밀번호 + 보안질문 = 둘 다 지식 기반
비밀번호 + OTP 토큰 = 지식 + 소유 → MFA
같은 범주의 정보를 두 번 묻는 것은 단계가 두 개여도 진정한 다중요소 인증이라고 보기 어렵다.
6. 비밀번호 보안
비밀번호는 평문이나 단순 암호화가 아니라 검증용 해시 형태로 저장하는 것이 원칙이다.
사용자 비밀번호
│
├─ 고유 salt 추가
▼
느린 비밀번호 해시/KDF
▼
salt + 검증값 저장
- salt는 같은 비밀번호라도 서로 다른 결과가 나오게 한다.
- 비밀번호 해시에는 빠른 일반 해시보다 반복 비용을 조절할 수 있는 전용 KDF가 적합하다.
- 로그인 시도 제한, MFA, 유출 비밀번호 차단, 안전한 재설정 절차가 함께 필요하다.
- 비밀번호를 로그에 남기거나 이메일로 되돌려 보내면 안 된다.
7. SSO와 연합 인증
SSO는 한 번의 인증으로 여러 서비스에 접근하도록 하는 구조이다.
사용자 ──인증──► 인증 시스템
│
├─ 신뢰정보 ─► 서비스 A
├─ 신뢰정보 ─► 서비스 B
└─ 신뢰정보 ─► 서비스 C
장점은 사용자 편의와 중앙 통제이다. 그러나 인증 시스템이나 세션이 침해되면 영향 범위가 커질 수 있으므로 MFA, 세션 보호, 신뢰관계 검증이 중요하다.
Kerberos는 신뢰하는 제3자인 KDC와 시간 제한 티켓을 이용하는 네트워크 인증 방식이다.
사용자 → 인증 서버: 신원 확인
← 티켓 부여 티켓
사용자 → 티켓 발급 서버: 서비스 티켓 요청
← 서비스 티켓
사용자 → 서비스 서버: 서비스 티켓 제시
← 서비스 이용
비밀번호 자체를 각 서비스에 반복 전송하지 않는다는 점이 핵심이다.
8. 세션 보안
인증 후에는 세션이 사용자를 대신한다. 따라서 세션 식별자가 노출되면 공격자가 인증을 우회할 수 있다.
- 로그인 후 세션 ID 재발급
- HTTPS 사용
- 쿠키의
Secure,HttpOnly, 적절한SameSite - 유휴·절대 만료시간
- 로그아웃 시 서버 측 무효화
- 중요 작업 시 재인증
- 동시 로그인과 위험 신호 관리
인증 성공 → 새 세션 발급 → 요청마다 검증
├─ 만료
├─ 로그아웃
└─ 위험 발생 시 강제 폐기
9. 보안 통제의 분류
| 분류 | 예시 |
|---|---|
| 관리적 | 정책, 교육, 직무분리, 위험평가 |
| 기술적 | 암호화, 방화벽, 접근통제, 로그 |
| 물리적 | 출입통제, 잠금장치, CCTV |
| 예방 | MFA, 입력검증, 최소권한 |
| 탐지 | IDS, 모니터링, 감사로그 |
| 교정·복구 | 패치, 백업 복원, 사고대응 |
하나의 통제로 모든 위험을 제거하기보다 여러 층의 통제를 조합하는 심층방어가 중요하다.
10. 인증·인가를 한 요청 흐름으로 추적하기
사용자·서비스
│ ① 식별자·인증정보 제시
▼
인증 서버 ──② 신원 검증·세션/토큰 발급──▶ 클라이언트
│ │
│ 감사 이벤트 │ ③ 자원 요청+토큰
▼ ▼
감사 로그 정책 결정 지점(PDP)
│ 속성·역할·위험 평가
▼
정책 집행 지점(PEP)
│ 허용/거부
▼
자원
인증 성공은 신원을 확인했다는 뜻이고, 자원 접근 허용은 별도의 인가 판단이다. 토큰의 서명이 유효해도 issuer, audience, 만료시각, 권한 범위가 맞지 않으면 거부해야 한다.
11. 인증 강도와 피싱 저항성
현재 NIST SP 800-63B-4의 핵심 방향은 길이·차단목록·안전한 저장을 중시하고, 임의의 주기적 변경이나 복잡도 조합 규칙에 과도하게 의존하지 않는 것이다.
- 단일 요소 비밀번호는 최소 15자, MFA의 일부로 쓰는 비밀번호는 최소 8자를 허용하는 기준이 제시된다.
- 유출·흔한 비밀번호 차단목록을 검사하고 salt와 비용이 큰 password hashing/KDF로 저장한다.
- 비밀번호·SMS OTP처럼 사용자가 속아 전달할 수 있는 방식은 피싱 저항성이 없다.
- 공개키 기반 passkey/FIDO 인증은 서버별 challenge와 origin 결합으로 피싱 저항성을 높인다.
지식 요소: 비밀번호·PIN
소유 요소: 보안키·인증 앱이 있는 기기
생체 요소: 지문·얼굴 등 고유 특성
MFA: 서로 다른 범주의 요소를 2개 이상 결합
12. 위험 기반 인증과 세션 수명
위험점수 = 가능성 × 영향
예: 가능성 4, 영향 5 → 20(고위험)
새 기기, 비정상 지역, 관리자 기능, 대량 다운로드처럼 위험이 커지면 step-up 인증을 요구할 수 있다. 세션은 다음 상태를 분리해 추적한다.
미인증 → 인증됨 → 권한 상승됨 → 유휴 만료/절대 만료/로그아웃 → 폐기
로그아웃·비밀번호 변경·퇴사·권한 회수 시 서버 측 세션 또는 refresh token을 무효화해야 한다. 짧은 access token만으로는 이미 발급된 장기 refresh token 남용을 막지 못한다.
확인 문제
- 서명이 유효한 access token이라도 추가로 확인해야 할 대표 항목은?
- 비밀번호와 SMS OTP는 항상 피싱 저항성 MFA인가?
- MFA에서 요소 두 개가 같은 범주이면?
- 가능성 4, 영향 5의 단순 위험점수는?
- 권한 회수 시 refresh token을 함께 무효화해야 하는 이유는?