[네트워크] HTTP와 HTTPS, 암호화

임유진·2025년 8월 20일

클라우드/인프라

목록 보기
25/25

HTTP와 HTTPS

구분HTTPHTTPS
풀네임HyperText Transfer ProtocolHyperText Transfer Protocol Secure
포트기본 80기본 443
암호화없음 (평문 전송)TLS(SSL) 기반 암호화
보안성취약 (도청·위조·변조 가능)안전 (기밀성·무결성·인증 보장)
인증없음서버 인증서(SSL/TLS)로 신뢰 확보
사용 예과거 대부분 웹사이트현재는 거의 모든 웹사이트 (특히 로그인·결제 필수)

HTTP 사용 시 보안 위험

보안 위험설명방지법
스니핑 (Sniffing)평문으로 전송된 데이터를 네트워크 중간에서 엿봄 (아이디, 비밀번호, 카드번호 노출)- HTTPS/TLS 암호화 사용
- VPN 사용(공용망)
- 와이파이 WPA3 같은 안전한 무선 보안 적용
중간자 공격 (MITM, Man-in-the-Middle)공격자가 요청/응답을 가로채서 변조 (결제 금액 조작, 악성 코드 삽입)- HTTPS 적용 + HSTS 정책으로 강제 HTTPS
- 인증서 유효성 검사(만료/위조 확인)
- 공용 와이파이에서 VPN 사용
ARP 스푸핑공격자가 로컬 네트워크에서 라우터로 위장해 트래픽 탈취- 스위치에서 DHCP Snooping, Dynamic ARP Inspection(DAI) 적용
- VPN 사용
- 내부망은 ARP 보안 장치 도입
세션 하이재킹 (Session Hijacking)HTTP 쿠키(세션 ID)가 평문으로 전송 → 탈취 후 사용자 위장- HTTPS 사용(쿠키 암호화 전송)
- 쿠키에 Secure, HttpOnly, SameSite 옵션 적용
- 세션 만료 시간 짧게 설정
DNS 스푸핑공격자가 DNS 응답을 위조해 가짜 사이트로 유도- DNSSEC 사용
- DoH(HTTPS 기반 DNS), DoT(TLS 기반 DNS) 활용
- 브라우저/OS 보안 업데이트 유지

cf. 대표적인 보안 공격 기법

공격 기법설명예시
XSS (Cross-Site Scripting)악성 스크립트를 주입해 사용자의 브라우저에서 실행게시판 댓글에 <script>alert('해킹')</script> 삽입
SQL Injection입력값 검증 부족으로 DB 쿼리 조작id=1 OR 1=1 로 로그인 우회
CSRF (Cross-Site Request Forgery)사용자의 인증 정보를 악용해 의도치 않은 요청 실행로그인 중인 사용자가 공격자 링크 클릭 → 강제 송금
MITM (Man-in-the-Middle)클라–서버 사이에 끼어들어 트래픽 가로채기공용 와이파이에서 패킷 변조
세션 하이재킹세션 쿠키를 탈취해 사용자를 위장HTTP 쿠키 도청
브루트포스 공격비밀번호를 무작위 대입으로 시도짧은/단순 비밀번호 빠르게 뚫림
피싱(Phishing)가짜 웹사이트로 유도해 민감 정보 입력 유도은행 로그인 페이지 사칭



암호화

용어

용어의미
평문 (Plaintext)사람이 이해할 수 있는 원본 데이터 (예: password123)
암호문 (Ciphertext)암호화 알고리즘과 키로 변환된 읽을 수 없는 데이터
키 (Key)암호화·복호화 과정에서 사용하는 비밀 값
암호화 (Encryption)평문 → 암호문 변환
복호화 (Decryption)암호문 → 평문 복원

암호화 방식

  1. 단방향 암호화 (해시 함수)

    • 특징: 평문 → 암호문만 가능, 복호화 불가

    • 대표 알고리즘: MD5(취약), SHA-1(취약), SHA-256, bcrypt, scrypt

    • 용도: 비밀번호 저장, 무결성 체크(파일 해시)

    • ex)

      평문: password123
      SHA-256 → ef92b778... (64자리 해시)
  2. 양방향 암호화

    • 평문 ↔ 암호문 상호 변환 가능
    1. 대칭키 암호화

      • 하나의 키로 암호화·복호화 모두 수행

      • 장점: 빠름, 대량 데이터 처리 적합

      • 단점: 키 교환 문제(중간에서 탈취 위험)

      • 대표 알고리즘: AES, DES(구식), 3DES

      • ex)

        • 키: mysecretkey
        • Encrypt("Hello", key)Xy2!a...
        • Decrypt("Xy2!a...", key)Hello
    2. 비대칭키 암호화

      • 공개키(Public Key)개인키(Private Key) 한 쌍 사용
      • 특징: 한쪽 키로 암호화하면 다른 쪽 키로만 복호화 가능
      • 장점: 키 배포 문제 해결
      • 단점: 속도 느림 (대칭키와 병행 사용)
      • 대표 알고리즘: RSA, ECC

활용 방식

상황암호화/서명에 사용하는 키복호화/검증에 사용하는 키
데이터 기밀성 확보수신자의 공개키로 암호화수신자의 개인키로 복호화
전자서명송신자의 개인키로 서명송신자의 공개키로 검증

PKI (Public Key Infrastructure) 인증 시스템

PKI란?
공개키 기반의 인증 체계. 신뢰할 수 있는 기관(CA, 인증기관)이 공개키가 특정 사용자/서버에 속함을 보증.

과정

  1. 사용자/서버가 키 쌍(공개키, 개인키) 생성
  2. CSR (Certificate Signing Request): 공개키 + 도메인 정보 → CA에 제출
  3. CA(공인된 제3자 기관)가 신청자 신원 확인 후 인증서(공개키+인증기관 서명) 발급
  4. 클라이언트는 서버 인증서를 받아 CA 서명 검증 (루트 인증서 체인 사용)
  5. 검증 성공 시 해당 공개키가 진짜 서버/사용자 소유임을 신뢰

SSL/TLS 프로토콜

단계송신자 → 수신자메시지내용
1클라이언트 → 서버ClientHello클라 랜덤 값, 지원 암호군 목록, TLS 버전, 확장(SNI, ALPN 등)
2서버 → 클라이언트ServerHello서버 랜덤 값, 선택된 암호군, TLS 버전
3서버 → 클라이언트Certificate서버 인증서 체인 (서버 공개키 포함)
4서버 → 클라이언트ServerKeyExchange서버의 임시(E)CDHE 공개키, 인증서 개인키로 서명
5서버 → 클라이언트ServerHelloDone서버 측 초기 인사 종료
6클라이언트 (로컬)인증서 검증CA 체인/서명/만료/도메인 검증
7클라이언트 → 서버ClientKeyExchange클라이언트의 임시(E)CDHE 공개키
8클라이언트 → 서버ChangeCipherSpec이제부터 암호화하겠다는 선언
9클라이언트 → 서버Finished지금까지의 핸드셰이크 기록을 세션키로 암호화해 MAC 전송
10서버 → 클라이언트ChangeCipherSpec서버도 암호화 전환
11서버 → 클라이언트Finished서버도 Finished 메시지 전송

cf. SSH

  • 정의: 원격 서버 접속을 안전하게 해주는 암호화 프로토콜

  • 포트: TCP 22

  • 특징:

    • 모든 트래픽 암호화 (명령어, 패스워드 포함)
    • RSA, ECDSA, Ed25519 등의 공개키 기반 인증 지원
  • 동작:

    1. 클라이언트 → 서버 접속 시도
    2. 서버는 공개키를 보냄
    3. 클라이언트는 서버 신원 확인 (known_hosts)
    4. 인증: 비밀번호 / 공개키 방식
    5. 세션키 합의 후 대칭키 암호화 통신
  • 활용: 원격 로그인(ssh user@host), 파일 전송(SCP, SFTP), 포트 포워딩


복습 문제

Q1. 평문을 암호화한 것은 무엇인가? 암호문

Q2. 암호화할 때 사용한 키와 복호화키할 때 사용하는 키가 같은 암호화 방식은 무엇인가? 대칭키

Q3. 암호화할 때 사용한 키와 복호화할 때 사용하는 키가 다른 암호화 방식은 무엇인가? 비대칭키

Q4. 암호화한 데이터를 다시 원래대로 복호화할 수 없는 암호화 방식은 무엇인가? 단방향 암호화 해시

Q5. 10대의 컴퓨터가 서로 비대칭 키 암호화 방식을 이요해서 통신하려할 때 필요한 키의 수는 몇 개인가? 20개. 각각 개인 키와 공개 키

Q6. 데이터의 해시값을 생성하고 해시값을 특정 대상의 개인키로 암호화하며 데이터가 위변조되었는지 확인하거나 특정 대상의 신원을 확인할 때 사용하는 기술을 무엇이라고 하는가? 디지털 서명

Q7. 제 3의 인증 기관에게 발급받는 것으로, 서버의 도메인 주소와 공개 키를 인증해 주는 파일을 무엇이라고 하는가? 인증서

Q8. 발급 대상, 발급 기관, 발급 대상의 공개 키, 클라이언트의 공개 키 중 인증서에 포함되어 있지 않은 것은 무엇인가? 클라이언트의 공개 키

Q9. SSL 프로토콜은 OSI 모델에서 몇 계층에 속하는가? 4계층

Q10. 해시 암호화의 특징이 아닌 것은?

  • 입력하는 데이터의 크기가 크면 암호화된 데이터의 크기도 크다. (X)
  • 대표적인 알고리즘으로 MD5, SHA 등이 있다.
  • 주로 데이터의 무결성을 검증하는 데 사용된다.
  • 다시 원본 데이터로 복호화할 수 없다.
profile
말하는 고구마

0개의 댓글