정보보안기사

FTP(종류)

duduranran 2023. 1. 18. 23:41

1. FTP개요

- 파일 전송 프로토콜(FTP, File Transfer Protocal)은 하나의 호스트에서 다른 호스트로 파일을 복사하기 위해 TCP/IP에 의해 제공되는 표준 기능이다.

- FTP는 호스트 간에 두 개의 연결을 설정한다는 점에서 다른 클라이언트 서버 응용들과 다르다. 하나의 연결은 데이터 전송을 위해 사용되고, 또 다른 하나는 명령과 응답 등의 제어 정보를 위해서 사용한다. 이러한 제어와 데이터 전송의 분리는 FTP를 좀 더 효율적으로 사용할 수 있게 만들어 준다.

- FTP는 두 개의 잘 알려진 (well-known) TCP포트를 사용한다. 포트 20번은 데이터 연결을 위해, 포트 21번은 제어 연결을 위해 사용된다.

- 제어 연결은 전체 FPT세션 동안 계속 연결 상태를 유지하고, 데이터 연결은 파일 전송 때마다 설정되며, 전송이 완료되면 폐쇄된다.

 

1) FTP 로그인 순서와 인증

- FTP가 일반적으로 사용하는 인증 방식은 단순한 사용자명/비밀번호 방식으로 상당히 초보적이다.

- 먼저 USER 명령을 통해 사용자명을 전송하여 어떤 사용자가 접근을 시도하는지 확인/ 그리고 PASS 명령을 통해 사용자 비밀번호를 전송한다.

- 서버는 사용자 데이터베이스에서 사용자명과 비밀번호를 대조하여 접근을 시도하고 있는 사용자가 서버에 접근할 권한이 있는지 확인한다.

 

2) FTP연결

- FTP 연결은 능동(Active) 연결과 수동(Passive) 연결이 있다.

 

능동모드 (일반연결)

- 일반적으로 능동모드가 FTP 클라이언트의 기본 값으로 설정된다. 클라이언트에서 서버측 21번 포트로 접속하여 제어채널을 생성하고, 데이터는 서버에서 클라이언트로 접속하여 데이터를 보내는 방식이다.

- 만약 클라이언트 PC에 방화벽이 설치되어 외부에서의 접속을 허용하지 않는다면 FTP 접속은 되지만(제어채널은 연결되지만) 이후 데이터 채널 연결이 불가능하여 파일을 받을 수 없는 문제가 발생한다.

 

수동모드(수동연결)

- 클라이언트에서 서버측 21번 포트로 접속하여 제어채널을 생성하고, 데이터 채널도 클라이언트에서 서버로 접속하여 데이터를 보내는 방식이다.

 

2. 익명 FTP

- 많은 FTP 서버는 익명 FTp를 지원하여 서버에 계정이 없는 사용자가 서버 자원에 한정된 접근을 할 수 있는 권한을 제공

- 익명 FTP는 기술지원이나 고객지원, 파일 배포 등을 하고자 하는 단체에서 사용하는 경우가 많다.

- 익명 FTP에 엑세스하기 위해 사용자는 계정이나 비밀번호가 필요하지 않다. 대신 사용자 이름으로 'anonymous'를 패스워드로 '이메일 주소'를 사용할 수 있다.

- 이 때 입력하는 비밀번호는 실제 비밀번호가 아니며 누가 접속하고 있는지 서버가 로그에 기록하는데 쓰일 뿐이다.

 

3. TFTP(Trivial File Transfer Protocal)

- FTP의 기능을 전부 지원할 필요가 없거나 모두 지원하는 것이 비현실적인 경우를 위해 더 간단한 TFTP가 개발됐다.

- FTP는 TCP를 사용하지만, TFTP는 UDP(69번 포트)를 사용한다.

- TFTP는 소프트웨어 패키지를 읽기 전용 메모리나 디스크 없는 워크스테이션에 설치할 때 주로 쓰인다.

 

1) TFTP의 데이터 전송

- 데이터 전송 단계는 연결 설정과 종료 사이에 수행된다. TFTP는 신뢰성이 없는 UDP서비스를 사용한다.

- 파일은 데이터와 블록으로 나뉘고, 마지막 블록을 제외한 각 블록은 정확히 512바이트의 크기를 가지며, 마지막 블록은 0에서 511바이트의 크기를 갖는다.

- UDP는 흐름제어와 오류제어를 위한 기능이 업으므로, TFTP는 연속적인 데이터 블록으로 파일을 전송하기 위하여 흐름제어와 오류제어 메커니즘을 생성해야 한다.

 

4. FTP와 TFTP의 차이점

전송 : TCP와 UDP의 차이와 같이 TFTP는 단순성이 중요하고, 다양한 기능을 지원하는 것이 크게 중요하지 않을 때 사용. TFTP는 부트 스트래핑을 할 때 사용하는 경우가 가장 많다.

한정된 개수의 명령 : FTP는 파일을 ㅂ다고 보내고 삭제하기 등을 위한 다양한 명령을 구비하고 있다. 하지만 TFTP는 파일을 보내고 받는 기능만 지원한다.

한정된 데이터 표현 방식 : TFTP는 FTP가 지원하는 데이터 표현 방식을 전부 지원하지 않는다. 지원하는 방식을 ASCII와 바이너리 뿐이다.

인증의 부족 : TFTP에서 삭제 기능처럼 위험할 수 있는 기능을 지원하지 않은 이유 중 하나는 인증이 없기 때문이다.