-
SSH(Secure Shell)EDI 관련 기술 용어 2022. 3. 31. 11:30
지난번 SFTP 포스팅에서 FTP에 SSH가 추가된 것이라고 했었는데요.
(SFTP가 기억이 안나거나 모르겠다면, 여기서 확인하세요↓)
오늘은 SSH가 뭔지 알아보도록 하겠습니다.
SSH
SSH는 Secure Shell(시큐어셀)로 네트워크 보안 도구 중 하나로 다른 컴퓨터에 로그인하거나 원격 접속을 안전하게 할 수 있게 해주는 보안 프로토콜입니다.
여기서 Shell(쉘)은 운영체제 상에서 다양한 운영 체제 기능과 서비스를 구현하는 명령어와 프로그램을 사용할 때 쓰는 인터페이스입니다.
사용자로부터 명령을 받아 그것을 해석하고 실행하는 역할입니다.
인터넷상에서 두 호스트 사이의 통신 암호화 관련 인증 기술들을 사용하여, 안전한 접속과 통신을 제공합니다.
기존의 rsh(원격 명령 실행), rlogin(원격 로그인), telnet(원격 접속 서비스) 등을 대체하기 위해 설계되었으며, 22번 포트를 사용합니다.
SSH는 암호화 기법을 사용하기 때문에, 이해할 수 없는 암호화된 문자로 보입니다.
SSH 주요 기능
1. 보안 접속을 통한 rsh, rcp, rexec, telnet, ftp 등을 제공합니다.
2. ip 스푸핑(아이피 위/변조 기법)을 방지하기 위한 기능을 제공합니다.
3. X11 패킷 포워딩 및 일반적인 TCP/IP 패킷 포워딩을 제공합니다.
SSH에 사용되는 암호화 알고리즘은 유럽에서 개발되었기 때문에, 미국의 수출 제한에도 걸리지 않습니다.
작동 원리
- 비대칭키 방식
1. 접속하려는 서버가 올바른 서버인지 검증하고, 이후의 데이터 통신을 안전하게 진행하기 위한 세션 키를 생성합니다.
2. 클라이언트가 해당 서버에 대한 올바른 접근 권한을 가지고 있는지 검증하는 과정을 거칩니다.
3. 사용자(클라이언트)와 서버(호스트)가 각각의 키(key)를 보유하며 이 키를 통해 연결 상대를 인증하고 안전하게 데이터를 송수신하게 됩니다.
- 대칭키 방식
여기서는 비대칭키 방식과 달리 한 개의 키만을 사용합니다.
따라서 키를 보유한 모든 사람이 메시지를 암호화하고 해독할 수 있습니다.
1. 사용자 또는 서버는 하나의 대칭키를 만들어 서로 공유합니다.
2. 공유된 대칭키를 이용해 정보를 암호화하면, 받은 쪽에서 동일한 대칭 키로 암호를 풉니다.
3. 정보 교환이 완료되면 교환 당시 썼던 대칭 키는 폐기되고, 다시 접속할 때마다 새로운 대칭 키를 생성하여 사용합니다.
(암호화와 복호화, 대칭키와 비대칭키에 대한 포스팅은 여기서 자세히 알아보세요↓)
SSH 특징
- 암호화된 패킷 전송
SSH에서는 기본적으로 패킷을 포함한 전송하는 모든 트래픽을 암호화해서 전송합니다.
이는 도청이나 세션 하이재킹, 패킷스니핑 등 보안 공격을 방지하는 데 효과적이라서 보안성이 뛰어나다는 평을 받습니다.
- 클라이언트 서버 관계 존재
SSH를 사용할 때 두 패키지(SSH-서버, SSH-클라이언트) 사이에 TCP라는 보안 채널을 별도로 생성합니다.
이 보안 채널을 통해 서로를 인증한 뒤, 서버가 클라이언트를 인증할 수 있도록 여러 프로그램을 호출합니다.
보안 채널이 형성되고 나면 클라이언트에서는 여러 개의 세션을 사용할 수 있다.
- SFTP 지원
연결된 두 시스템 간의 안전한 파일전송을 위해서 SFTP(secure file transfer protocol) 기능을 지원합니다.
서버에 접속할 계정과 해당 파일의 위치만 알고 있다면 SFTP를 이용해서 서버에 있는 파일을 가져와 사용할 수 있습니다.
- 패스워드 없이 로그인 가능
초기에 서버와 클라이언트는 계정명과 IP주소를 입력한 뒤 비밀번호를 요구합니다.
이후 원격접속을 시도할 때는 별도의 비밀번호 없이 바로 로그인할 수도 있습니다.
- SCP 기능 지원
서버와 클라이언트 사이에 로그인하지 않고도 SCP(secure copy)를 이용해 원격으로 파일을 복사할 수 있는 기능이 있습니다.
SSH Handshake
핸드셰이크는 SSH 접속을 위한 준비 과정으로, 클라이언트가 올바른 서버와 통신하고 있는지 확인할 수 있도록 합니다.
SFTP 연결에는 두 개의 계층이 있습니다.
전송 계층은 암호화 알고리즘을 설정하고 클라이언트와 서버 간의 보안 연결을 만드는 데 사용됩니다.
인증 계층은 클라이언트가 서버에 연결할 수 있는지 여부를 결정하는 데 사용됩니다.
[참고 자료]
'EDI 관련 기술 용어' 카테고리의 다른 글
FTPS와 SFTP 비교하기 (0) 2022.04.29 REST(Representational State Transfer) (0) 2022.04.08 XML(extensible markup language) (0) 2022.03.23 SOAP(Simple Object Access Protocol) (0) 2022.03.18 FTP, FTPS, SFTP (0) 2022.03.05