본문 바로가기
✍️ 글쓰기/💻 배우고

SFTP(SSH) 개념 정리

by ddubimoon 2022. 7. 14.

 SFTP (Secure File Transfer Protocol)란

SFTP는 웹 상에서 큰 파일들을 전달하는 파일 프로토콜(protocol)이다. File Transfer Protocol(FTP)를 토대로 만들어졌으며 Secure Shell(SSH) 보안 컴포넌트를 가지고 있다. Secure Shell은 인터넷 보안의 암호화된 컴포넌트인데, IETF(Internet Engineering Task Force)가 더 나은 웹 보안을 위해 SSH와 SFTP을 디자인했다. 

즉, SFTP는 FTP의 형태를 가지고 있지만 SSH를 이용하여 그 기능을 실행한다. 

SFTP는 SSH를 사용해 파일을 안전하게 전송하고, 암호화된 FTP 커맨드로 비밀번호나 민감한 정보들을 안전하게 보호한다. 클라이언트가 서버로부터 인증을 받아야 하기 때문에 SFTP 또한 중간자 공격을 예방할 수 있는 방법들 중 하나라고 볼 수 있다.

  • 중간자 공격: 네트워크 통신을 조작하여 통신 내용을 도청하거나 조작하는 공격 기법. 통신을 연결하는 두 주체 사이에 중간자가 침입하여, 두 주체는 상대방에게 연결되었다고 생각하지만 실제로는 모두 중간자에게 연결되어 있음. 중간자가 한쪽에서 전달된 정보를 도청 및 조작한 후 다른 쪽으로 전달하는 방식. 많은 암호 프로토콜은 중간자 공격을 막기 위해 인증을 사용한다.

SFTP는 민감한 데이터가 보호되어야 하는 경우에 유용하게 쓰일 수 있다. 예를 들어, 기업 기밀이 특정한 데이터 보안법에 적용되진 않지만, 그것이 잘못된 곳에 노출되면 아주 치명적인 경우라고 하자. 이때 기업은 SFTP를 활용하여 기밀이 들어있는 파일들을 전송할 수 있다. 개인 유저들 또한 같은 맥락으로 그들의 대화 내용들을 암호화시킬 수 있다.

 SFTP 사용 방법

SFTP는 커맨드 라인이나 GUI을 통해 실행할 수 있는 client-server 프로토콜이다. Command line을 활용할 경우, 주로 LInux 환경에서 유저가 SFTP를 생성하기 위한  구체적인 명령줄를 입력해야 한다. 반면 GUI에서는 최종 사용자(end user)를 위해 시각적으로 SFTP 사용을 추상화한 프로그램을 사용한다.

SFTP는 일반 SSH 포트 22를 사용한 SSH 프로토콜을 통해 실행되고, 다양한 동시 작업을 지원한다. 클라이언트는 서버 응답과 반드시 일치해야 하는 고유 번호로 각 작업을 식별한다. 이때 요청은 비동기적으로 처리될 수 있다. SFTP는 사용자가 SSH를 사용하여 서버에 로그인해 추가 포트가 노출되지 않도록 하거나, 추가 인증을 유지하는 경우에만 시작된다.

SFTP 서버는 통신하는 두 주체 모두가 사용자 ID와 비밀번호를 제공하거나, SSH 키(또는 둘 다)를 확인하여 자신을 인증하도록 요구한다. SSH 키의 절반은 두 클라이언트의 컴퓨터에 저장되고, 나머지 절반은 서버에 저장되어 해당 계정(public key)과 연결된다. SSH 키 페어가 일치하는 경우에만 인증이 가능하다.

Reference

https://nhj12311.tistory.com/76
https://www.techopedia.com/definition/1879/secure-file-transfer-protocol-sftp
https://ko.wikipedia.org/wiki/%EC%A4%91%EA%B0%84%EC%9E%90_%EA%B3%B5%EA%B2%A9

 

댓글