-
SSH(Secure Shell) 란 무엇인가?2020 웹 개발자 로드맵/공통 2020. 6. 20. 21:57
위키백과에는
네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고
다른 시스템으로 파일을 복사할 수 있도록 해주는 응용 프로그램 또는 그 프로토콜이라고 서술되어 있다.
또, 아래 홈페이지에 정리된 내용이 있어 번역하여 첨부하도록 하겠습니다. 오역이 있을 수 있습니다.
https://www.ssh.com/ssh/protocol/
SSH프로토콜(Secure Shell)은 한 컴퓨터에서 다른 컴퓨터로 보안성 있는 원격 로그인을 위한 방법입니다.
강력한 인증을 위한 몇가지 대체 옵션을 제공하며 강력한 암호화를 통해 통신 보안 및 무결성을 보호합니다.
(Telnet, Rlogin) 등의 보호되지 않는 로그인 프로토콜과 안전하지 않은 파일 전송 방법(예 : FTP)에 대한 보안성 있는 대안입니다.
목차
SSH 프로토콜의 일반적인 사용 SSH 프로토콜의 작동 방식 SSH 키를 통한 강력한 인증 SSH의 강력한 암호화 및 무결성 보호 기능 IETFSSH표준 및 자세한 기술 문서 핵심 프로토콜 SFTP파일 전송 프로토콜 공개 키 파일 형식 SSH를 사용하는 방법
1. SSH 프로토콜의 일반적인 사용
SSH 프로토콜은 다음과 같은 용도로 사용됩니다
- 사용자 및 자동화 된 프로세스에 대한 안전한 엑세스 제공
- 인터렉티브(대화형?) 하거나 자동화된 파일 전송
- 원격 명령 실행
- 네트워크 인프라 및 기타 미션 크리티컬한 시스템의 구성요소 관리
2. SSH 프로토콜의 작동 방식
프로토콜은 클라이언트-서버 모델에서 작동하며, 이는 SSH 서버에 연결되는 SSH 클라이언트에 의해 연결이 설정됨을 의미합니다. SSH 클라이언트는 연결 설정 프로세스를 구동하고 공용 키 암호화를 사용하여 SSH서버의 ID를 확인합니다. 설정 단계 후 SSH프로토콜은 강력한 대칭 암호화 및 해싱 알고리즘을 사용하여 클라이언트와 서버 간에 교환되는 데이터의 개인 정보 보호 및 무결성을 보장합니다.
아래의 그림은 SSH 프로토콜의 단순화된 setup flow를 나타낸다.
3. SSH 키를 통한 강력한 인증
사용자 인증에 사용할 수 있는 몇가지 옵션들이 있습니다. 가장 일반적인 것은 비밀번호와 public key(공용 키) 인증입니다.
공용 키 인증 방법은 주로 자동화에 사용되며 때로는 시스템 관리자가 Single Sign-on (SSO)
에 사용하기도 합니다. SSH는 우리가 생각하는 것보다 훨씬 더 널리 사용된다. 이 아이디어는 public-key 와 private -key 쌍을 가지고 있고, 서버에서 개인 키 엑세스 권한을 가진 모든 사용자에게 서버에 대한 엑세스 권한을 부여하고 권한을 부여하도록 공용 키를 구성하는 것입니다(?). 인증에 사용되는 키를 SSH키 라고 합니다. 공개 키 인증은 미국 정부에서 사용하는 CAC및 PIV카드와 같은 스마트 카드에서도 사용됩니다.
키 기반 인증의 주된 용도는 보안 자동화를 사용하는 것입니다. 자동화된 보안 Shell 파일 전송은 애플리케이션을 원활하게 통합하고 자동화된 시스템 및 구성 관리를 위해 사용됩니다.
상상하는 것보다 훨씬 많은 단체들이 SSH키를 가지고 있으며 SSH키 관리가 매우 중요해 졌습니다. SSH키는 사용자 이름 및 암호와 마찬가지로 액세스 권한을 부여합니다. 따라서 유사한 권한 설정 및 종료 프로세스가 필요합니다.
4. SSH의 강력한 암호화 기능과 무결성 보호 기능
SSH 클라이언트와 서버 사이에 연결이 설정되면, 전송되는 데이터는 설정된 파라미터에 따라서 암호화된다.
설정에 의해 클라이언트와 서버는 사용할 대칭 암호화 알고리즘에 동의하고 사용할 암호화 키를 생성한다.
통신 당사자 간의 트래픽은 업계 표준의 강력한 암호화 알고리즘(AES, Advanced Encryption Standard)으로 보호되며, SSH 프로토콜도 표준 해시 알고리즘(SHA-2, Standard Hashing Algorithm)을 사용하여 전송 데이터의 무결성을 보장하는 매커니즘을 포함한다.
5. IETFSSH표준 및 자세한 기술 문서
-
핵심 프로토콜
-
SSH프로토콜이 대중화되었을 때, Tatu는 표준화를 위한 IETF 로 프로토콜을 가져갔다. 이 표준은 이제 다음 문서에 설명되어 있는 내용은 다음과 같습니다.
-
-
SFTP 파일 전송 프로토콜
-
SFTP (SSH File Transfer Protocol) 는 오늘날 가장 널리 사용되는 보안 파일 전송 프로토콜입니다. SSH를 통해 실행되며 현재 draft-client-secssh-filexfer-02 에 문서화되어 있습니다.
-
-
공개 키 파일 형식
-
공용 키 파일 형식은 공식 표준(정보 문서)이 아니지만 많은 구현에서 이 형식을 지원합니다.
- RFC 4716 - The Secure Shell (SSH) Public Key File Format
-
-
SSH를 사용하는 방법
-
연구 논문에서 SSH를 인용하려면 다음을 사용하십시오
-
Tatu Ylonen: SSH - Secure Login Connections over the Internet. Proceedings of the 6th USENIX Security Symposium, pp. 37-42, USENIX, 1996.
요약하자면 git과 같은 파일 전송 과정이나 원격 조종과 같은 분야에서 사용하는 보안 프로토콜이라 할 수 있다.
'2020 웹 개발자 로드맵 > 공통' 카테고리의 다른 글
HTTP/HTTPS에 대하여 (0) 2020.06.22