본문/내용
SSL 프로토콜의 구조
SSL은 크게 핸드세이크 프로토콜과 레코드 프로토콜로 되어있다. 핸드세이크 프로토콜은 다시 Change cipher spec protocol, Alert Protocol, 핸드세이크 프로토콜로 나뉘어 진다.
SSL 세션 정보
SSL은 클라이언트와 서버간에 핸드세이크 프로토콜을 수행하여 암호화된 하나의 세션을 성립하게 된다.
이 세션 동안의 보안 서비스를 위한 세션키, 암호 알고리즘, 인증서 등과 같은 변수 등을 서로 공유해야 하며 이 정보를 이용해 레코드 프로토콜에서 실질적인 보안 서비스를 제공한다. 여기에 사용되는 세션 정보는 다음과 같다.
·세션 식별자
세션 상태가 active상태인지 resemble상태인지를 식별하기 위해 임의로 선택된 일련의 바이트.
·인증서
서버와 클라이언트 X509.v3 인증서
·압축방법
데이터 압축을 위해 사용한 알고리즘
·Cipher spec
암호 알고리즘(DES etc.)과 MAC 알고리즘(MD5 or SHA), hash_size등의 알고리즘 관련 정보
·master secret
클라이언트와 서버 사이에 공유하는 48바이트의 비밀 정보
·보류여부
세션 재 연결 시 세션 정보를 재 사용할 지 여부 표기
세션 일부 정보로 한 세션 동안에만 사용되는 정보는 다음과 같다.
·서버-클라이언트 난수
서버와 클라이언트의 연결을 위해 선택된 일련의 바이트
·server write MAC secret
서버가 데이터에 MAC 연산을 적용할 때 사용한 비밀
·client write MAC secret
클라이언트가 데이터에 MAC연산을 적용할 때 사용한 비밀