보안은 "개념 구분"이 전부
보안 파트는 암기량은 많지 않은데 혼동되기 쉬운 쌍이 많습니다. 대칭 vs 비대칭, 인증 vs 인가, SQL Injection vs XSS — 이런 쌍을 정확히 구분해 답을 쓸 수 있어야 점수가 됩니다.
암기 자체는 어렵지 않으니, 용어의 역할과 차이만 명확히 잡으면 됩니다.
정보보안 3요소 — CIA
| 요소 | 의미 |
|---|---|
| Confidentiality (기밀성) | 인가된 사용자만 정보에 접근 |
| Integrity (무결성) | 정보가 변조되지 않음 |
| Availability (가용성) | 필요할 때 접근 가능 |
여기에 부인 방지(Non-repudiation)·인증(Authentication)을 더한 5대 요소로도 출제됩니다.
대칭키 vs 비대칭키 암호화
| 구분 | 대칭키 | 비대칭키 |
|---|---|---|
| 키 | 암·복호화 키가 동일 | 공개키·개인키 분리 |
| 속도 | 빠름 | 느림 |
| 키 관리 | 키 교환이 어려움 | 상대적으로 쉬움 |
| 대표 알고리즘 | DES, 3DES, AES, SEED, ARIA, IDEA | RSA, ECC, ElGamal, Diffie-Hellman |
| 용도 | 대용량 데이터 암호화 | 키 교환, 전자 서명 |
하이브리드 방식
실무에서는 둘을 같이 씁니다. 비대칭키로 세션키를 안전하게 교환하고, 이후 대용량 통신은 속도가 빠른 대칭키로 암호화. TLS(SSL)가 이 방식입니다.
해시 함수
해시 함수는 단방향입니다. 원본을 알 수 없게 만드는 게 목적이에요.
| 특성 | 의미 |
|---|---|
| 일방향성 | 해시값으로 원본을 역산할 수 없음 |
| 충돌 저항성 | 같은 해시값을 만드는 서로 다른 입력을 찾기 어려움 |
| 고정 길이 출력 | 입력이 길든 짧든 결과 길이는 일정 |
주요 해시 알고리즘
| 알고리즘 | 출력 길이 | 안전성 |
|---|---|---|
| MD5 | 128bit | 충돌 발견되어 사용 권장 안 함 |
| SHA-1 | 160bit | 충돌 발견되어 단계적 폐기 |
| SHA-2 (SHA-256 등) | 256/384/512bit | 현재 표준 |
| SHA-3 | 가변 | 차세대 표준 |
암호 저장에는 단순 해시보다 **salt + stretching(bcrypt, scrypt, Argon2)**을 씁니다. 단답으로 "MD5의 문제점은?"에 대한 답은 충돌 취약입니다.
전자 서명
전자 서명은 송신자의 개인키로 서명하고, 수신자는 송신자의 공개키로 검증하는 구조입니다.
송신자: 원본 → [해시] → [개인키로 암호화] → 서명 첨부
수신자: 서명 → [공개키로 복호화] → 해시값 비교
제공하는 보안 속성:
- 무결성 : 메시지가 변조되면 해시값이 달라짐
- 인증 : 개인키는 송신자만 가짐 → 본인 확인
- 부인 방지 : 송신자가 부인할 수 없음
기밀성은 제공하지 않음에 주의하세요. 기밀성을 원하면 추가로 암호화가 필요합니다.
인증(Authentication) vs 인가(Authorization)
| 구분 | 인증 | 인가 |
|---|---|---|
| 의미 | 누구인지 확인 | 무엇을 할 수 있는지 |
| 예 | 로그인 (ID/PW, OTP) | 관리자 페이지 접근 권한 |
| 영어 | Authentication | Authorization |
이 두 개념을 뒤바꾸는 함정이 단답으로 자주 등장합니다.
OAuth와 JWT
OAuth 2.0
제3자에게 비밀번호 공유 없이 권한을 위임하는 프로토콜. 구글·카카오 소셜 로그인이 여기에 해당합니다.
대표 역할:
- Resource Owner : 사용자
- Client : 서비스 제공자(예: 앱)
- Authorization Server : 인증을 처리 (예: 구글)
- Resource Server : 리소스를 제공
JWT (JSON Web Token)
Header.Payload.Signature
- Header : 토큰 타입, 서명 알고리즘
- Payload : 사용자 정보·권한 등 Claim
- Signature : Header + Payload를 비밀키로 서명한 값
JWT의 특성:
- Stateless : 서버가 세션을 저장하지 않음
- 자기 완결 : 토큰 자체에 정보 포함
- 취소 어려움 : 발급 후 만료 전에는 무효화 까다로움
공격 기법
웹 기반 공격
| 공격 | 설명 | 주 대응책 |
|---|---|---|
| SQL Injection | 입력값에 SQL 구문을 삽입 | Prepared Statement, 입력 검증 |
| XSS (Cross-Site Scripting) | 스크립트를 웹 페이지에 주입해 다른 사용자 브라우저에서 실행 | 출력 시 HTML 이스케이프, CSP |
| CSRF (Cross-Site Request Forgery) | 인증된 사용자 권한으로 위조 요청 전송 | CSRF 토큰, SameSite 쿠키 |
SQL Injection과 XSS가 자주 혼동됩니다. SQLi는 DB 공격, XSS는 브라우저 공격이라는 점으로 구분하면 쉬워요.
네트워크/시스템 공격
| 공격 | 설명 |
|---|---|
| DDoS | 대량 트래픽으로 서비스 마비 |
| Sniffing | 네트워크 패킷 도청 |
| Spoofing | IP·MAC·DNS 등을 위조해 신뢰 얻기 |
| MITM (Man-in-the-Middle) | 통신 중간에서 감청·조작 |
| Buffer Overflow | 버퍼 크기를 초과해 메모리 훼손 |
| Brute Force | 가능한 조합 전수 대입 |
| Dictionary Attack | 사전에 있는 단어로 대입 |
| Rainbow Table | 미리 계산된 해시표로 비밀번호 역추적 |
악성 코드
| 종류 | 특징 |
|---|---|
| 바이러스(Virus) | 숙주 파일에 기생, 실행되어야 전파 |
| 웜(Worm) | 숙주 없이 스스로 복제·전파 |
| 트로이목마 | 정상 프로그램처럼 위장, 숨은 악성 기능 |
| 랜섬웨어 | 파일을 암호화하고 금전 요구 |
보안 솔루션
| 용어 | 역할 |
|---|---|
| Firewall (방화벽) | 네트워크 경계 트래픽 필터링 |
| IDS | 침입 탐지만 (알림) |
| IPS | 침입 탐지 + 차단 |
| WAF | 웹 트래픽 전용 방화벽 (XSS/SQLi 차단 특화) |
| VPN | 가상 사설망, 암호화 터널 |
| DLP | 데이터 유출 방지 |
| SIEM | 보안 이벤트 통합 분석 |
IDS와 IPS 차이는 탐지만 vs 탐지+차단. 한 줄 답이 됩니다.
접근 통제 모델
| 모델 | 설명 |
|---|---|
| DAC (임의적) | 자원 소유자가 직접 권한 부여 |
| MAC (강제적) | 시스템이 정책에 따라 강제 부여 (군사·정부) |
| RBAC (역할 기반) | 사용자에게 역할을 주고 역할에 권한 부여 |
실무에서는 RBAC이 가장 널리 쓰입니다. 시험에서는 DAC과 MAC의 구분, 그리고 RBAC의 개념이 단답으로 나옵니다.
자주 틀리는 포인트
| 함정 | 정답 |
|---|---|
| AES | 대칭키 |
| RSA | 비대칭키 |
| 인증 vs 인가 | 인증=누구인지, 인가=뭘 할 수 있는지 |
| JWT Payload | 암호화 아님, 디코딩 가능 |
| 바이러스 vs 웜 | 자기 복제 여부 |
| IDS vs IPS | 탐지만 vs 탐지+차단 |
| MD5/SHA-1 | 현재는 안전하지 않음 |
정리
보안은 비슷해 보이는 쌍을 정확히 구분할 수 있는가가 합격 여부를 가릅니다. 대칭/비대칭, 인증/인가, IDS/IPS, 바이러스/웜 — 이 4쌍만 흔들리지 않게 잡아도 보안 단답 문제는 거의 전부 커버됩니다.