[인증서 기초상식 -IBM] SSL 교환
Webservice/보안2017. 2. 28. 10:48
SSL 또는 TLS 데이터 교환을 통해 SSL 또는 TLS 클라이언트 및 서버는 통신하는 데 사용하는 비밀 키를 설정할 수 있습니다.
이 절에서는 SSL 또는 TLS 클라이언트 및 서버가 서로 통신하는 데 사용되는 단계의 요약을 제공합니다.
- 사용할 프로토콜의 버전에 동의
- 암호화 알고리즘 선택
- 디지털 인증서 교환 및 유효성 검증에 의한 상호 인증
- 공유 비밀 키 생성을 위한 키 분배 문제점을 막아주는 비대칭 암호화 기술 사용. 그런 다음 SSL 또는 TLS는 메시지의 대칭 암호화에 공유 키를 사용하며, 이는 비대칭 암호화보다 더 빠릅니다.
SSL 데이터 교환에 연관된 단계
- 1. SSL 또는 TLS 클라이언트가 SSL 또는 TLS 버전과, 클라이언트가 지원하는 CipherSuite(클라이언트 환경 설정 순서대로) 등의 암호화 정보를 나열하는 "client hello" 메시지를 송신합니다. 메시지에는 나중의 처리에서 사용되는 무작위 바이트 문자열도 있습니다. 프로토콜을 통해 "client hello"는 클라이언트에 의해 지원되는 데이터 압축 메소드를 포함할 수 있습니다.
- 2. SSL 또는 TLS 서버는 클라이언트가 제공하는 목록에서 서버가 선택한 CipherSuite, 세션 ID 및 다른 무작위 바이트 문자열을 포함하는 "server hello" 메시지로 응답합니다. 이 서버도 자신의 디지털 인증서를 송신합니다. 서버가 클라이언트 인증을 위해 디지털 인증서를 필요로 하면, 서버가 지원되는 인증서 유형 목록과 허용 가능한 인증 기관(CA)의 식별 이름을 포함하는 "클라이언트 인증서 요청"을 송신합니다.
- 3.SSL 또는 TLS 클라이언트는 서버의 디지털 인증서를 확인합니다.
- 4. SSL 또는 TLS 클라이언트가 후속 메시지 데이터를 암호화하기 위해 사용될 비밀 키를 클라이언트와 서버 모두가 처리하게 해주는 무작위 바이트 문자열을 송신합니다. 무작위 바이트 문자열 자체는 서버의 공개 키로 암호화됩니다.
- 5. SSL 또는 TLS 서버가 "클라이언트 인증서 요청"을 송신했으면, 클라이언트가 클라이언트의 디지털 인증서나 "디지털 인증서 없음 경보"와 함께 클라이언트의 개인 키로 암호화된 무작위 바이트 문자열을 송신합니다. 이 경보는 경고일뿐이지만, 일부 구현에서 클라이언트 인증이 필수인 경우에 데이터 교환은 실패합니다.
- 6. SSL 또는 TLS 서버는 클라이언트의 인증서를 확인합니다.
- 7. SSL 또는 TLS 클라이언트가 서버에게 "완료" 메시지를 송신하며, 이는 데이터 교환의 클라이언트 부분이 완료되었다는 것을 표시하는 비밀 키로 암호화되어 있습니다.
- 8. SSL 또는 TLS 서버가 클라이언트에게 "완료" 메시지를 송신하며, 이는 데이터 교환의 서버 부분이 완료되었다는 것을 표시하는 비밀 키로 암호화되어 있습니다.
- 9. SSL 또는 TLS 세션 지속 기간에 서버와 클라이언트가 이제 공유 비밀 키로 대칭적으로 암호화되어 있는 메시지를 교환할 수 있습니다.
그림 1. SSL 또는 TLS 데이터 교환의 개요

'Webservice > 보안' 카테고리의 다른 글
[SSL] SSL 기본..1 (0) | 2017.03.20 |
---|---|
[인증서] 인증서 개념과 발급방법 정리글 (0) | 2017.02.28 |