SSH 파일 전송 프로토콜
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
SFTP (SSH File Transfer Protocol)는 SSH(Secure Shell)를 통해 파일을 전송하는 프로토콜로, SCP(Secure Copy)와 달리 파일 전송 외에 디렉터리 나열, 원격 파일 삭제 등 다양한 기능을 제공한다. IETF(국제 인터넷 표준화 기구)의 Secsh 워킹 그룹에서 개발되었으며, SSH 프로토콜 버전 2의 하위 시스템으로 사용되지만, SSH-1을 통해서도 실행될 수 있다. SFTP는 파일 업로드 시 타임스탬프와 같은 속성을 연결할 수 있으며, IETF 초안을 통해 여러 버전으로 개정되었다. SFTP 클라이언트로는 OpenSSH의 sftp, WinSCP, FileZilla 등이 있으며, SFTP 서버는 SSH 서버 구현에서 제공되는 경우가 많다. SFTP 프록시는 네트워크 보안 강화를 위해 SFTP 트래픽을 제어하는 데 사용된다.
더 읽어볼만한 페이지
- 시큐어 셸 - PuTTY
PuTTY는 SSH, 텔넷 등 다양한 통신 프로토콜을 지원하는 자유-오픈 소스 터미널 에뮬레이터로, 여러 운영체제에서 사용 가능하며 터미널 에뮬레이션, 포트 포워딩 기능과 함께 PSCP, PSFTP, Plink 등의 유틸리티 및 PuTTYgen, Pageant를 제공한다. - 시큐어 셸 - 웹 기반 SSH
웹 기반 SSH는 웹 브라우저를 통해 SSH 서버에 접속하여 터미널 환경을 제공하는 기술로, JavaScript 기반 터미널 에뮬레이터나 WebSocket을 활용하여 구현되며, 클라이언트 IP 숨김, 감사 기능, 세션 재개, 임베딩 가능성과 같은 장점과 보안 취약성, 터널링의 어려움과 같은 문제점을 가진다. - 네트워크 파일 전송 프로토콜 - 백그라운드 인텔리전트 전송 서비스
백그라운드 인텔리전트 전송 서비스(BITS)는 유휴 네트워크 대역폭을 활용하여 파일을 비동기적으로 전송하는 윈도우 서비스로, 네트워크 사용량이 적을 때 백그라운드에서 파일을 전송하며 중단된 부분부터 재개할 수 있고, 소프트웨어 업데이트 및 애플리케이션 배포 등에 활용되며, 작업 큐를 통해 전송을 관리하고, 윈도우 비스타 이후 운영체제에서는 `bitsadmin.exe` 명령 줄 유틸리티를 통해 관리가 가능하다. - 네트워크 파일 전송 프로토콜 - FTPS
FTPS는 FTP에 TLS/SSL 암호화 프로토콜을 적용하여 보안을 강화한 프로토콜로, 암묵적/명시적 방식이 있으며 데이터 및 제어 채널을 암호화하여 보안 위협을 방지한다. - 암호 프로토콜 - HTTPS
HTTPS는 HTTP에 보안 기능이 더해진 통신 규약으로, 웹 브라우저와 서버 간 통신을 암호화하여 보안을 강화하지만, 인증서 비용, 서버 부하, 혼합 콘텐츠 문제 등의 단점도 존재한다. - 암호 프로토콜 - IPsec
IPsec은 IP 네트워크에서 보안 통신을 제공하기 위한 프로토콜 스위트로서, 전송 모드와 터널 모드를 지원하며, AH, ESP 등의 프로토콜을 사용하여 데이터 무결성, 인증, 기밀성을 제공하고, IKE 프로토콜을 통해 보안 연결을 설정 및 키를 교환하는 개방형 표준이다.
SSH 파일 전송 프로토콜 | |
---|---|
일반 정보 | |
약칭 | SFTP |
목적 | 파일 전송 |
개발자 | IETF SECSH 작업 그룹 |
날짜 | 1997년 |
기반 | Secure Shell (SSH) |
영향 | FTP over SSH FTPS |
OSI 계층 | 응용 계층 (7) |
포트 | 22/TCP |
2. 기능
SFTP는 파일 전송 외에도 다양한 원격 파일 조작 기능을 제공하여, 원격 파일 시스템 프로토콜과 유사한 기능을 수행한다.[19][2][14] 이러한 기능에는 중단된 전송 재개, 디렉터리 나열, 원격 파일 삭제 등이 포함된다.[19][2][14] 또한 심볼릭 링크를 포함한 모든 UNIX 파일 유형을 지원한다.[3]
SFTP는 국제 인터넷 표준화 기구(IETF)의 "Secsh" 워킹 그룹에서 개발되었다. 이 그룹은 시큐어 셸 버전 2 프로토콜(RFC 4251) 개발을 담당했으며, 안전한 파일 전송 기능 확장을 시도했다.[20][5][15] 초기에는 SSH 커뮤니케이션즈 시큐리티의 사유 프로토콜이었으나, 이후 IETF에서 표준화 작업을 진행하였다.
SFTP는 SCP보다 플랫폼 독립성이 높다.[19] SCP에서는 클라이언트가 지정한 와일드카드 확장이 서버에 따라 다르지만, SFTP는 이러한 문제를 회피한다.[19] SCP는 주로 유닉스 플랫폼에서 구현되지만, SFTP 서버는 대부분의 플랫폼에서 사용 가능하다.[19] SFTP에서는 다른 메커니즘과 달리 세션을 종료하지 않고도 파일 전송을 쉽게 종료할 수 있다.
SFTP는 SSH를 통해 실행되는 FTP가 아니라, IETF SECSH 워킹 그룹에서 처음부터 설계한 새로운 프로토콜이다.[19][4][14] 프로토콜 자체는 인증 및 보안을 제공하지 않으며, 기반 프로토콜(주로 SSH)이 이를 보장한다.[19][4][14]
업로드된 파일은 타임스탬프와 같은 기본 속성을 연결할 수 있어, 일반적인 FTP 프로토콜에 비해 유리하다.[19]
3. 역사 및 개발
개발 과정에서 파일 접근 및 파일 관리 기능이 추가되면서, 일부 위원들은 SFTP를 단순한 파일 접근이나 파일 전송 프로토콜이 아닌 파일 시스템 프로토콜로 간주하기 시작했다. 그러나 이는 워킹 그룹의 범위를 넘어서는 것이었기 때문에 개발이 중단되었다.[21][6][16]
7년의 중단 기간 후, 2013년에 버전 3 초안을 기반으로 SFTP 작업을 다시 시작하려는 시도가 있었다.[22][7]
3. 1. 버전 0-2
IETF 참여 이전에 SFTP는 SSH 커뮤니케이션즈 시큐리티(SSH Communications Security)의 독점 프로토콜이었으며, 1997년 타투 옐로넨이 사미 레흐티넨의 도움을 받아 설계했다.[8] 버전 0-2와 버전 3 간의 차이점은 [https://tools.ietf.org/html/draft-ietf-secsh-filexfer-02#section-10 draft-ietf-secsh-filexfer-02의 10절]에 열거되어 있다.
3. 2. 버전 3
IETF 시큐어 셸 파일 전송 프로젝트 초기에, Secsh 그룹은 SFTP의 목표를 신뢰할 수 있는 데이터 스트림을 통해 안전한 파일 전송 기능을 제공하고, SSH-2 프로토콜과 함께 사용하기 위한 표준 파일 전송 프로토콜이 되는 것으로 명시했다.
IETF 인터넷 초안 00-02는 SFTP 프로토콜 버전 3의 개정판들을 정의한다.
3. 3. 버전 4
IETF 인터넷 초안 03 - 04는 프로토콜 버전 4를 정의한다.[15]
3. 4. 버전 5
IETF 인터넷 초안 05는 이 프로토콜의 버전 5를 정의한다.[15] https://datatracker.ietf.org/doc/html/draft-ietf-secsh-filexfer-05 SSH 파일 전송 프로토콜, 초안 05, 2004년 1월
3. 5. 버전 6
IETF 인터넷 초안 06 - 13은 SSH 파일 전송 프로토콜 버전 6의 개정판들을 정의한다.[1]
초안 번호 | 날짜 | 주요 변경 사항 |
---|---|---|
06 | 2004년 10월 | (없음) |
07 | 2005년 3월 | (없음) |
08 | 2005년 4월 | (없음) |
09 | 2005년 6월 | 바이트 범위 잠금 추가. ACL 변경. SSH_FXP_REALPATH 요청 매개변수 재정렬. |
10 | 2005년 6월 | 확장 "vendor-id", "md5-hash", "space-available", "home-directory" 제거. ACL 변경. |
11 | 2006년 1월 | ACL 전송 완벽하게 지정됨. 편집 변경 사항. |
12 | 2006년 1월 | "IANA 고려 사항" 추가. 이제 파일 생성에 자문 신호로 크기 매개변수가 허용됨. |
13 | 2006년 7월 | 편집 변경 사항 |
3. 6. 확장
SFTP 프로토콜은 확장 명령을 나타내는 일반적인 방법과 버전 협상에 확장 명령을 포함하는 방법을 지원한다. IANA 레지스트리가 요청되었지만, 프로토콜이 공식 표준이 되지 않아 그러한 레지스트리는 생성되지 않았다.[3]4. 소프트웨어
SFTP 프로토콜을 지원하는 다양한 소프트웨어가 있다.
4. 1. SFTP 클라이언트
SFTP 클라이언트는 SFTP 프로토콜을 사용하여 서버에 접속하고 파일을 전송하거나 관리하는 프로그램이다. OpenSSH의 sftp 명령줄 프로그램[10][18], WinSCP, FileZilla, Cyberduck, EmFTP, Transmit 등이 대표적인 SFTP 클라이언트이다. 일부 `scp` 프로그램 구현은 서버에서 지원하는 경우 SFTP와 SCP 프로토콜을 모두 지원한다. OpenSSH 9.0 이상 버전의 scp는 기본적으로 SFTP를 사용한다.[11]4. 2. SFTP 서버
일부 FTP 서버 구현은 SFTP 프로토콜을 구현하기도 하지만, 일반적으로 SFTP 프로토콜 지원은 SSH 서버 구현에서 제공되며, 이는 다른 SSH 서비스와 기본 포트 22를 공유하기 때문이다.[19] SFTP 구현은 SSH 프로토콜 구현을 통해 기존 FTP 서버 접근 제어와 SSH 연결 세부 정보를 통합할 수 있다. 이 경우 대체 SSH 서버를 허용하거나 대체 포트를 사용할 수 있다. 서브시스템을 지원하는 SSH-2 서버는 연결 세부 정보와의 세밀한 통합과 SSH-1 호환성을 유지하면서, 타사 소프트웨어로 접근 제어를 강화하는 데 활용될 수 있다.4. 3. SFTP 프록시
SFTP는 암호화되어 있기 때문에 네트워크 경계에서 보안 장치로 SFTP 전송을 제어하기 어렵다. TIS gdev 또는 SUSE FTP 프록시와 같이 FTP 트랜잭션을 로깅하는 표준 도구가 있지만, 기존 프록시로는 SFTP 트래픽을 제어하는 데 효과가 없다.[12]SSH에 대한 중간자 공격(Man-in-the-Middle Attack)을 구현하고 SFTP 제어 기능도 제공하는 도구가 있다. Balabit의 Shell Control Box와 SSH 커뮤니케이션 시큐리티(Secure Shell 프로토콜의 원래 개발자)의 CryptoAuditor가 이러한 도구의 예시이며, SFTP 트랜잭션 로깅 및 전송된 실제 데이터 로깅과 같은 기능을 제공한다.[13]
참조
[1]
웹사이트
The What's, How's and Why's of SFTP
https://www.integrat[...]
[2]
간행물
SSH, The Secure Shell: The Definitive Guide
O'Reilly
[3]
웹사이트
SSH File Transfer Protocol
https://datatracker.[...]
Internet Engineering Task Force
2006-07-18
[4]
간행물
SSH, The Secure Shell: The Definitive Guide
O'Reilly
[5]
웹사이트
Secsh Status Pages
http://tools.ietf.or[...]
Tools.ietf.org
2012-08-20
[6]
웹사이트
ietf.secsh—Formal consultation prior to closing the secsh working group—msg#00010—Recent Discussion
http://osdir.com/ml/[...]
Osdir.com
2006-08-14
[7]
웹사이트
SSH File Transfer Protocol—draft-moonesamy-secsh-filexfer-00
https://datatracker.[...]
Tools.ietf.org
2013-07-12
[8]
문서
ftp://ftp.ietf.org/ietf-mail-archive/secsh/2012-09.mail
ftp://ftp.ietf.org/i[...]
[9]
웹사이트
openssh-portable sftp.h
https://github.com/o[...]
OpenSSH
2023-05-24
[10]
웹사이트
OpenBSD manual page for the "sftp" command: "See Also" section
https://man.openbsd.[...]
OpenBSD.org
2018-02-04
[11]
웹사이트
OpenSSH 9.0
https://www.openssh.[...]
2022-04-08
[12]
웹사이트
Record SSH/RDP/Citrix into Audit Trail—Activity Monitoring Device
http://www.balabit.c[...]
Balabit.com
2012-08-20
[13]
웹사이트
Privileged Access Control and Monitoring
http://www.ssh.com/p[...]
SSH.com
2014-11-25
[14]
간행물
SSH, The Secure Shell: The Definitive Guide
O'Reilly
[15]
웹사이트
Secsh Status Pages
http://tools.ietf.or[...]
Tools.ietf.org
2012-08-20
[16]
웹사이트
ietf.secsh - Formal consultation prior to closing the secsh working group - msg#00010 - Recent Discussion
http://osdir.com/ml/[...]
Osdir.com
2006-08-14
[17]
문서
ftp://ftp.ietf.org/ietf-mail-archive/secsh/2012-09.mail
ftp://ftp.ietf.org/i[...]
[18]
웹사이트
OpenBSD manual page for the "sftp" command: "See Also" section
https://man.openbsd.[...]
OpenBSD.org
2018-02-04
[19]
간행물
SSH, The Secure Shell: The Definitive Guide
O'Reilly
[20]
웹인용
Secsh Status Pages
http://tools.ietf.or[...]
Tools.ietf.org
2012-08-20
[21]
웹인용
ietf.secsh - Formal consultation prior to closing the secsh working group - msg#00010 - Recent Discussion
http://osdir.com/ml/[...]
Osdir.com
2006-08-14
[22]
웹인용
SSH File Transfer Protocol - draft-moonesamy-secsh-filexfer-00
http://permalink.gma[...]
Gmane.org
2013-07-12
[23]
문서
ftp://ftp.ietf.org/ietf-mail-archive/secsh/2012-09.mail
ftp://ftp.ietf.org/i[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com