병호의 IT새싹키우기
SSH(Secure Shell) 란? 본문
💡 SSH란?
SSH란 Secure Shell Protocol, 즉 네트워크 프로토콜 중 하나로 컴퓨터와 컴퓨터가 인터넷과 같은 Public Network를 통해 서로 통신을 할 때 보안적으로 안전하게 통신을 하기 위해 사용하는 프로토콜입니다.
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로 프로토콜을 가져갔다. 이 표준은 이제 다음 문서에 설명되어 있는 내용은 다음과 같습니다.
- RFC 4251 - The Secure Shell (SSH) Protocol Architecture RFC 4253 - The Secure Shell (SSH) Transport Layer Protocol RFC 4252 - The Secure Shell (SSH) Authentication Protocol RFC 4254 - The Secure Shell (SSH) Connection Protocol
- 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과 같은 파일 전송 과정이나 원격 조종과 같은 분야에서 사용하는 보안 프로토콜이라 할 수 있다.
'기타' 카테고리의 다른 글
DB접근제어(Database Access Control) 란? (2) | 2025.02.11 |
---|---|
서버접근제어란? (0) | 2025.02.11 |
IPv4 와 IPv6의 차이 (0) | 2025.02.10 |
DBMS 가 나누어진 이유 (0) | 2025.02.10 |
솔루션이란? (0) | 2025.02.04 |