SSL / TLS protocol and Cipher suite
SSL / TLS (Secure Socket Layer, Transport Layer Security)
1. 단말과 단말간의 암호화 통신을 위한 프로토콜
SSL Handshake
1. Client Hello - Client가 서버에게 자신이 사용가능한 Random byte(대칭키 생성에 사용), Session ID, SSL , TLS 버전이 포함된 Cipher suite list를 전달한다.
2. Server Hello - Server가 Client가 보낸 Cipher suite list 중 하나를 선택해 전달
3. Cleint Key Exchange - 키교환 실시 ( 실제 데이터 암호화에 사용할 키를 전달하며, SSL 인증서에서 추출된 공개키로 암호화 )
4. Server certificate - 서버의 인증서를 클라이언트에게 전송
5. Server hello done - 서버 전달 종료
6. Change cipher Spaces, Finished - 이후 보내는 메세지들은 협상된 암호화 알고리즘에 따라 보낼것을 통보
7. Finshed, Change cipher Specs - 클라이언트가 보낸 메시지를 확인한 후, handshake를 종료하고 하나의 대칭키로 통신한다고 통보
Cipher Suite
1. 암호화 세팅이다.
2. (암호화 프로토콜) - 키 교환 방식 - 인증서 검증 - WITH - 암호화 알고리즘(Cipher) - 메시지 인증방식
3. (공개키) 키교환 방식
4. 인증 방식
1. cleint는 받은 서버의 인증서가 신뢰할 수 있는지 검토 후 공개키를 추출한다.
2. 먼저 서명자는 문서의 데이터 일부를 해시 함수를 이용해 해시값을 생성하고 , 이를 개인키로암호화한뒤 문서에 첨부함
3. client는 이 인증서를 공개키로 복호화 한 뒤, 개인키로 암호화된 해시 값 역시 공개키로 복호화
4. 인증서 내부 데이터를 같은 해시 함수를 이용해 해시 값을 얻어냄
이 2가지를 비교하여 인증서 검증
MAC
1. 무결성 확인용 인증방식
2. 메시지 데이터 일부를 MAC 알고리즘으로 변환하여 메시지에 첨부한 후 수신자가 똑같은 방식으로 변환 일치 여부 검사