[정보 보안 개론] 네트워크 보안(전송 계층, 세션 계층, 표현 계층, 응용 계층)

Jin_Hahha·2024년 10월 10일
0

정보 보안 개론

목록 보기
8/17


이전 게시물에서 계속

  • 시스템에서 구동되는 응용 프로그램은 네트워킹을 하기 위해 자신에게 해당되는 패킷을 식별할 필요가 있음
  • 이를 위해 사용하는 것이 포트
    • 포트는 0~65,535번까지 있음
    • IP나 MAC 주소처럼 목적지의 응용 프로그램별 포트 번호를 가지고 통신

  • 패킷 구조는 다음과 같음

  • 0번에서 1023번까지 1024개의 포트를 잘 알려진 포트(well known port)라고 함

  • 0번은 사용하지 않으며 1023 포트까지는 대부분 고유의 사용 용도가 있음

  • 아래는 자주 사용되는 포트 번호를 정리한 것

  • 주요 포트는 대부분 목적지 포트

  • 출발지 포트가 결정되는 방식은 운영체제와 응용 프로그램마다 다르지만 출발지 포트는 보통 1025~65535 중에서 사용하지 않는 임의의 포트를 응용 프로그램마다 할당하여 사용

  • 클라이언트가 인터넷에 존재하는 웹 서버에 접속한다고 가정하면 웹 서버의 서비스 포트는 보통 80번

  • 출발지 포트는 시스템에서 임의로 정해지기 때문에 알 수 없음
  • 3000번대의 임의 포트가 할당되면 아래와 같은 구조일 것

  • 네트워크 계층과 전송 계층 정보는 netstat -an 명령으로 쉽게 확인 가능

  • 위의 표는 다음의 정보를 담고 있음

    • 전송 계층 프로토콜의 종류
    • 클라이언트의 IP 주소
    • 웹 브라우저가 사용하는 포트 번호
    • 서버의 IP 주소
    • 웹 서버가 사용하는 포트 번호
    • 연결 상태
  • TCP는 패킷을 주고받기 전에 미리 연결을 맺어 가상 경로를 설정하는 연결 지향형 프로토콜

    • TCP에는 연결을 설정하는 과정과 연결을 종료하는 과정이 존재
    • 연결 설정 과정은 3-웨이 핸드셰이킹(3-way handshaking)
    1. 두 시스템이 통신을 하기 전에 클라이언트는 포트가 닫힌 Cloesd 상태, 서버는 해당 포트로 항상 서비스를 제공할 수 있는 Listen 상태
    2. 클라이언트가 처음 통신을 하려고 하면 임의의 포트 번호가 클라이언트 프로그램에 할당됨, 클라이언트는 서버에 연결하고 싶다는 의사 표시인 SYN Sent 상태가 됨
    3. 클라이언트의 연결 요청을 받은 서버는 SYN Received 상태가 됨, 클라이언트에 연결을 해도 좋다는 의미로 SYN+ACK 패킷을 보냄
    4. 마지막으로 클라이언트는 연결 요청에 대한 서버의 응답을 확인했다는 표시로 ACK 패킷을 서버로 전송

    • 위의 그림은 TCP의 연결 해제 과정을 나타내고 있음
    1. 통신을 하는 동안 클라이언트, 서버 모두 Established 상태
    2. 통신을 끊으려는 클라이언트가 서버에 FIN 패킷 전송, 이때 클라이언트는 Close Wait 상태가 됨
    3. 서버는 클라이언트의 연결 종료 요청을 확인, 응답으로 클라이언트에 ACK 패킷을 전송, 서버도 클라이언트의 연결을 종료하겠다는 의미로 FIN 패킷 전송 후 Cloes Wait 상태로 전환
    4. 클라이언트는 연결 종료 요청에 대한 서버의 응답을 확인했다는 의미로 ACK 패킷을 서버로 전송

  • TCP는 수신 측이 데이터를 흘려버리지 않도록 하는 데이터 흐름 제어(flow control)와 전송 중 에러가 발생하면 자동으로 재전송하는 에러 제어(error control) 기능을 수행
    • 이를 통해 확실한 전송 보장
    • 과정이 완전하지는 않아 해커들에게 많은 공격을 받음

세션 계층(5계층)

  • 양 끝단의 응용 프로세스가 통신을 관리하는 방법 제공
  • 세션 계층은 동시 송수신 방식(duplex), 반이중 방식(half-duplex), 전이중 방식(full-duplex)의 통신과 함께 체크 포인팅, 유휴, 종료, 다시 시작의 과정 수행
  • TCP/IP 세션을 만들고 없애는 책임을 짐
  • 전송 계층이 끝단 간의 논리적인 설정을 담당한다면 세션 계층은 이런 연결에 정보 교환을 효과적으로 할 수 있도록 추가 서비스 진행

표현 계층(6계층)

  • 코드 간의 번역 담당
  • 사용자 시스템에서 데이터 구조를 하나의 통일된 형식으로 표현
    • 응용 프로그램 계층의 데이터 형식 차이로 인한 부담을 덜어줌
  • 사용 코드가 서로 다른 두 시스템이 있을 때
    • 전송 시스템에서 전송 파일을 OSI 표준 표현 방식으로 변경하여 전송
    • 수신 시스템에서는 자신의 시스템에 맞게 재구성
    • 해당 표현 방식을 ASN.1(Abstract Syntax Notation 1)이라고 함
  • ASN.1 방식은 응용 프로그램 계층 간의 서로 다른 표현을 인식하기 위해 정보를 정의하고 데이터의 압축과 암호화 기능 수행
    • 데이터 압축, 전송되는 데이터 용량을 줄이는 것
    • 암호화, 일반 평문을 의미 없는 문자로 변형 / 중간에 유출되어도 원문을 이해할 수 없게 만듦
  • 표현 계층은 헤더 정보에 데이터 암호화 방식과 압축 방식에 대한 설명을 첨가 함

응용 프로그램 계층(7계층)

  • 사용자나 응용 프로그램 사이에 데이터 교환이 가능하게 만듦
  • 응용 프로세스와 직접 관계하여 일반적인 응용 서비스 수행
    • HTTP, FTP, 터미널 서비스, 메일 프로그램, 디렉터리 서비스 등을 제공

0개의 댓글