반응형
SSL / TLS (Secure Socket Layer, Transport Layer Security)
- 단말(PC, Server 등)과 단말간의 암호화 통신을 위한 프로토콜
- SSLv1은 최초의 버전으로서 문제가 많아 발표되지 않고 사장됨
- SSLv2부터 공개가 되었으며 보다 더 나은 버전인 SSLv3가 나왔으며 이를 기반으로 TLSv1 생성
- TLSv1.0, v1.1,v1.2, v1.3가 나왔지만 아직 많은 브라우저에서 TLSv3를 지원하지 않음
SSL handshake(Client Certificate 과정 제외)
- Client Hello – Client가 Server에게 자신이 사용가능한 Random byte(대칭키 생성에 사용됨), Session ID, SSL / TLS 버전이 포함된 Cipher suite list를 전달
- Server Hello – Server가 Client가 보낸 Cipher suite list 중 하나를 선택해 전달
- Client Key exchange – 키교환 실시(실제 데이터 암호화에 사용할 키를 전달하며, SSL 인증서에서 추출된 공개키로 암호화)
- Server certificate – 서버의 인증서를 클라이언트에게 전송
- Server hello done – 서버 전달 종료
- Change cipher Specs, Finished – 이후 보내는 메시지들은 협상된 암호화 알고리즘에 따라 보낼 것임을 통보
- Finished, Change cipher Specs – 클라이언트가 보낸 메시지를 확인한 후, handshake를 종료하고 하나의 대칭키로 통신한다고 통보
Cipher Suite
- 간단히 말해, 암호화 세팅
- (암호화프로토콜)-키교환 방식 – 인증서 검증 – WITH – 암호화 알고리즘(Cipher) – 메시지 인증방식
- (공개키)키교환 방식
- 인증서를 전달 받은 client가 server에게 전달할 세션키(pre-master key < -양측의 Random byte를 이용해 만든 Key)를 공개키 알고리즘에 따라 서버의 공개키로 암호화할 때 사용할 방식
- 인증 방식
- client는 받은 서버의 인증서가 신뢰할 수 있는지 검토 후 공개키를 추출한다.
- 먼저 서명자는 문서의 데이터 일부를 해시 함수를 이용해 해시 값을 생성하고, 이를 개인키로 암호화한 뒤 문서에 첨부함
- client는 이 인증서를 공개키로 복호화 한 뒤, 개인키로 암호화된 해시값 역시 공개키로 복호화
- 인증서 내부 데이터를 같은 해시 함수를 이용해 해시 값을 얻어냄
이 2가지를 비교하여 인증서 검증
- (대칭키 알고리즘, 해쉬 알고리즘)암호화 알고리즘
- Application Data를 암호화 하기 위한 알고리즘
- MAC
- 무결성 확인용 인증방식
- 메시지 데이터 일부를 MAC 알고리즘으로 변환하여 메시지에 첨부한 후 수신자가 똑같은 방식으로 변환, 일치 여부 검사
'Network Infra 쉽게 이해하기 > HTTPS 쉽게 이해하기' 카테고리의 다른 글
HTTPS 통신과정 쉽게 이해하기 #2(Key가 있어야 문을 열 수 있다) (11) | 2020.03.21 |
---|---|
HTTPS 통신과정 쉽게 이해하기 #1(HTTPS란 무엇인가) (21) | 2020.03.20 |
SSL/TLS #4, Forward Secrecy와 디피 헬만 키교환 방식, RSA 키교환 방식 (4) | 2020.03.20 |
SSL/TLS #3, MAC(Message Authentication Code) (2) | 2020.03.20 |
SSL/TLS #2, 인증서 검증과 Chain (2) | 2020.03.20 |
댓글