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