[정보보안] 네트워크 어플리케이션 계층 (HTTP, FTP,SMTP)
1> Application layer
- 사용자들이 사용하는 응용 프로그램 계층
- 응용 계층과 연결
- FTP 서비스, DNS 서비스, Telnet, ssh 서비스, HTTP(웹서버-웹브라우저), SMTP(e-mail), SNMP (네트워크)
2> HTTP
- 사용자의 웹브라우저와 웹서버 사이 송수신 프로토콜
- TCP 기반 프로토콜로 요청/응답 구조
- State-less 프로토콜
- 3 way handshaking
1. 웹브라우저가 웹 서버에 SYN 메시지
2. 웹서버는 웹브라우저에게 SYN, ACK 응답
3. 웹브라우저는 웹 서버에 최종 연결 확인 ACK 전송
-> TCP 연결이 되면 'ESTABLISHED' 상태로 netstat 통해 확인가능합니다.
- HTTP Version 1.1 : 요청마다 연겨랗지 않고, 연결 대기 후 종료 (keep alive Connection)
- HTTP 세션 연결
1. 웹 서버 서비스 포트 80 개방 후 클라이언트 요청 대기
2. 클라이언트가 웹 서버 접속 요청 (SYN)
3. 클라이언트 요청에 대한 응답 (SYN, ACK)
4. 클라이언트 응답에 대한 확인 (ACK) 전송
5. HTTP-GET 페이지 요청
6. 서버는 클라이언트 요청 점검
7. 요청 HTML 페이지를 클라이언트에 전송
8. 클라이언트 전송 데이터 점검
- HTTP 프로토콜 구조
HTTP : Header + Body
Header : Request 시 요청할 웹브라우저 정보, 요청방식, 파라미터
Body : Body에 파라미터 정보 넣고 전송
1. GET : 서버에 전달 할떄 URL에 입력 파라미터(데이터)를 넣어서 요청
전송 데이터 양 제한 (2K or 4k)
Get test.html?id=1234&password=pw1234
2. POST : 요청 파라미터를 HTTP Body에 넣어서 전송
전송 데이터 양 제한없음
Post test.html
id=1234:password=pw1234
- Http Requset Header 구조
Request Method : POST, GET, PUT, DELETE 등 호출 메소드
Accept : 웹브라우저 미디어 타입
Accept-Langugae : 웹브라우저 인식 언어
User-Agent : 웹브라우저 정보
Accept-Encoding : 웹브라우저 제공되는 인코딩 방식
Host : 웹 서버 기본 URL
Connection : 연결 지속(Keep Alive) 또는 끊기(Close)
- HTTP Response header 구조
Status Code : Http 응답코드
Server : 서버 프로그램명, 버전
Expires : 만기 일자
Cache Control : 캐시 사용여부
Content - Encoding : 응답 메시지 인코딩방식
Content - Length : 응답 리소스 크기 (바이트)
Keep-Alive : 연결유지시간 (timeout)
Content-type : 응답 미디어 타입
* 웹서버에서 응답하는 404 Forbidden 상태코드 경우는 클라이언트가 요청한 자원이 웹 서버에 없다는 의미.
- 쿠키 : 웹브라우저에 저장할 수 있는 작은 공간 (프로그램 관련 정보 임시 저장)
클라이언트에서 상태 정보를 저장 (4Kbyte)
쿠기 값은 변조가 가능하여 인증같은 중요 정보를 저장하지 않아야 한다.
- 세션 : 클라이언트와 웹서버 사이의 네트워크 연결 지속 유지
세션 쿠키 : 연결이 종료되면 쿠기 값도 자동 삭제
방식 | 쿠키 | 세션 |
저장형태 | Text | Object |
저장 위치 | 클라이언트 | 서버 |
종료 시점 | 쿠키 저장 시 종료 시점 설정 기본적으로는 브라우저 종료 시점 |
모름 |
용량 | 도메인당 20개, 하나 4Kbyte | 없음 |
3> FTP
- 파일 전송 프로토콜
- ftpusers에 등록된 사용자는 FTP 접근 불가
- 전송 : Active mode , Passive mode
a. Active mode
클라이언트가 FTP 서버 TCP 21번 포트로 접속
FTP 서버는 20번 포트로 데이터 송수신
b. Passive mode
클라이언트가 FTP 서버 TCP 21번 포트로 접속 후 포트 요청
FTP 서버는 데이터 연결 포트를 Random 으로 리턴 (1024 이상)
클라이언트는 해당 포트로 접속하여 데이터 송수신
4> SMTP
- 전자우편 표준 프로토콜
- Store-and-Forward 방식 메시지 전달
-> Store : 메일이 전송되면 메일박스에 저장
-> Forward : 저장된 메일박스에서 해당 메일을 수신자에 전달
- 동작방식
MTA : 메일 전송 서버
MDA : 수식 측 메일 전송 서버
MUA : 사용자 클라이언트
- POP3 : MDA 프로그램으로 메일 서버에서 해당 메일 삭제
- IMAP : 메일 서버에서 원복 계속 저장
5> SNMP
- 네트워크 관리 시스템
- NMS : SNMP 프로토콜 통해 네트워크 정보 수집 시스템