<FTP (File Transfer Protocol)>
: TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일 전송을 하기 위한 프로토콜
파일 전송 프로토콜은 TCP/IP 프로토콜 테이블의 응용 계층에 속한다.
- 연결 종류
1) 명령 연결
: 서버 21번 포트(=제어포트)로 사용자 인증, 명령을 위한 연결이 생성됨
-> 이 연결을 통해
-> 클라이언트에서 지시하는 명령어가 전달
2) 데이터 전송용 연결
: 실제의 파일 전송은 필요할 때 새로운 연결이 만들어진다.
2-1) 능동 모드 (Active mode)
: 서버가 20번 포트(=데이터포트)에서부터 클라이언트가 지정한 지점으로의 데이터 연결 생성
(클라이언트가 지정하는 포트는 주로 1023 보다 큰 번호가 매겨진 포트)
클라이언트가 방화벽, NAT(IP 마스킹) 등을 사용하는 환경일 때에 잘 동작하지 않을 수 있는데,
이때 수동 모드를 이용하면 된다.
2-2) 수동 모드 (Passive mode)
: 클라이언트가 서버가 지정한 서버 포트로 연결할 수 있게 한다.
보통 양쪽 포트 모두 1023 보다 큰 포트를 사용한다.
- 보안
: FTP는 보안 프로토콜로 계획되지 않았으므로
-> 수많은 보안 취약점 존재
~ 무차별 대입 공격
~ FTP 바운스 어택
~ 패킷 가로채기
~ 포트 훔치기
(다음에 열릴 포트를 예측하여, 적절한 연결을 뺏는 것)
~ 스푸핑 공격
~ 사용자 이름 열거
: 파일 전송 프로토콜은 서버의 파일을 바꾸거나 지울 수 있기 때문에
-> 전송하기 앞서 사용자 이름과 암호를 묻는 인증 과정 필요
보통 FTP에서는 암호가 암호화X
-> "원 타임 암호"(한번만 묻는 암호)를 이용한 인증 사용
'웹 > 웹 기초' 카테고리의 다른 글
윈도우 볼라틸리티 (volatility) 설치하기 (0) | 2021.02.18 |
---|---|
# HTTP_상태 코드(Status code) (0) | 2021.02.15 |
# TCP_기초 (0) | 2021.02.11 |
#JSP (0) | 2021.02.10 |
데이터베이스_#기초 (0) | 2021.02.05 |