Search
🏫

[정보 통신망] 10. TCP/IP 응용 계층

[정보 통신망] 13. 네트워크 보안
CS
Network
2023/06/1115:01
[정보 통신망] 13. 네트워크 보안
CS
Network
2023/06/1115:01

1. 응용 계층

1.1. 응용 계층 개요

TCP/IP 기본 구조
응용 계층
웹 사이트에 접속할 때 필요한 프로토콜과 프로그램(서비스)이 있는 계층
클라이언트의 요청을 전달하기 위해 서버가 이해할 수 있는 메세지(데이터)로 변환하고 전송 계층으로 전달
클라이언트 - 서비스를 요청하는 측
서버 - 서비스를 제공하는 측

1.2. 응용 계층 프로토콜의 종류

프로토콜 예시
HTTP, FTP, POP3, SMTP, TELNET
응용 계층 프로토콜은 TCP 및 UDP를 통해 유용한 기능 수행
TCP
FTP, HTTP, TELNET, SMTP, POP3, IMAP
UPD
DHCP, SNMP
프로토콜을 사용하기 위해서는 포트 번호가 있어야 함
포트란 IP 주소에서 프로그램 상호 구분을 위해 사용하는 번호

2. 웹 서비스

2.1. HTTP 프로토콜

웹 서비스
팀 버너스리 - WWW 개발
웹은 TCP/IP 에 의해 동작하며 응용계층의 HTTP 프로토콜 사용
HTML 문서 전송
HTTP의 개념
클라이언트가 사이트 정보를 요청하는 것에 대해 서버가 응답하는 방식
클라이언트는 얻고 싶은 정보가 담긴 파일의 URL 등의 요청 정보를 전송
서버는 해당 정보를 받아 데이터를 반환
MIME (Multipurpose Internet Mail Extensions)
HTTP의 특징
무상태, 비연결성
모든 요청과 응답은 이전 것들과 상관없이 독립적
해당 요청에 필요한 모든 정보를 처음부터 보내야 함
무상태의 단점을 보완하기 위해 쿠키, 세션 등 사용
불특정 다수를 대상으로 하는 서비스에 적합
HTTP 메세지 형식
요청, 응답 메세지로 구분
요청(상태)라인, 헤더, 공백 라인(필수), 메세지 바디

2.2. HTTPS 프로토콜

Hyper Text Transfer Protocol over Secure Socket Layer)
HTTP의 보안이 강화된 버전
SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화
기본 포트: 443
HTTPS 보안키
대칭키
암호화와 복호화 시 키가 같음
클라이언트와 서버가 모두 공유키를 가짐
DES (Data Encryption Standard)
공개키 (비대칭키)
공개키와 개인키를 함께 사용
암호화 할때는 공개키, 복호화할때는 개인키 (하나는 공개, 하나는 비밀)
RSA
SSL 적용
인증서 필요
인증서에 서비스 정보 및 서버측의 공개키 포함
CA
인증서 발급 기업
브라우저는 CA 리스트를 가짐
CA 존재 확인 후 CA 공개키를 이용해 인증서 복호화
HTTPS 동작 방식
대칭키와 공개키 모두 사용
데이터 전송을 위해 대칭키 사용
대칭키를 안전하게 전달하기 위해 공개키 사용

3. 파일 전송 서비스

FTP
TCP/IP 통해 파일 전송
가장 일반적인 파일 공유 방법
HTTP 프로토콜로 인해 FTP 사용 잘 줄어듬
MIME으로 사진 음악 동양상 공유 가능
클라우드, 웹하드 서비스

3.1. FTP 프로토콜

FTP 동작 과정
FTP 서버와 FTP 클라이언트 간 접속
21번/20번 포트 사용
능동 모드
프로세스
클라이언트는 FTP 서버의 21번 포트 접속 후 사용할 두번째 포트를 서버에 알려줌
서버는 ACK
서버는 클라이언트가 알려준 두번째 포트에 접속
클라이언트는 ACK로 응답
특징
서버가 클라이언트에 접속 시도
클라이언트 방화벽 및 외부 요인에 따라 FTP 접속 불가능 혹은 에러 발생
수동 모드
1024~65535 사이의 랜덤 비특권 포트 사용
프로세스
클라이언트가 FTP 서버의 21번 포트로 접속
서버는 클라이언트가 사용할 두번째 포트 알려줌
클라이언트는 다른 포트를 열어 서버가 알려준 포트로 접속
서버는 ACK로 응답

3.2. SFTP 프로토콜

SSH(Secure Shell) FTP
신뢰할 수 있는 데이터 흐름을 통해 파일 제어 및 관리
SFTP는 하나의 연결만 필요 (연결 안정적)
SSH 키의 유효성 검사 및 관리 복잡
소프트웨어간 호환성 문제 발생

4. 원격 접속 서비스

4.1. TELNET 프로토콜

원격 접속 서비스
클라이언트가 사용 권한을 가진 서버 시스템에 접속하여 작업을 수행하는 서비스
TELNET, SSH
TELNET
원격지의 컴퓨터를 이용하는 가상 단말 기능을 실현 하기 위한 프로토콜
모든 플랫폼에서 사용
포트: 23번
사용자 아이디 패스워드 필요
TELNET 동작 방식
NVT
터미널과 호스트와의 1:1 대칭적인 관계
터미널 에뮬레이션 프로토콜
Network Virtual Terminal 사용
클라이언트와 서버 시스템의 버전이 다른 경우에도 사용할 수 있게 데이터 변환

4.2. SSH 프로토콜

정의
기존의 유닉스 시스템 셀은 보안 취약
SSH는 서버에 접속하기 위해 사용되는 인터넷 프로토콜
셀에 암호화가 추가된 버전
강력한 인증 방법과 안전하지 못한 네트워크에서 안전하게 통신할 수 있는 기능 제공
rsh, rcp, rlogin, 등의 서비스를 안전하게 사용할 수 있도록 제공
동작 방식

5. 메일 서비스

메일 서비스
메일 주소를 이용하여 이메일을 주고받을 수 있는 서비스 제공
TCP/IP 이전에는 대형 컴퓨터(메인 프레임)에서 사용
같은 메인프레임에서만 사용 가능
프로토콜
SMTP - 메일을 송신할 때 사용
POP3 - 메일을 전송받을 때 사용
IMAP - 메일을 전송받을 때 사용 (POP3의 비동기성 보완)