Ticket-Granting 티켓

Kerberos 프로토콜이 원래 설계되었으므로 사용자에 대한 master 키가 사용자가 제공한 암호에서 파생되었습니다. 사용자가 로그온하면 사용자의 워크스테이션에 있는 Kerberos 클라이언트가 사용자의 암호를 수락하고 단방향 해시 함수를 통해 텍스트를 전달하여 암호화 키로 변환했습니다. 결과 해시는 사용자의 master 키였습니다. 클라이언트는 이 master 키를 사용하여 KDC에서 받은 세션 키의 암호를 해독했습니다.

원래 Kerberos 디자인의 문제는 클라이언트가 KDC에서 세션 키를 해독할 때마다 사용자의 master 키가 필요하다는 것입니다. 즉, 클라이언트는 모든 클라이언트/서버 교환을 시작할 때 사용자에게 암호를 요청하거나 클라이언트가 워크스테이션에 사용자의 키를 저장해야 합니다. 사용자의 잦은 중단은 너무 방해가 됩니다. 워크스테이션에 키를 저장하면 장기 키인 사용자 암호에서 파생된 키가 손상될 수 있습니다.

이 문제에 대한 Kerberos 프로토콜의 솔루션은 클라이언트가 KDC에서 임시 키를 가져오는 것입니다. 이 임시 키는 이 로그온 세션에만 적합합니다. 사용자가 로그온하면 클라이언트는 다른 서비스에 대한 티켓을 요청하는 것처럼 KDC에 대한 티켓을 요청합니다. KDC는 로그온 세션 키와 KDC의 전체 티켓 부여 서비스인 특수 서버에 대한 티켓을 만들어 응답합니다. 로그온 세션 키의 한 복사본이 티켓에 포함되고 티켓은 KDC의 master 키로 암호화됩니다. 로그온 세션 키의 또 다른 복사본은 사용자의 로그온 암호에서 파생된 사용자의 master 키로 암호화됩니다. 티켓과 암호화된 세션 키가 모두 클라이언트로 전송됩니다.

클라이언트가 KDC의 회신을 가져오면 사용자의 암호에서 파생된 사용자의 master 키로 로그온 세션 키의 암호를 해독합니다. 클라이언트는 이제 로그온 세션 키를 사용하여 KDC에서 가져온 서버 세션 키의 복사본을 해독하기 때문에 더 이상 사용자의 암호에서 파생된 키가 필요하지 않습니다. 클라이언트는 KDC의 전체 티켓 부여 서비스에 대한 티켓과 함께 로그온 세션 키를 티켓 캐시에 저장합니다.

전체 티켓 부여 서비스의 티켓을 TGT(티켓 부여 티켓)라고 합니다. 클라이언트는 KDC에 서버에 대한 티켓을 요청할 때 다른 서비스에 자격 증명 을 제공하는 것처럼 인증자 메시지 및 티켓 형식(이 경우 TGT)의 형식으로 자격 증명을 제공합니다. 티켓 부여 서비스는 master 키로 TGT를 열고, 이 클라이언트에 대한 로그온 세션 키를 추출하고, 로그온 세션 키를 사용하여 서버에 대한 클라이언트의 세션 키 복사본을 암호화합니다.