본문 바로가기
network/network_security

네트워크 보안이란 무엇인가 – SSL, CORS, CSRF의 시작점 | 통신 보안의 원리와 위험요소들

by 죄니안죄니 2025. 4. 10.

들어가며

현대 웹 애플리케이션과 API 시스템은 모두 네트워크 위에서 동작합니다.
그리고 이 통신 과정은 늘 위조, 도청, 스니핑, 위협 요소에 노출될 수 있습니다.
이러한 위험으로부터 시스템을 보호하기 위한 첫걸음이 바로 **네트워크 보안(Network Security)**입니다.

이 글에서는 실무에서 가장 자주 마주치는 세 가지 개념, SSL(HTTPS), CORS, CSRF를 중심으로, 네트워크 보안의 기초를 소개하며 📂 Network / Network Security 카테고리의 시작을 열겠습니다.


왜 네트워크 보안이 필요한가?

위험 요소 설명
도청 (Sniffing) 통신 중간에 데이터를 가로채 읽는 행위
위조 (Spoofing) 신뢰할 수 있는 것처럼 가장한 접근 시도
세션 탈취 로그인 세션 쿠키를 훔쳐 사용자로 위장
크로스 도메인 접근 의도치 않은 출처에서 API 호출

보안은 사용자 신뢰와 시스템 신뢰성의 기본입니다.

 


1. SSL/TLS – HTTPS는 어떻게 통신을 보호하는가?

  • HTTPS는 HTTP에 SSL/TLS 암호화 계층을 추가한 것입니다.
  • 클라이언트와 서버 간 통신을 대칭 + 비대칭키로 안전하게 암호화합니다.
  • 인증서 기반으로 서버의 신원을 검증하고, 암호화된 세션을 형성합니다.

실무 포인트

  • SSL 인증서가 없으면 https:// 접속이 불가능하거나 브라우저 경고 발생
  • 프론트엔드 fetch/axios 요청 시 https 환경이 기본 요구됨
  • API 게이트웨이에서도 TLS 인증서 설정이 필요함

2. CORS – 왜 내 API는 막히는가?

CORS(Cross-Origin Resource Sharing)는
**브라우저 보안 정책(동일 출처 정책, Same-Origin Policy)**을 우회하는 표준입니다.

개념 설명
동일 출처 프로토콜, 도메인, 포트 모두 같아야 함
CORS 오류 프론트엔드와 백엔드 출처가 다를 때 발생
해결 방식 서버에서 Access-Control-Allow-* 헤더로 허용

실무 포인트

  • 개발환경(localhost:3000localhost:8080)에서 자주 발생
  • Nginx나 Express, Spring에서 CORS 허용 설정 필요
  • 프리플라이트 요청(OPTIONS)을 이해해야 함

3. CSRF – 사용자의 신뢰를 이용한 공격

CSRF(Cross-Site Request Forgery)는
인증된 사용자의 브라우저를 속여 공격자가 의도한 요청을 보내게 하는 공격 기법입니다.

작동 방식

  1. 사용자가 로그인 상태로 공격자의 사이트 접속
  2. 백그라운드에서 인증 쿠키를 담은 악의적 요청 전송
  3. 서버는 이를 정당한 요청으로 처리해버림

방어 전략

  • 서버에서 CSRF 토큰 발급 → 요청 시 토큰 검증
  • SameSite 쿠키 옵션 설정 (Lax, Strict, None)
  • 중요 요청은 가능한 GET 대신 POST + CSRF 토큰 사용

앞으로 다룰 주제들

📂 Network / Network Security 카테고리에서는 다음과 같은 실전 중심 내용을 다룰 예정입니다:

  • SSL 인증서 발급과 Nginx에 적용하기
  • Let's Encrypt + certbot 자동 갱신
  • Spring / Express에서 CORS 설정 예시
  • 프리플라이트 요청(OPTIONS)의 구조와 응답 처리
  • CSRF 방어를 위한 Spring Security 설정법
  • 쿠키의 SameSite 옵션 완전 정리

보안은 선택이 아닌 기본입니다.
웹과 API가 연결되는 모든 순간, 우리는 네트워크 보안의 원리와 구현 방식을 이해하고 있어야 합니다.

 


📌 
다음 글 미리보기
👉 SSL 인증서 발급과 Nginx에 적용하기 

📚 Network Security 시리즈 전체 보기
👉 https://jobreview.tistory.com/category/network/network_security

댓글