포스트

SSH vs SSL/TLS — 같은 재료, 다른 조립

둘 다 공개키+대칭키로 안전한 채널을 만들지만, SSH는 원격 접속까지 통합한 완결형 L7 프로토콜이고 TLS는 어떤 앱이든 감싸는 범용 보안 계층이다. 'SSH가 SSL 기반이냐'는 흔한 오해를 계층 구조로 정리한다.

SSH vs SSL/TLS — 같은 재료, 다른 조립

“SSH도 SSL 기반으로 도는 거 아냐?”라는 질문을 자주 본다. 답은 아니다 — 둘은 서로 독립적으로 개발된 별개의 프로토콜이다. 비슷해 보이는 건 같은 암호 재료를 쓰기 때문이지, 한쪽이 다른 쪽 위에 세워진 게 아니다.

한 줄 차이

  • SSH (Secure Shell) — 원격 서버에 접속해 명령을 실행하기 위한 프로토콜. 서버 관리, 원격 로그인, 파일 전송(SCP/SFTP), 포트 포워딩. 기본 22번 포트.
  • SSL/TLS — 클라이언트-서버 간 데이터 전송을 암호화하는 범용 보안 계층. HTTPS, 메일(SMTPS/IMAPS), DB 연결 등이 그 위에 얹힌다. (SSL은 취약점으로 폐기됐고 지금은 TLS가 표준.)

비유하면 TLS는 “어떤 짐이든 담는 표준 보안 컨테이너”, SSH는 “컨테이너 기능까지 내장한 전용 운송 시스템”이다.

계층 구조 — 여기서 갈린다

둘 다 TCP 위에서 돌지만 계층상 위치가 다르다.

TLS는 TCP와 응용 사이에 끼는 “중간 보안 계층”이다. 그래서 보안 교과서는 종종 세션(L5)~표현(L6) 사이라고 설명한다. HTTP·SMTP·FTP 같은 상위 프로토콜이 그대로 TLS 위에 얹힌다(HTTP → HTTPS). 응용 프로토콜과 독립적이라 무엇이든 그 아래에 끼워 넣을 수 있다.

1
2
3
4
[Application: HTTP, SMTP ...]
[TLS]           ← 응용과 독립된 범용 암호화 계층
[TCP]
[IP]

SSH는 완전히 응용 계층(L7) 프로토콜이지만, 내부에 자체 계층 구조를 갖는다.

1
2
3
4
5
[SSH Connection Layer]      ← 채널 다중화 (셸, 포트포워딩 등)
[SSH Authentication Layer]  ← 사용자 인증
[SSH Transport Layer]       ← 암호화·무결성·서버 인증 (SSH가 자체 정의)
[TCP]
[IP]

여기서 “SSH Transport Layer”는 OSI의 전송 계층(L4)이 아니라 SSH가 자체 정의한 내부 계층이라는 점이 헷갈리기 쉽다. 이름만 같을 뿐이다.

핵심: TLS는 응용과 분리된 범용 래퍼라 여러 프로토콜이 공유해 쓰고, SSH는 암호화·인증·채널 관리까지 하나의 완결된 응용 프로토콜에 묶여 있다.

“SSH는 SSL 기반이 아니다”

SSH는 TCP 위에서 곧바로 자기만의 핸드셰이크·키 교환·암호화(SSH Transport Layer Protocol)를 수행한다. 중간에 TLS가 끼지 않는다.

1
2
SSH:    [SSH 자체 암호화] → [TCP] → [IP]
HTTPS:  [HTTP] → [TLS] → [TCP] → [IP]

비슷해 보이는 건 같은 암호학적 재료를 공유하기 때문이다.

  • 키 교환: Diffie-Hellman / ECDH
  • 대칭 암호: AES
  • 무결성: HMAC
  • 서버·사용자 인증: RSA · ECDSA · Ed25519

같은 재료를 쓰지만 조립 방식(프로토콜)은 완전히 다르다. 역사적으로도 SSH(1995)와 SSL(1995)은 비슷한 시기에 서로 다른 주체가 각각 만든 것이고, 어느 한쪽이 다른 쪽 위에 세워진 관계가 아니다.

인증 방향의 차이

구분SSHSSL/TLS
목적원격 접속·명령 실행통신 채널 암호화
인증 축주로 사용자(키/비밀번호)주로 서버(CA 발급 인증서)
신뢰 근거자체 키 쌍(TOFU·known_hosts)CA 체인
사용 예서버 접속, SFTPHTTPS, DB 연결, 메일

SSH는 “내가 이 서버에 들어가 작업한다”라 사용자 인증이 중심이고 서버는 known_hosts로 처음 본 키를 신뢰(TOFU)한다. TLS는 “이 서버가 진짜 그 서버냐”라 CA가 보증한 서버 인증서가 중심이다.

정리

  • SSH ⟂ SSL/TLS — 독립 프로토콜. SSH는 SSL 위에서 돌지 않는다.
  • TLS = TCP와 응용 사이의 범용 보안 계층(여러 앱이 공유), SSH = 원격 접속까지 통합한 완결형 L7 프로토콜.
  • 같은 공개키+대칭키 재료를 쓰지만 조립이 다르다. 그래서 원리는 닮았어도 서로 대체재가 아니다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.