SSL 통신과정 (SSL Hand Shake, 대칭키, 공개키, 전자 서명)
Network/보안 & 방화벽2021. 8. 8. 04:34
반응형
Onenote에 작성했던 1년전 글을 가져와서 조금의 보완을 거쳤습니다.
많이 부족한 내용이지만 그동안 이름만 알던 SSL 통신 연결 과정을 이해하기 위해 게시글을 작성했습니다.
우선, 전체적인 흐름을 잘 설명한 그림 한개 가져왔습니다.
1. 대칭키 방식
- 동일한 키로 암호화, 복호화 하는 방식
- 암호를 주고 받는 사람들 사이에서 대칭키 전달은 어려움
- 대칭키 전달을 위해 공개키 방식을 사용함
2. 공개키 특징
- 공개키 방식에는 두가지 Key가 필요한데, 공개키와 개인키(비공개키)가 있다.
- 공개키는 노출되어도 상관 없다.
- 공개키로 암호화 되면 개인키(비공개키)로 복호화 가능하여 안전한 방식
- 개인키는 본인만 갖고 있으며 유출되면 안되다.
3. 인증(전자서명)
- 비공개키를 갖고 있는 사람이 자신의 정보를 암호화 하여 자신의 공개키를 갖고 있는 사람에게 전송
- 전송한 사람의 신원을 보증할 수 있음
4. SSL이란
- Web Browser에서 특정 Web Site로 접속할 경우 암호화 하는 방식을 말합니다.
5. SSL 통신 방식 (SSL Hand Shake)
- 통신방식을 알기 전에 필요한 대칭키, 공개키, 전자서명에 대한 정보를 얻었으니 이제 통신 과정에 대해 알아봅니다.
5.1 CA 인증서 발급
- 웹서비스를 제공하는 회사에서 Site정보 & 공개키를 인증기관에 제공하여 인증요청
- 인증기관은 해당 정보를 기관의 개인키(비공개키)로 암호화 하여 인증서를 생성하고 요청한 회사로 발급
- 인증기관은 해당 인증서의 공개키를 Browser에 제공
- 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 |
댓글()