세션 키는 KDC에서 생성한다. 먼저 KDC는 비밀키를 생성하고, KDC는 통신하고자 하는 두 사람과 비밀키를 이용해 세션키를 생성한다. 비밀키는 구성원과 KDC 사이에서만 사용될 수 있으므로 구성원 사이에서는 세션키를 사용해야 한다. 세션마다 다른 키를 사용하기 때문에 세션키는 1번만 사용된다.

세션키를 이용한 통신 프로토콜은 다음과 같다.

 

첫 번째는 하나의 KDC를 이용하는 프로토콜이다. 먼저 A(사람)KDC한테 B(사람)와의 통신을 원해 세션키를 요청한다. KDC는 구성원과 세션키를 B와의 비밀키로 암호화한 후 세션키를 동봉하여 A와의 비밀키로 전체를 암호화 한 후 Alice에게 전송한다. AKDC와의 비밀키를 이용해 복호화한 후 동봉된 세션키를 확인한다. 그 후 B와 KDC의 비밀키로 암호화된 부분은 B에게 전송한다. BKDC와의 비밀키를 이용해 복호화한 후 세션키를 확인한다. 이러한 과정을 통해 A와 B는 세션키를 얻어 통신에 사용한다.

 

두 번째는 Needham-Schroeder 프로토콜이다. AKDC에게 B와 통신을 원해 Anonce 값을 전송한다. KDC는 통신 상대인 A와 세션키를 B와의 비밀키를 이용해 암호화하고 A가 전송했던 Anonce 값과 통신 상대인 B, 세션키를 동봉하여 A와의 비밀키로 전체를 암호화하여 A에게 전송한다. AKDC와의 비밀키를 이용해 복호화 후 동봉되어 있던 세션키와 통신 상대를 확인하고 자신이 보냈던 nonce값을 확인할 수 있는데 이를 통해 자신이 세션키를 요청했던 KDC가 맞는지 인증할 수 있게 된다. 그리고 KDCB의 비밀키로 암호화 되어 있는 티켓은 그대로 B에게 전송한다. B는 KDC와의 비밀키로 복호화하여 통신 상대와 세션키를 확인한다. 그 다음 B는 A에게 nonce값을 AB의 세션키를 이용해 암호화하여 A에게 전송한다. A는 세션키를 이용해 Bnonce값을 확인 해 nonce값에 -1을 한 값을 다시 B에게 전송한다. B는 AB의 세션키를 이용해 복호화하여 값을 확인한 후 통신 상대가 정말 A가 맞고 A가 자신과의 세션키를 가지고 있음을 확인할 수 있다.

 

 

KDC의 한 종류인 Kerberos는 다음 글에 포스팅되어 있습니다.

 

 

* 위의 글은 www.kocw.net/home/search/kemView.do?kemId=1320013 12주차 강의를 보고 제가 작성한 내용입니다.

'시스템보안(이론)' 카테고리의 다른 글

대칭 키 합의(Diffie-Hellman)  (0) 2020.08.31
KDC : Kerberos  (0) 2020.08.25
디지털 서명  (0) 2020.08.17
해시 함수  (0) 2020.08.15
메시지 인증  (0) 2020.08.14