Notice
Recent Posts
Recent Comments
Link
04-27 12:54
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

<<개발일지>>

https 통신 흐름 -작성중- 본문

전송프로토콜

https 통신 흐름 -작성중-

개발하는지호 2024. 8. 5. 17:32

HTTPS를 통한 안전한 통신의 핵심 아이디어는 바로 그거입니다. 서버의 공개 키는 클라이언트와 공유하여 데이터를 암호화하는 데 사용하고, 서버만이 가진 개인 키를 통해 그 데이터를 복호화하는 방식으로 보안을 유지합니다.

아래에 그 과정을 간단하게 요약하겠습니다:

HTTPS 통신의 기본 원리

  1. 공개 키와 개인 키의 역할:
    • 공개 키: 누구나 접근할 수 있는 키로, 데이터를 암호화하는 데 사용됩니다.
    • 개인 키: 공개되지 않은 비밀 키로, 암호화된 데이터를 복호화하는 데 사용됩니다.
  2. 통신 과정:
    1. 서버 인증서 전송:
      • 클라이언트가 서버에 접속을 시도할 때, 서버는 자신의 인증서를 클라이언트에게 전송합니다. 이 인증서에는 서버의 공개 키가 포함되어 있습니다.
    2. 클라이언트 인증서 검증:
      • 클라이언트는 서버의 인증서가 신뢰할 수 있는 인증 기관(CA)에 의해 서명되었는지를 확인하여 서버의 신원을 검증합니다.
    3. 세션 키 암호화:
      • 클라이언트는 세션 키(대칭 키)를 생성하고, 서버의 공개 키로 이 세션 키를 암호화하여 서버에 보냅니다.
    4. 개인 키로 복호화:
      • 서버는 자신의 개인 키를 사용하여 클라이언트가 보낸 암호화된 세션 키를 복호화합니다.
    5. 암호화된 통신 시작:
      • 클라이언트와 서버는 모두 동일한 세션 키를 가지게 되었고, 이를 통해 모든 이후의 통신을 대칭 암호화 방식으로 암호화하여 데이터를 안전하게 전송합니다.

예시로 설명

1. 서버 인증서 전송

plaintext
코드 복사
클라이언트 -> 서버: HTTPS 연결 요청 서버 -> 클라이언트: 서버 인증서(공개 키 포함)
  • 서버는 자신의 공개 키가 포함된 인증서를 클라이언트에 전달합니다.
  • 클라이언트는 이 인증서를 사용하여 서버의 신뢰성을 확인합니다.

2. 클라이언트의 세션 키 암호화

plaintext
코드 복사
클라이언트: 세션 키 생성 클라이언트 -> 서버: 공개 키로 암호화된 세션 키
  • 클라이언트는 세션 키를 생성하여 서버의 공개 키로 암호화한 후 서버에 보냅니다.

3. 서버의 개인 키로 복호화

plaintext
코드 복사
서버: 개인 키로 암호화된 세션 키 복호화
  • 서버는 자신의 개인 키를 사용하여 클라이언트가 보낸 암호화된 세션 키를 복호화합니다.

4. 암호화된 통신

plaintext
코드 복사
클라이언트 <-> 서버: 대칭 암호화된 데이터 전송
  • 이후의 통신은 생성된 세션 키를 사용하여 대칭 암호화 방식으로 데이터를 전송합니다.

요약

  • 공개 키: 클라이언트에게 배포되어 데이터를 암호화하는 데 사용.
  • 개인 키: 서버에서 비밀리에 보관하며, 암호화된 데이터를 복호화하는 데 사용.
  • 세션 키: 클라이언트와 서버 간의 데이터를 대칭 암호화하는 데 사용.

이 방법을 통해 HTTPS는 클라이언트와 서버 간의 통신을 안전하게 보호합니다. 공개 키와 개인 키를 사용하여 세션 키를 안전하게 교환하고, 이후의 데이터 전송은 세션 키를 사용하여 암호화되어 기밀성과 무결성을 보장합니다.