CS/네트워크

HTTPS

leah-only 2025. 2. 24. 18:05

HTTPS (Hypertext Transfer Protocol Secure)

HTTP + SSL, HTTP로 통신하는 소켓을 SSL(Secure Socker Layer) or TLS (Transport Layer Security)라는 프로토콜로 대체한 것 (새로운 별개의 프로토콜이 아니라 연결 방식이 달라진 것) 

 

HTTP 프로토콜에 보안 기능을 추가하여 데이터를 안전하게 전송할 수 있도록 함. 

HTTPS는 SSL/TLS 프로토콜을 사용하여 HTTP 통신을 암호화 

 

SSL (Secure Socket Layer)
보안 프로토콜
개인정보 보호, 인증, 무결성을 인터넷 통신에 제공
나중에는 명칭이 TLS(Transport Layer Security)로 발전

 

HTTPS 등장 이유?

HTTP는 평문 데이터를 전송하는 프로토콜로 중간자 공격에 취약하기 때문에 보안 문제를 해결하기 위해 등장

 

특징

  • 암호화 : 데이터를 암호화하여 제3자가 내용을 도청하거나 변조하는 것을 방지 
  • 인증: 서버의 신원을 증명하여 클라이언트가 올바른 서버와 통신하고 있는지 확인
  • 무결성: 데이터가 전송 중에 변조되지 않았음을 보장 

HTTPS 작동 방식

공개키(비대칭키) 알고리즘 → 데이터 암호화 

 

비대칭키 ⇒  암호화와 복호화할 때 키를 서로 다른 키로 사용하는 알고리즘 

 

  1. 클라이언트는 서버의 공개키로 데이터를 암호화하여 서버에 전송
  2. 서버는 자신의 개인키로 데이터를 복호화하여 요청 처리
공개키 (비대칭키)
- 모두에게 공개, 공개키 저장소에 등록

 

개인키 (대칭키)
- 개인에게만 공개, 클라이언트-서버 구조에서는 서버가 가지고 있는 비공개키

대칭키와 비대칭키

  • 대칭키 : 하나의 키로 데이터를 암호화/복호화, 키가 노출되면 보안에 치명적, 비용 적게 듦
  • 비대칭키 : 공개키와 개인키로 암호화/복호화, 보안성이 좋지만 속도가 느림

안전한 통신 3가지 특성

  1. 기밀성 (Confidentiality)
    • 권한이 없는 사용자가 정보를 열람하거나 이해할 수 없도록 보호하는 것
  2. 메시지 무결성 (Message Integrity)
    • 통신하는 내용이 전송 도중에 변조되거나 손상되지 않았음을 보장하는 것 
  3. 종단점 인증 (Endpoint Authentication)
    • 통신에 참여하는 주체의 신원을 확인하여 실제 누구와 통신하고 있는지 확인하는 것

TLS handshake

서버는 개인키, 공개키를 가지고 있으며 신뢰할 수 있는 CA 기업에 공개키 관리를 부탁하며 계약

CA (Certificate Authority)
공개키를 저장해주는 신뢰성이 검증된 민간기업

 

 

  1. TCP 연결 설립
  2. ClientHello
    • 지원하는 TLS 버전, 암호화 방식 등을 서버에 전송
  3. ServerHello
    • client가 보낸 정보를 바탕으로 사용할 TLS 버전과 암호화 방식 선택
  4. Certificate
    • 서버의 공개키를 담은 SSL 인증서를 client에 전송 
  5. ClientKeyExchange
    • client는 서버의 공개키를 사용하여 비밀키를 암호화하고 이를 서버에 전송
    • RSA 방식) 서버의 공개키로 Pre-master Secret을 암호화하여 서버에 전송 
  6. 세션 키 생성 (client/server)
    • 서버는 자신의 개인키로 Pre-mater Secret을 복호화하고
    • client와 서버가 공유한 난수화 함께 사용하여 세션 키 생성
  7. Change Cipher Spec, Finished
    • client와 서버는 생성된 세션 키를 사용하여 암호화 통신을 시작한다는 메시지를 서로에게 전송
    • 핸드셰이크 완료 

CS 로드맵 : https://github.com/devSquad-study/2023-CS-Study

cs 질문 참고 : https://eunsun-zizone-zzang.tistory.com/35

'CS > 네트워크' 카테고리의 다른 글

SOAP(Simple Object Access Protocol)  (0) 2025.02.27
REST  (2) 2025.02.25
HTTP 진화과정  (0) 2025.02.21
로드밸런서  (0) 2025.02.20
TCP/IP 4계층 네트워크 기기  (0) 2025.02.20