네트워크 | URL과 HTTPS

Faithful Dev·2025년 1월 30일

컴퓨터 공학

목록 보기
76/81

URL (Uniform Resource Locator)

URL은 웹에서 특정 리소스(문서, 이미지, API 등)의 위치를 나타내는 주소이다.

URL 구조

https://example.com:8080/path.page.html?query=value#section
구성 요소설명
프로토콜 (https://)통신 방식 지정 (HTTP 또는 HTTPS)
도메인 (example.com)서버의 주소 (IP 주소 대신 사용 가능)
포트 번호 (:8080)서버와 통신할 포트 (기본값: HTTP=80, HTTPS=443)
경로 (/path/page.html)서버 내 특정 리소스 위치
쿼리 스트링 (?query=value)추가적인 데이터 전달 (예: 검색어, 필터)
프래그먼트 (#section)문서 내 특정 위치로 이동 (서버와 무관)

예제

  • https://www.google.com/search?q=FaithCoderLab
    • https:// → HTTPS 프로토콜
    • www.google.com → 도메인
    • /search → 검색 페이지 경로
    • ?q=FaithCoderLab → 쿼리 스트링 (검색어: "FaithCoderLab")

HTTPS (HyperText Transfer Protocol Secure)

HTTPS는 HTTP + 보안(SSL/TLS 암호화)을 적용한 프로토콜로, 인터넷에서 데이터를 안전하게 주고받기 위해 사용된다.

HTTP vs HTTPS

구분HTTPHTTPS
보안암호화 없음 (평문 전송)SSL/TLS 암호화
데이터 보호중간자 공격에 취약기밀성, 무결성 제공
포트 번호80443
URL 예시http://example.comhttps://example.com

HTTPS가 필요한 이유

  • 데이터 암호화 → 중간자 공격(Main-in-the-Middle, MITM) 방지
  • 데이터 무결성 보장 → 데이터가 변조되지 않도록 보호
  • 사용자 신뢰 확보 → 웹사이트의 신뢰성을 높여 검색엔진 SEO에도 긍정적

HTTPS의 작동 방식 (SSL/TLS 암호화)

HTTPS는 SSL/TLS 프로토콜을 사용하여 데이터를 암호화한다.

SSL/TLS Handshake 과정

  1. 클라이언트(브라우저)가 서버에 접속 (https://example.com)
  2. 서버가 SSL/TLS 인증서를 전송 (공개키 포함)
  3. 클라이언트가 인증서를 검증 (신뢰할 수 있는 CA 인증서인지 확인)
  4. 클라이언트가 세션키(대칭키)를 생성 후 공개키로 암호화하여 서버로 전송
  5. 서버가 비밀키(Private Key)로 복호화하여 세션키 확보
  6. 이후 통신은 대칭키 암호화 방식으로 안전하게 진행

핵심 개념

  • SSL/TLS 초기 핸드셰이크에서 비대칭키 암호화를 사용하여 세션키 교환
  • 이후 데이터 전송은 대칭키 암호화로 진행 (속도 및 성능 최적화)

대칭키 & 비대칭키 암호화

HTTPS에서 데이터를 안전하게 보호하기 위해 대칭키 암호화비대칭키 암호화가 사용된다.

대칭키 암호화 (Symmetric Encryption)

  • 하나의 동일한 키를 사용하여 암호화 & 복호화
  • 빠른 성능을 제공하지만, 키가 유출되면 보안 위험 발생

예제 (AES - 대칭키 암호화)

: secretkey123
평문: "Hello"
암호문: "G5H8J9K0L1"
  • 서버와 클라이언트가 동일한 키를 사용해야 함.
  • 데이터 전송 전, 키 교환이 필요 → 키가 탈취될 위험 존재.

비대칭키 암호화 (Asymetric Encryption)

  • 공개키(Public Key)와 비밀키(Private Key) 두 개의 키를 사용
  • 공개키로 암호화한 데이터는 비밀키로만 복호화 가능
  • 속도가 느리지만, 보안성이 뛰어남

예제 (RSA - 비대칭키 암호화)

공개키: 공개적으로 공유 가능
비밀키: 서버만 보관
  1. 클라이언트가 서버의 공개키로 데이터를 암호화
  2. 서버는 자신의 비밀키로 복호화
  3. 키를 직접 공유하지 않아 보안성이 뛰어남

대칭키 vs 비대칭키 비교

비교 항목대칭키 암호화비대칭키 암호화
키 개수1개 (공유)2개 (공개키, 비밀키)
속도빠름느림
보안성키가 유출되면 취약높은 보안성 제공
사용 사례데이터 암호화 (AES)키 교환, 인증서 (RSA, ECC)

HTTPS에서는 초기 핸드셰이크에 비대칭키, 데이터 전송에는 대칭키를 사용!


정리

  • URL → 웹 리소스의 주소를 지정하는 형식.
  • HTTPS → HTTP에 SSL/TLS 암호화를 적용하여 보안 강화.
  • 대칭키 암호화속도 빠름 (하지만 키 공유가 위험).
  • 비대칭키 암호화보안 강력 (하지만 속도가 느림).
  • HTTPS는 비대칭키로 세션키를 교환한 후, 대칭키로 데이터 암호화.
profile
Turning Vision into Reality.

0개의 댓글