FTP와 SFTP 소개 및 비교

FTP(파일 전송 프로토콜)와 SFTP(SSH 파일 전송 프로토콜)는 네트워크를 통해 파일을 전송하는 두 가지 방법입니다. 이 두 프로토콜은 파일 전송을 위해 사용되지만, 보안, 인증 및 전송 방식에 있어서 차이점이 있습니다.

FTP (File Transfer Protocol)

FTP는 네트워크를 통해 파일을 전송하기 위해 사용되는 표준 프로토콜입니다. 클라이언트-서버 모델을 기반으로 하며, 주로 인터넷을 통해 파일을 업로드하거나 다운로드하는 데 사용됩니다.

주요 특징은 다음과 같습니다.

비암호화 전송

  • 기본적으로 FTP는 데이터를 암호화하지 않고 전송합니다. 이로 인해 전송 중에 데이터가 도청될 가능성이 있습니다.

포트 사용

  • FTP는 제어 연결을 위해 포트 21을 사용하고, 데이터 전송을 위해 별도의 포트를 사용합니다. 기본적으로 포트 20이 데이터 전송에 사용되지만, 이는 PASV(수동) 모드에서는 다를 수 있습니다.

명령어 기반

  • FTP는 다양한 명령어를 사용하여 서버와 상호 작용합니다.

익명 접근

  • 일부 FTP 서버는 익명 사용자 접근을 허용하여, 사용자 인증 없이 파일을 다운로드할 수 있게 합니다.

모드

  • 액티브 모드 : 서버가 데이터 연결을 클라이언트에 직접 개설합니다.
  • 패시브 모드 : 클라이언트가 데이터 연결을 서버에 개설합니다.

SFTP (SSH File Transfer Protocol)

SFTP는 SSH(보안 셸) 프로토콜을 통해 파일 전송을 수행하는 프로토콜로, FTP와는 다르게 데이터와 명령어를 암호화하여 전송합니다. 이는 SSH의 확장으로 간주될 수 있습니다.

주요 특징은 다음과 같습니다.

암호화 전송

  • 모든 데이터 전송이 SSH 프로토콜을 통해 암호화되어 보안성이 높습니다. 이는 전송 중 데이터 도청 및 변조를 방지합니다.

단일 포트 사용

  • SFTP는 SSH와 동일한 포트(기본적으로 포트 22)를 사용하여 제어 및 데이터 전송을 모두 수행합니다.

SSH 인증

  • SFTP는 SSH 프로토콜을 사용하여 사용자 인증을 수행합니다. 이는 비밀번호 기반 인증, 공개 키 인증 등 다양한 인증 방법을 포함합니다.

명령어 기반

  • SFTP는 자체 명령어 셋을 사용하여 파일 전송 작업을 수행합니다. 이는 FTP와 다르지만, 전송 작업은 비슷하게 수행됩니다.

보안 기능

  • SFTP는 SSH의 보안 기능을 모두 상속받아 데이터 무결성 및 기밀성을 보장합니다.

주요 차이점

보안

  • FTP : 데이터가 암호화되지 않은 상태로 전송되므로 보안에 취약합니다.
  • SFTP : SSH를 통해 암호화된 채널로 데이터를 전송하므로 높은 보안성을 제공합니다.

포트 사용

  • FTP : 제어 연결에 포트 21을 사용하며, 데이터 전송을 위해 추가 포트를 사용합니다.
  • SFTP : 제어 및 데이터 전송 모두를 위해 포트 22를 사용합니다.

사용 용도

  • FTP : 보안이 크게 요구되지 않는 환경에서 주로 사용됩니다.
  • SFTP : 보안이 중요한 환경에서 주로 사용됩니다.

인증 방법

  • FTP : 기본적으로 사용자 이름과 비밀번호를 사용한 간단한 인증 방식을 사용합니다.
  • SFTP : SSH 프로토콜의 다양한 인증 방법을 사용합니다(예: 공개 키 인증).

마치며

FTP와 SFTP는 각각 파일 전송을 위한 유용한 도구이지만, 보안 요구사항에 따라 선택이 달라질 수 있습니다. 보안이 중요한 환경에서는 SFTP가 더 적합하며, FTP는 보안이 덜 중요한 환경에서 사용될 수 있습니다. 이 두 프로토콜의 장단점을 이해하고, 사용 환경에 맞게 적절한 프로토콜을 선택하는 것이 중요합니다.

참고

같은 카테고리의 다른 글

보안 / IDS와 IPS 비교

Intrusion Detection System(IDS)와 Intrusion Prevention System(IPS)은 모두 네트워크 보안 시스템의 일환으로, 침입을 탐지하고 대응하는 역할을 합니다. 그러나 이 두 시스템은 기능과 목적에서 몇 가지 중요한 차이점이 있습니다. Intrusion Detection System (IDS) IDS는 네트워크나 시스템에서 발생하는 활동을 모니터링하고, 악의적인 활동이나 정책 위반을 탐지하여 관리자에게 경고를 보내는 역할을 합니다. IDS는 침입을 탐지하지만, 이를 차단하지는 ...

배틀그라운드 / 스팀, 다음 게임, 모바일 나이 제한

배틀그라운드 / 스팀, 다음 게임, 모바일 나이 제한

배틀그라운드는 스팀이나 다음 게임에서 구입할 수 있고, 안드로이드나 iOS의 모바일용 배틀 그라운드를 즐길 수도 있습니다. 모바일용은 무료입니다. 종류별로 나이 제한이 다릅니다. 스팀 스팀에서 배틀 그라운드를 구입할 수 있는 나이는 18세 이상입니다. 18세 미만이라면 구입을 할 수 없습니다. 다음 게임 다음 게임도 스팀과 같이 18세 이상이었는데, 2018년 1월 25일부터 15세 이상도 가능하게 되었습니다. 대신 부모님의 ...

스팀 / 자녀 보호 설정하는 방법, 해제하는 방법

스팀 / 자녀 보호 설정하는 방법, 해제하는 방법

요즘 아이들은 게임으로 논다. 멀티플레이 게임도 많으니까 혼자 논다고 볼 수는 없다. 친구들과 함께 게임을 즐긴다. 그러려면 게임을 사줘야 하는데, 아무 거나 사줄 수도 없고, 아무거나 플레이하게 할 수도 없다. 그래서 게임 판매자는 청소년에 대한 제한을 두고 있다. 그건 스팀도 마찬가지다. 스팀에는 자녀 보호라는 이름의 기능으로 아이의 게임을 제한한다. 그렇다고 뭔가 ...

공인 IP vs 사설 IP

공인 IP(공인 인터넷 프로토콜 주소)와 사설 IP(사설 인터넷 프로토콜 주소)는 네트워크에서 사용되는 IP 주소의 두 가지 주요 유형이다. 각각의 정의와 주요 차이점은 다음과 같다. 공인 IP (Public IP) 정의 공인 IP 주소는 인터넷 서비스 제공업체(ISP)에 의해 할당된 고유한 IP 주소로, 인터넷 상에서 다른 장치들과 직접 통신할 수 있다. 사용 위치 인터넷에 직접 연결된 모든 장치에 ...

SSH(Secure Shell) 소개

SSH(보안 셸, Secure Shell는 네트워크를 통해 다른 컴퓨터에 안전하게 접속하고 명령을 실행할 수 있도록 설계된 프로토콜입니다. SSH는 특히 원격 로그인 및 기타 네트워크 서비스를 안전하게 제공하기 위해 사용되며, 데이터를 암호화하여 전송하므로 도청과 중간자 공격을 방지할 수 있습니다. 주요 특징 암호화 SSH는 데이터를 암호화하여 전송합니다. 이를 통해 전송 중인 데이터가 도청되거나 변경되는 것을 방지할 ...

인터넷 속도 단위 Mbps와 MB와의 관계

인터넷 속도 단위인 Mbps는 Mega Bits Per Second의 약자로, 1초당 전송하는 Mega Bit의 양입니다. 예를 들어 인터넷 속도가 100Mbps라고 하면 1초당 100 Mega Bits를 전송한다는 뜻입니다. 그런데 파일의 크기는 Byte를 단위로 사용합니다. 예를 들어 3MB 크기의 파일이라고 하면 3 Mega Bytes를 의미합니다.

Apache / 디렉토리 안에 있는 디렉토리 또는 파일 목록 출력하는 방법

Apache / 디렉토리 안에 있는 디렉토리 또는 파일 목록 출력하는 방법

URL이 정확히 입력되지 않은 경우 보통 다음처럼 Forbidden 에러가 납니다. 이 에러 대신 해당 디렉토리에 있는 파일과 하위 디렉토리 목록이 나오게 하고 싶다면, 설정에 다음 코드를 추가합니다. Options +Indexes

토스페이먼츠 / 결제내역 확인하는 방법

토스페이먼츠 / 결제내역 확인하는 방법

인터넷 쇼핑몰에서 결제를 할 때 토스페이먼츠로 하였다면, 신용카드 명세에 가맹점명이 토스페이먼츠 주식회사로 찍힌다. 그래서 실제 결제한 인터넷 쇼핑몰이 어딘지 알 수 없다. 이를 확인하고 싶다면 토스페이먼츠 홈페이지로 가야 하는데... 좀 많이 귀찮다. 토스페이먼츠 홈페이지로 접속하고 을 클릭하거나... https://www.tosspayments.com/ 아래 링크로 바로 접속한다. https://consumer.tosspayments.com/payment-history/card 이 부분이 많이 귀찮은데... 결제 관련 정보를 꽤 많이 입력해야 한다. 입력을 마쳤으면 ...

페이팔 / 카카오뱅크 연결하는 방법

페이팔 / 카카오뱅크 연결하는 방법

최근 환율이 많이 올랐다. 그래서 페이팔에 있는 달러를 원화로 이체하기로 했다. 예전에 우리은행과 국민은행을 연결해두었는데, 최근에는 카카오뱅크를 주로 사용해서 카카오뱅크를 추가하고 이체하기로 정했다. 일단 할 것은 카카오뱅크를 페이팔 지갑에 추가하는 것인데... 많이 편해졌다. 은행계좌 연결에서 ka라고 치면... KAKAOBANK가 바로 나온다. KAKAOBANK를 선택하고... 계좌 유형을 예금으로 선택한 후, 계좌번호는 숫자만 넣는다. 동의 후 연결을 클릭하면 연결 ...

KT 멤버쉽 또는 롯데면세점 혜택으로 롯데렌터카 저렴하게 예약하는 방법

KT 멤버쉽 또는 롯데면세점 혜택으로 롯데렌터카 저렴하게 예약하는 방법

제주도 여행을 위해 차를 렌트하게 되었다. 제주도에는 렌트카 업체가 다양하게 있는데, 워낙 안 좋은 기사를 많이 봐서 대형 업체에서 빌리기로 했다.  대형 업체 중 롯데렌터카로 정했는데, 롯데렌터카 공식 홈페이지에서 예약하는 것보다 제휴 업체를 통해 예약하는 게 더 저렴하더라. 대표적인 제휴업체는 KT와 롯데면세점. 두 군데 모두 예약 방식이나 할인 정도는 같았다. 예를 들어 ...