네트워크와 웹 보안

원도훈·2024년 11월 13일
1
post-thumbnail

네트워크의 기본 구조와 개념 이해하기

네트워크는 컴퓨터들이 서로 데이터를 주고받을 수 있게 연결된 시스템입니다. 이번 섹션에서는 네트워크의 다양한 종류, 계층 구조, 그리고 데이터 캡슐화에 대해 살펴보겠습니다.

네트워크의 종류: LAN, MAN, WAN의 정의와 차이점 설명

  • LAN(Local Area Network): 한정된 지역(예: 집, 회사, 학교) 내에서 사용되는 네트워크로, 높은 전송 속도와 제한된 거리에서의 네트워크 연결이 특징입니다.
  • MAN(Metropolitan Area Network): 도시 정도의 범위 내에서 사용하는 네트워크로, 여러 LAN을 연결해 도시 규모의 네트워크를 구성합니다. 전송 거리는 LAN보다 크고, WAN보다는 작습니다.
  • WAN(Wide Area Network): 국가나 대륙 간의 넓은 범위를 연결하는 네트워크입니다. 여러 MAN과 LAN을 연결하여 전 세계적인 연결을 가능하게 합니다. 대표적인 예로 인터넷을 들 수 있습니다.

네트워크 계층: OSI 7계층 모델과 각 계층의 역할 설명

네트워크에서 데이터를 효과적으로 전송하기 위해서는 OSI 7계층 모델을 이해해야 합니다. OSI 모델은 통신 과정을 7개의 계층으로 나눠 설명합니다.

  1. 물리 계층: 전기 신호, 빛 신호 등의 물리적 연결을 담당합니다.
  2. 데이터 링크 계층: 노드 간 데이터 전송 및 오류 검출을 처리합니다.
  3. 네트워크 계층: 데이터를 목적지까지 경로 설정하는 역할을 합니다. (예: IP)
  4. 전송 계층: 데이터의 신뢰성과 흐름 제어를 담당합니다. (예: TCP, UDP)
  5. 세션 계층: 통신 세션을 설정, 유지, 종료하는 역할을 합니다.
  6. 표현 계층: 데이터의 포맷 변환(암호화/복호화 등)을 담당합니다.
  7. 응용 계층: 사용자와 직접 상호작용하는 부분으로, 애플리케이션 서비스(HTTP, FTP 등)를 제공합니다.

데이터 캡슐화: 캡슐화와 역캡슐화의 개념 및 중요성 설명

  • 캡슐화: 데이터를 송신할 때 여러 계층의 프로토콜 정보를 덧붙이는 과정입니다. 각 계층은 고유한 헤더를 추가해 데이터를 목적지까지 안전하고 정확하게 전달하도록 합니다.
  • 역캡슐화: 데이터를 수신할 때 각 계층의 헤더를 제거하고 원본 데이터를 추출하는 과정입니다. 이 과정을 통해 수신자는 송신자가 의도한 데이터만 정확히 받을 수 있습니다.

HTTP와 HTTPS의 차이점과 보안 메커니즘 이해하기

HTTP와 HTTPS는 웹에서 데이터를 주고받을 때 사용되는 프로토콜입니다. 이번 섹션에서는 이들 간의 차이와 보안 메커니즘을 살펴보겠습니다.

HTTPS란?: HTTPS의 기본 개념과 필요성 설명

  • HTTPS (HyperText Transfer Protocol Secure)는 HTTP에 보안 계층(SSL/TLS)을 추가한 프로토콜입니다. 민감한 정보가 오가는 웹 사이트에서 데이터의 기밀성을 유지하기 위해 필요합니다.

암호화 방식: 대칭키 암호화와 비대칭키 암호화의 차이 설명

  • 대칭키 암호화: 송신자와 수신자가 동일한 키를 사용하여 데이터를 암호화하고 복호화합니다. 빠르지만 키 관리가 어렵다는 단점이 있습니다.
  • 비대칭키 암호화: 공개키와 개인키라는 두 개의 키를 사용합니다. 송신자는 수신자의 공개키로 데이터를 암호화하고, 수신자는 자신의 개인키로 복호화합니다. 보안성이 높지만 처리 속도가 느리다는 단점이 있습니다.

HTTP와 HTTPS의 차이: 두 프로토콜의 차이점과 HTTPS가 제공하는 보안 장점 설명

  • HTTP는 데이터를 평문으로 전송하므로 중간에 데이터를 가로챌 수 있습니다. 반면 HTTPS는 데이터를 SSL/TLS로 암호화하여 전송하므로 도청이나 위변조의 위험을 줄일 수 있습니다.
  • HTTPS는 클라이언트와 서버 간 인증 과정을 거치므로, 사용자가 신뢰할 수 있는 웹사이트와 통신하고 있음을 보장합니다.

CORS와 SOP의 개념 및 구현 방법 이해하기

웹 애플리케이션에서 보안 문제와 관련된 두 가지 중요한 개념이 있습니다: CORSSOP입니다. 이 섹션에서는 이들 개념과 구현 방법을 설명합니다.

CORS란?

  • CORS (Cross-Origin Resource Sharing)는 한 도메인에서 실행 중인 웹 애플리케이션이 다른 도메인의 리소스에 접근할 수 있도록 허용하는 메커니즘입니다. 기본적으로 브라우저는 보안을 위해 교차 출처 요청을 제한하는데, CORS를 통해 안전하게 허용할 수 있습니다.

SOP란?

  • SOP (Same-Origin Policy)는 한 출처(origin)에서 로드된 스크립트가 다른 출처의 리소스에 접근하지 못하도록 막는 보안 정책입니다. 출처란 프로토콜, 호스트, 포트를 모두 포함한 개념입니다.
  • SOP는 기본적인 보안을 제공하지만, 외부 API와 통신해야 하는 현대적인 웹 애플리케이션에는 다소 제한적일 수 있습니다.

CORS 작성 방법

  • 서버에서 CORS 헤더를 설정하여 특정 도메인에서의 요청을 허용할 수 있습니다. 예를 들어, Node.js의 Express를 사용하는 경우 아래와 같이 설정할 수 있습니다.
app.use((req, res, next) => {
  res.header("Access-Control-Allow-Origin", "https://example.com"); // 특정 도메인 허용
  res.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
  next();
});

CORS 작동 방식

  • 브라우저는 교차 출처 요청을 할 때, 먼저 프리플라이트(Preflight) 요청을 보냅니다. 이는 서버에 실제 요청을 보내기 전에 OPTIONS 메서드를 사용하여 이 요청이 허용되는지 확인하는 단계입니다. 서버가 적절한 CORS 헤더로 응답하면 브라우저는 실제 요청을 진행합니다.

이번 글에서는 네트워크의 기본 구조부터 HTTP와 HTTPS의 보안 차이, CORS와 SOP 같은 웹 보안 개념까지 살펴보았습니다. 네트워크와 보안은 웹 개발에서 매우 중요한 부분이며, 이를 이해하고 제대로 구현하는 것은 안전하고 신뢰할 수 있는 애플리케이션을 만드는 데 필수적입니다.

profile
개발

0개의 댓글