프로토콜 2

김윤성·2026년 1월 26일

정보보안 공부

목록 보기
5/14

1️⃣SSH와 Telnet (원격접속)

1.1 Telnet과 SSH는 언제 사용하는가

  • Telnet과 SSH는 기본적으로 네트워크상의 원격 호스트(서버)에 접속해 명령을 실행하거나 데이터를 송수신하기 위한 응용 계층 프로토콜이다.
  • 목적은 같지만 보안성 차이가 매우 크다.
  • Telnet
    • 과거(1969년부터) 원격접속에 널리 사용됨
    • 현대에는 교육용 또는 보안이 확보된 폐쇄망 정도를 제외하면 사용하지 않는 편
  • SSH
    • 오늘날 원격 접속의 사실상 표준에 가까움
    • 클라우드 서버 제어, 보안을 요구하는 네트워크 환경에서 주로 사용
  • (경험) EC2 서버 운영, VirtualBox로 리눅스 학습 환경에서 사용해본 적이 있다.

1.2 Telnet (TELe-type NETwork)

Telnet이란

  • TCP/IP 기반 프로토콜로, 원격 호스트에 접속해 명령을 실행하고 데이터를 주고받는 텍스트 기반 원격 접근 프로토콜
  • 배경: 1969년부터 존재한 오래된 프로토콜로, 당시에는 네트워크가 안전하다는 전제 하에 설계됨
  • 기본 포트: TCP 23번

Telnet 특징

  • 장점: 설정이 간단하고 연결이 빠름
  • 단점(핵심): 평문 전송
    • 평문(Plaintext) 전송: 계정/비밀번호/명령까지 암호화 없이 전달
      • MITM(중간자 공격) 위험: 내용 탈취 + 명령 변조 가능
    • 스니핑 노출: 패킷 분석 도구로 민감 정보 탈취 가능
    • 서버 신원 미확인: 가짜 서버 접속 위험
    • Brute Force(무차별 대입 공격) 취약: 접속 시도 제한이 약한 경우 반복 대입 공격에 취약
    • 무결성 결여: 전송 중 데이터 변조 확인 메커니즘이 기본적으로 없음

1.3 SSH (Secure Shell)

SSH란

  • 네트워크상의 컴퓨터와 통신하기 위한 안전한 환경을 제공하는 원격 로그인 및 명령 실행 프로토콜
  • 배경: Telnet의 암호화 부재(치명적 보안 취약점)를 해결하기 위해 개발됨
  • 기본 포트: TCP 22번
    • 실무에서는 보안 강화를 위해 포트 변경을 하기도 함

SSH 통신 과정

  1. 접속 요청: 클라이언트가 서버 22번 포트로 접속
  2. 서버 신원 확인: 서버가 정당한 서버인지 검증(지문/Fingerprint 확인 등)
  3. 인증: 계정/비밀번호 또는 공개키 인증
  4. 암호화 세션 설정: 암호화된 통신 세션 구성
  5. 명령 실행 및 파일 전송: 안전하게 명령 실행/파일 전송
  6. 종료: 작업 종료 후 안전하게 연결 해제

SSH 특징

  • 강력한 암호화: 연결 설정부터 데이터 전송까지 암호화하여 패킷을 가로채도 내용을 알 수 없다.
  • 데이터 무결성: 전송 중 공격자가 명령어나 데이터를 변조하는 것을 방지하는 검사 기능을 포함한다.
  • 서버 검증: 처음 서버에 접속할 때 서버의 지문(Fingerprint)을 확인시켜 가짜 서버로 인한 정보 탈취를 막는다.
  • 방어 도구 활용: Brute Force 방지를 위해 fail2ban 같은 도구를 병행할 수 있다.
  • 확장성: 터널링을 통해 다른 통신을 SSH 연결 안에 포함 가능하다. SCP(Secure Copy)나 SFTP(Secure FTP) 같은 확장도 가능하다.

SSH 보안 핵심

a. 대칭키

  • 클라이언트와 서버가 같은 키로 데이터를 암호화/복호화하는 방식
  • 실제 데이터를 주고받는 과정에서 많이 사용하며, 암호화/복호화가 비교적 단순해 빠르다는 장점이 있다.

b. 비대칭키(공개키/개인키)

  • 공개키/개인키 한 쌍으로 동작하며, 복호화는 개인키로만 가능하다.
  • 대칭키에 비해 암호화/복호화 과정이 복잡해 안전하지만 속도가 느리다.
  • 실제로는 비대칭키로 서로 인증을 하고, 대칭키를 주고받아 데이터를 주고받는 혼합 형식이 많이 사용된다.

c. 무결성

  • 전송 중 데이터나 명령이 변조되지 않았는지 확인하는 성격의 기능
  • 정보보안의 3대 요소 중 하나이다.

2️⃣HTTP와 HTTPS(웹)

2.1 HTTP와 HTTPS란

  • HTTP는 웹에서 클라이언트(브라우저)와 서버가 요청/응답으로 데이터를 주고받는 프로토콜이며, HTML/CSS/JS 같은 정적 요소뿐 아니라 이미지/동영상/음성 파일 등 다양한 데이터를 전송한다.
  • HTTPS는 HTTP에 보안 프로토콜(SSL/TLS)을 추가해 통신 내용을 암호화한 방식이다.
  • 웹 접속 대부분은 HTTP/HTTPS와 관련이 있고, HTTP는 평문 전송 특성 때문에 개인정보 유출 위험이 커서 HTTPS가 보편화되어 있다.

2.2 HTTP에 대한 이해

HTTP란

  • *HTTP(HyperText Transfer Protocol)**는 웹 브라우저와 웹 서버가 데이터를 주고받는 대표적인 통신 규약이며, http://는 HTTP를 사용한다는 의미이다.
  • 기본적으로 클라이언트–서버 구조이며, 클라이언트가 요청을 보내면 서버가 응답한다.
  • TCP/IP 위에서 동작하며 기본 포트는 80번이다.

HTTP 메시지의 구성

  • HTTP는 요청과 응답이 조금 다른 구성을 가진다.
    • 요청(Request): 요청 정보(메서드, URL, 버전) + 헤더(데이터 형식 같은 메타데이터) + 바디(실제 내용)

    • 응답(Response): 응답 정보(상태코드, 문구, 버전) + 헤더(데이터 형식, 크기 등) + 바디(실제 내용)


HTTP의 특징

  • 다양한 데이터 전송: “하이퍼텍스트”라는 이름이지만 실제로는 텍스트 외에도 이미지, 영상, PDF 등 다양한 확장자의 데이터를 전송할 수 있다.
  • 비연결성: 요청/응답을 주고받으면 연결이 종료된다.
  • 무상태: 이전 요청/상태를 기억하지 않는다.
  • 평문 전송: 암호화 없이 전송되므로 중간에서 패킷을 가로채면 개인정보 노출 위험이 크다.
  • 무상태 보완을 위해 쿠키/세션/토큰이 존재한다.

2.3 HTTPS의 이해

HTTPS란

  • *HTTPS(HyperText Transfer Protocol Secure)**는 HTTP 위에 SSL/TLS를 추가하여 데이터를 암호화하는 방식이며, https://가 붙는다.
  • 기본적으로 443 포트를 사용한다.
  • HTTP와 동일하게 요청/응답 구조를 가지며, 메시지 내용의 틀도 같고 핵심은 암호화로 보안을 강화한다는 점이다.

SSL과 TLS

  • SSL과 TLS는 통신에서 데이터를 암호화하고 신뢰성을 높이는 보안 프로토콜이다.
  • SSL은 TLS의 이전 버전이며, 현재는 TLS를 사용한다.
  • TLS 사용을 위해 TLS 인증서가 필요하며, 인증서는 CA(인증기관)에서 발급한다.
  • TLS 과정(정리된 흐름):
    • 클라이언트가 서버에 접근하면 서버는 인증서(비밀키)를 보여줌
    • 클라이언트(브라우저는) 가지고있는 인증서 리스트(공개키)를 확인해서 맞는지 확인(서버검증)
    • 비대칭키로 신원을 확인, 대칭키 생성해 주고 받음
    • 대칭키로 암호화된 통신을 주고받음

HTTPS(TLS)의 특징

  • 암호화: 데이터를 암호화하여 전송하므로, 중간에 누군가 패킷을 가로채더라도 내용을 읽을 수 없다.
  • 무결성: 데이터가 전송되는 동안 악의적인 제3자에 의해 변조되지 않았음을 보장한다.
  • 신원확인: 접속한 서버가 신뢰할 수 있는 진짜 서버인지 인증서를 통해 확인하여 피싱 등의 공격을 방지한다.

확장

  • HSTS(HTTP Strict Transport Security): 웹사이트가 브라우저에 연결할 때 항상 HTTPS를 사용하라고 강제하는 보안 정책
  • SSL 스트리핑: 공격자가 사용자와 서버 사이의 HTTPS 연결을 HTTP로 낮추는 공격(SSL을 “빼는” 개념)
  • HTTPS로 접속한다고 다 신뢰할 수 있는 것은 아니다
    • “암호화된 연결”과 “사이트 자체의 신뢰”는 별개일 수 있다.

    • 문제가 있는 사이트도 CA 인증서를 받으면 HTTPS로 통신할 수 있고, 사이트 안에서 다운로드나 별도의 행위를 하는 과정에서 공격이 일어날 수 있다.


      3️⃣ DNS(Domain Name System)

      3.1 DNS란

    • 정의: DNS는 도메인을 IP로 또는 그 반대로 바꿔주는 역할을 하는 시스템이고, DNS 프로토콜은 그 과정에서 메시지를 주고받는 규칙이다.

    • 포트 번호:

      • 일반적으로는 UDP 53번 포트를 사용해서 통신한다.
      • 특수한 상황에서는 TCP 53번을 사용하기도 한다(담기는 내용이 너무 클 때, 정책상 TCP로 제한되어 있을 때 등).
    • 구조: DNS는 질의(Query) – 응답(Response) 구조로 메시지를 교환한다.


      3.2 DNS의 계층 구조

    • DNS는 전 세계에 거대한 트리 구조로 분산된 계층 구조다.

    • 한 곳에 많은 정보가 있으면 과부하가 걸릴 수 있어 계층을 나눠서 관리한다.

    • 루트 네임 서버(Root Name Server): DNS 계층 구조의 최상단에 위치하며, TLD 네임 서버의 주소를 안내하는 역할

    • TLD(최상위 도메인) 서버: .com, .net, .kr 등 도메인의 마지막 부분을 관리하며, 해당 도메인에 대한 책임 네임 서버 정보 제공

    • 책임 네임 서버(Authoritative Name Server): 특정 도메인에 대해 최종 권한을 가진 서버로, 실제 IP 주소를 확정하여 응답

    • 로컬 네임 서버(Local DNS): 사용자가 가장 먼저 접속하는 서버(통신사 서버 등)로, 이전 질의 결과를 캐싱하여 빠른 응답을 돕는다.


      3.3 DNS 동작 흐름

    1. 브라우저에 www.google을 입력하면

    2. 우선 컴퓨터 안에 IP가 있는지 확인한다.

    3. 로컬 DNS 서버에 질의를 한다(보통 통신사 DNS).

    4. 로컬 DNS 서버가 루트 네임 서버 → TLD 네임 서버 → 책임 네임 서버 순으로 질의를 해서 IP를 찾는다.

    5. 로컬 DNS 서버가 결과를 브라우저에 전달한다.

      3.4 캐시와 TTL

    • 캐시는 DNS가 같은 이름을 반복 조회하는 일이 많아서 결과를 잠깐 저장(캐싱)해 두고 다음엔 더 빨리 답하게 만드는 것이다.

    • 캐시는 보통 로컬 DNS에 가장 크게 존재하고, 환경에 따라 브라우저나 OS에도 저장될 수 있다.

    • TTL(Time To Live)은 DNS 레코드가 캐시에 얼마나 남아도 되는지를 나타내는 값이다.


      3.5 로컬 DNS와 공개 DNS

      구분로컬 DNS (Local DNS)공개 DNS (Public DNS)
      운영 주체사용자가 가입한 통신사(ISP) (예: KT, SKB, LG U+)글로벌 IT 기업 (예: Google, Cloudflare)
      설정 방식인터넷 연결 시 자동으로 할당되어 편리함사용자가 PC나 공유기에서 수동으로 주소 입력 필요
      주요 목적해당 통신망 사용자의 빠른 질의 응답 및 트래픽 관리속도 향상, 보안 강화, 개인정보 보호
      개인정보통신사가 사용자의 방문 기록을 관리할 수 있음업체에 따라 No-Log 정책(기록 미저장)을 제공하기도 함
      보안성기본적인 수준의 보안 제공DNSSEC 등 최신 보안 기술 지원 및 변조 방지에 강력함
      대표 예시각 통신사별 기본 할당 서버Google (8.8.8.8), Cloudflare (1.1.1.1)

3.6 DNS와 보안

  • DNS 스푸핑(Spoofing): 공격자가 가짜 응답을 보내 사용자를 피싱 사이트나 악성 사이트로 유도
  • 캐시 포이즈닝(Cache Poisoning): DNS 서버의 캐시 정보를 조작하여 일정 시간(TTL) 동안 해당 서버를 이용하는 모든 사용자에게 잘못된 주소를 전달
  • DNSSEC: DNS 응답에 디지털 서명을 추가하여 데이터가 위조되지 않았음을 증명하는 기술
  • DNS 싱크홀(Sinkhole): 악성 도메인 요청을 정상 서버가 아닌 특정 싱크홀 서버로 리디렉션하여 악성봇 통신을 차단
  • VPN(가상 사설망) 사용: VPN은 네트워크 트래픽 전체를 암호화하여 전송하는 기술로 DNS 요청 내용이 외부에 노출되는 것을 방지하고 감청 자체를 어렵게 만든다.
profile
꾸준한 IT 공부

0개의 댓글