원격 터미널 프로토콜
Telnet (Telecommunications and Networks)
Telnet은 인터넷 초창기인 1969년에 개발된 원격 터미널 접속 프로토콜이다.

동작 방식
- 클라이언트가 서버에 TCP 연결(23번 port)을 요청한다.
- 이를 서버가 수락하면 양방향 text 기반의 세션이 시작된다.
- 이 세션 동안 데이터와 명령어는 모두 평문으로 교환된다.
네트워크 가상 터미널 (NVT)
서로 다른 운영체제와 터미널 환경을 가진 시스템 간의 원활한 통신을 위해 가상 장치 역할을 한다.
치명적인 약점 : 평문 전달
가장 큰 단점은 보안 취약성이다. 모든 통신 내용, 특히 사용자 ID와 비밀번호가 암호화되지 않고 평문으로 전송되어, 스니핑(sniffing) 공격에 노출되기 쉽다. 이 때문에 현대 네트워크에서는 거의 사용되지 않는다.
SSH (Secure SHell)
SSH는 Telnet의 보안 문제를 해결하기 위해 개발된 프로토콜이다. 현재 대부분의 서버 원격 관리에 사용되는 표준이다.

동작 방식
- 연결 형성 : SSH 클라이언트가 서버에 연결(22번 port)을 요청하고, 암호화된 채널을 형성한다.
- 인증 과정 : SSH 클라이언트는 공개키, 비밀번호 등 다양한 방법으로 인증을 수행할 수 있다.
- 암호화된 통신 : 모든 명령어와 파일 전송이 암호화되어 진행된다.
주요 기능
- 암호화 : 통신 내용 전체를 암호화하여 도청, 데이터 변조 등을 방지한다.
- 공개키 인증 : 비밀번호를 사용하지 않고 공개키/비밀키 쌍을 이용한 인증방식을 지원하여 보안성을 높인다.
- 포트 포워딩 : 암호화되지 않은 다른 프로토콜의 트래픽을 SSH 터널을 통해 안전하게 전달한다.
주요 차이점
| 구분 | Telnet | SSH |
| 보안 | 평문 통신으로 매우 취약 | 모든 데이터 암호화로 매우 안전 |
| 기능 | 단순 원격 터미널 접속 | 원격 접속, 파일 전송, 터널링 등 다양 |
| 포트 번호 | 23번 | 22번 |
| 대체 | 보안 문제로 인해 Telnet은 대부분의 환경에서 SSH로 대체됐다. | |
애플리케이션 프로토콜
HTTP와 HTTPS는 웹 상에서 데이터를 주고받는 데 필수적인 애플리케이션 계층(L7) 프로토콜이다.
HTTP가 웹 통신의 기본 구조를 정의한다면, HTTPS는 여기에 TLS/SSL을 통한 보안을 추가하여 통신한다.

HTTP (Hyper Text Transfer Protocol)
HTTP는 웹 브라우저가 웹 서버에 데이터를 요청하고 응답받는 클라이언트-서버 모델을 기반으로 한다.
특징
| 구분 | 설명 |
| Stateless (무상태) | 각 요청을 독립적으로 처리하며, 서버는 이전 요청 정보를 기억하지 않는다. 세션 유지를 위해 쿠키나 세션 토큰이 필요하다. |
| Connectionless | 요청이 발생할 때마다 새로운 TCP 연결을 설정하고, 응답이 완료되면 연결을 즉시 종료한다. 현대의 HTTP/1.1 이상에서는 지속 연결(Persistent Connection)을 지원하여 효율성을 개선했다. |
| Flexible | HTML 외에도 이미지, 비디오 JSON 데이터 등 다양한 형태의 데이터 전송이 가능하다. |
HTTPS (Hyper Text Transfer Protocol Secure)
HTTPS는 HTTP 통신 전체를 TLS/SSL (Transport Layer Security / Secure Sockets Layer) 위에 올려 암호화 계층을 추가한 프로토콜이다.
특징
| 구분 | 설명 |
| Encryption (암호화) | 클라이언트와 서버 간의 모든 데이터를 암호화하여 기밀성을 보장하고 도청을 방지한다. |
| Authentication (인증) | 서버가 디지털 인증서를 제시하여 자신의 신원을 증명한다. 이는 사용자가 진짜 웹사이트와 통신하고 있음을 보장하여 중간자 공격을 방지한다. |
| Data Integrity | 전송 중 데이터가 변조되었는지 확인하는 기능을 제공한다. 이터가 수신자에게 훼손 없이 도달했음을 보장한다. |
동작 방식 : SSL/TLS Handshake
- SSL/TLS Handshake :
- HTTPS 연결이 시작될 때, 서버와 클라이언트 간 SSL/TLS handshaking이 수행된다.
- Certificate & Key Exchance
- 서버는 자신의 인증서를 클라이언트에게 제공하고, 양측은 암호화된 session을 설정하기 위해 키를 교환한다.
- Secure Communication
- Handshaking이 완료되면, 데이터의 전송과 수신은 암호화되어 처리된다.
- 이는 데이터의 기밀성과 무결성을 보장한다.
- Session Termination
- 통신이 종료되면 양측은 session을 안전하게 종료하고, 사용된 암호화 키는 폐기된다.
DNS (Domain Name Server)
DNS는 웹 통신의 기본이며, 도메인 이름 (ex. www.example.com)을 IP 주소 (ex. 192.168.1.1)로 변환한다.
분산된 구조와 캐싱 기능을 통해 인터넷의 효율성을 보장한다.

동작 방식
- 사용자 요청 : 사용자가 웹 브라우저에 URL을 입력한다.
- 로컬 DNS 서버 조회 : 사용자 디바이스는 설정된 로컬 DNS 서버에 도메인 이름을 조회/요청한다.
- 재귀적/반복적 조회 : 로컬 DNS 서버에 정보가 없으면, 다음의 계층적 조회를 시작한다.
- Root 서버에 질의
- TLD 서버(ex. .com, .net etc.)에 질의
- IP 주소 반환 : 최종 IP 주소를 확인하면, 이 정보는 로컬 DNS 서버를 거쳐 사용자 장치에 반환되고 웹사이트 접속이 이루어진다.
특징
- 분산형 구조
- DNS는 전세계에 분산된 서버 네트워크로 운영된다.
- 단일 장애 지점(Single Point of Failure)이 없으며, 견고함과 확장성을 보장한다.
- 캐싱 (Caching)
- DNS 정보는 일정 시간(TTL) 동안 로컬 서버나 사용자 PC에 임시 저장된다.
- 이는 반복적인 조회 시간을 단축하고, 네트워크 트래픽을 줄인다.
- 확장성
- 새로운 도메인과 IP 주소가 지속적으로 추가되어도 시스템 전체가 유연하게 이를 수용하고 관리할 수 있다.
참고 출처
- Difference between SSH and Telnet
- What is SSH, and how do I use it?
'리팩토링 > 1. 네트워킹' 카테고리의 다른 글
| 리팩토링 5주차. OSI 계층별 프로토콜 특징 (1) (1) | 2024.07.15 |
|---|---|
| 리팩토링 4주차. OSI 계층별 네트워크 장비 특징 (2) | 2024.07.02 |
| 리팩토링 3주차. TCP와 UDP의 특징과 차이점 (1) | 2024.06.18 |
| 리팩토링 2주차. OSI 7계층 (1) | 2024.06.10 |
| 리팩토링 1주차. 제로 트러스트(Zero Trust)에 대해 (1) | 2024.06.03 |