전체 글에 해당하는 글 50

SSL 통신과정 (SSL Hand Shake, 대칭키, 공개키, 전자 서명)

Network/보안 & 방화벽|2021. 8. 8. 04:34
반응형

 

Onenote에 작성했던 1년전 글을 가져와서 조금의 보완을 거쳤습니다.

많이 부족한 내용이지만 그동안 이름만 알던 SSL 통신 연결 과정을 이해하기 위해 게시글을 작성했습니다.

 


 

 

우선, 전체적인 흐름을 잘 설명한 그림 한개 가져왔습니다.

< 출처 :  https://vitalholic.tistory.com/368 & https://minix.tistory.com/397  >

 

 

1. 대칭키 방식  

  • 동일한 키로 암호화, 복호화 하는 방식 
  • 암호를 주고 받는 사람들 사이에서 대칭키 전달은 어려움 
  • 대칭키 전달을 위해 공개키 방식을 사용함 

 

2. 공개키 특징 

  • 공개키 방식에는 두가지 Key가 필요한데, 공개키와 개인키(비공개키)가 있다. 
  • 공개키는 노출되어도 상관 없다. 
  • 공개키로 암호화 되면 개인키(비공개키)로 복호화 가능하여 안전한 방식 
  • 개인키는 본인만 갖고 있으며 유출되면 안되다. 

 

3. 인증(전자서명) 

  • 비공개키를 갖고 있는 사람이 자신의 정보를 암호화 하여 자신의 공개키를 갖고 있는 사람에게 전송 
  • 전송한 사람의 신원을 보증할 수 있음 

 

4. SSL이란 

  • Web Browser에서 특정 Web Site로 접속할 경우 암호화 하는 방식을 말합니다.

 

5. SSL 통신 방식  (SSL Hand Shake)

  • 통신방식을 알기 전에 필요한 대칭키, 공개키, 전자서명에 대한 정보를 얻었으니 이제 통신 과정에 대해 알아봅니다.

5.1 CA 인증서 발급

  1. 웹서비스를 제공하는 회사에서 Site정보 & 공개키를 인증기관에 제공하여 인증요청 
  2. 인증기관은 해당 정보를 기관의 개인키(비공개키)로 암호화 하여 인증서를 생성하고 요청한 회사로 발급
  3. 인증기관은 해당 인증서의 공개키를 Browser에 제공
  4. SSL 통신을 위한 준비 완료

5.2 SSL Hand Shake

  • Client와 Server가 대칭키를 얻기위한 절차로 아래의 과정으로 진행됩니다

Client Hello

  • Client는 임의 데이터를 만들어 Server에 전송
  • Client가 사용 가능한 암호화 알고리즘(Cipher Suite)를 Server에 전송

Server Hello

  • Server도 마찬가지로 임의 데이터를 만들어 Client에게 전송합니다.
  • Client로 부터 받은 암호화 알고리즘(Cipher Suite) 중 사용할 알고리즘을 선택하여 Client에게 전송합니다.

Certificate

  • Server는 CA 인증서를 Client에게 전달합니다.
  • Client는 Server로 부터 받은 CA인증서를 공개키로 복호화 하여 Server의 신원을 확인하고 Server 정보 및 Server 공개키를 획득합니다.

Client Key Exchane

  • Client는 임의로 만든 데이터(Client 및 Server)를 조합하여 임시 Key를 만들고 이를 Server 공개키로 암호화하여 전달합니다.
  • Server는 암호화된 임시 Key를 전달받고 이를 개인키로 복호화 하여 임시 Key를 획득합니다.

ChangeCipherSpec / Finished

  • Client와 Server 모두 동일한 Key(대칭키)를 소유하고 이를 사용하여 암호화 통신을 할 수 있게 됩니다.

 

 

 

 

※ 참고 사이트

1. 그림 참고 : https://vitalholic.tistory.com/368

2. 전체적인 흐름을 쉽게 설명 : https://it-sunny-333.tistory.com/144

3. 패킷 분석 및 디테일한 설명 : https://aws-hyoh.tistory.com/39

반응형

'Network > 보안 & 방화벽' 카테고리의 다른 글

[Paloalto] FQDN Security Rule  (0) 2021.02.25
Plaolto Protection 기능 ( DDoS 방지 )  (0) 2020.02.07
Paloalto 기능 정리 목록  (0) 2020.01.21
Paloalto 간단 정리 (수정중)  (0) 2019.10.17
Paloalto 공장 초기화 방법!  (2) 2017.03.10

댓글()