TLS 세션
하나의 TLS 세션은 한 클라이언트와 한 서버 사이의 연관을 말한다.
세션을 시작하려면 핸드쉐이프 프토토콜을 이용해야 한다.
세션은 다수의 연결이 공유하는 암호적 보안 매개 변수를 정의한다.
각 연결마다 해야 하는 새 보안 매개 변수 협상을 피하기 위해 세션을 사용한다
세션의 상태
사실 각 세션에는 연관된 여러 상태가 있다.
일단 한 세션이 설정되면 각각 읽기와 쓰기(전송과 수신)에 대한 현재 동작 상태가 있다.
추가로 핸드쉐이크 프로토콜 도중 읽기 계류 상태와 쓰기 계류 상태가 생성된다.
핸드쉐이크 프로토콜이 성공적으로 결정되면 계류 상태는 현재 상태로 바뀐다
- 세션과 연관된 상태
- 현재 동작 상태
- 읽기 계류 상태
- 쓰기 계류 상태
세션 상태 매개 변수
-
세션 식별자(Session identifier)
활동 상태나 재시작 할 수 있는 세션 상태를 나타내기 위한 서버가 선택하는 임의의 바이트열이다. -
대등 인증서(Peer Certificate)
-
압축 방법(Compression method)
-
암호명세(Cipher spec)
MAC 계산에 사용되는 용량이 큰 데이터에 적용할 암호 알고리즘과 해시 알고리즘을 나타낸다
또한, hash_size 같은 암호적 속성도 정의 한다. -
마스터 비밀(Master secret)
클라이언트와 서버가 공유하는 48 바이트 비밀이다 -
재시작 여부(Is resumable)
새 연결을 시작하기 위해서 세션을 사용할 수 있는지 아닌지를 나타내는 플래그이다
연결 상태 매개변수
-
서버와 클라이언트 랜덤(server and client random):
각 연결에 사용하려고 서버의 클라이언트가 선택하는 바이트열이다. -
서버 기록 MAC 비밀(Server write MAC secret):
서버가 보낸 데이터로 MAC을 계산 할 때 사용하는 비밀키이다. -
클라이언트 기록 MAC 비밀(Client write MAC secret):
클라이언트가 보낸 데이터로 MAC를 계산할 대 사용하는 비밀키이다. -
서버 기록 키(Server write key):
서버가 데이터를 암호화하고, 클라이언트가 복호화 할 때 사용하는 대칭 암호키이다. -
클라이언트 기록 키(Client write key):
클라이언트가 데이터를 암호화하고, 서버가 복호화 할 때 사용하는 대칭 암호키이다. -
초기화 벡터(Initialization vectors)
암호 블록 체인 모드 (CBC)로 블록 암호를 사용할 때 초기화 벡터가 각 키에 대해 유지 된다.
맨 처음 SSL 핸드쉐이크 프로토콜이 이 필드를 초기화 한다
그 뒤에 각 레코드의 최종 암호문 블록을 IV로 사용하기 위해 저장한다. 이 때 나오는 레코드도 저장한다 -
순서 번호(Sequence numbers)
각 개체는 각 연결 때마다 전송하고 수신한 메시지에 대해 별도로 순서 번호를 보관한다.
한 개체가 암호 명세 변경 메세지를 보내거나 받게 되면 , 거기에 적합한 순서 번호를 0으로 설정한다
순서 번호는 2^64 -1를 초과하면 안된다
부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>
'Computer Science > 네트워크' 카테고리의 다른 글
TLS (0) | 2023.05.17 |
---|---|
핸드 쉐이크 프로토콜 (0) | 2023.05.17 |
HTTP (0) | 2023.05.13 |
MIME(Multipurpose Internet Mail Extensions) (0) | 2023.05.13 |
NAT (0) | 2023.05.04 |