키 배포

비밀 키 인증 기술은 클라이언트와 서버가 세션에 사용할 비밀 세션 키를 가져오는 방법을 설명하지 않습니다. 만약 그들이 사람이라면, 그들은 비밀리에 만나서 키에 동의할 수 있습니다. 그러나 클라이언트가 워크스테이션에서 실행되는 프로그램이고 서버가 네트워크 서버에서 실행되는 서비스인 경우 해당 메서드는 작동하지 않습니다.

클라이언트는 여러 서버와 통신하려고 하며 각 서버에 대해 서로 다른 키가 필요합니다. 서버는 많은 클라이언트와 통신하며 각 클라이언트에 대해 서로 다른 키가 필요합니다. 각 클라이언트에 모든 서버에 대해 다른 키가 필요하고 각 서버에 모든 클라이언트에 대해 다른 키가 필요한 경우 키 배포가 문제가 됩니다. 또한 많은 컴퓨터에서 많은 키를 저장하고 보호해야 하므로 엄청난 보안 위험이 발생합니다.

Kerberos 프로토콜의 이름은 키 배포 문제에 대한 솔루션을 제안합니다. 케르베로스(또는 켈베로스)는 고전 그리스 신화의 인물로, 침입자들이 지하 세계로 들어오지 못하도록 계속 살아가는 치열하고 세 머리의 개였다. 신화적인 가드와 마찬가지로 Kerberos 프로토콜에는 클라이언트, 서버 및 신뢰할 수 있는 타사라는 세 가지 헤드가 있습니다. 이 프로토콜에서 신뢰할 수 있는 중간은 KDC(키 배포 센터)입니다.

KDC는 물리적으로 안전한 서버에서 실행되는 서비스입니다. 해당 영역의 모든 보안 주체 에 대한 계정 정보를 사용하여 데이터베이스를 유지 관리합니다. 영역은 Windows의 도메인에 해당하는 Kerberos입니다.

KDC는 각 보안 주체에 대한 다른 정보와 함께 보안 주체 및 KDC에만 알려진 암호화 키를 저장합니다. 이는 각 보안 주체와 KDC 간의 교환에 사용되는 master 키입니다. Kerberos 프로토콜의 대부분의 구현에서 이 master 키는 보안 주체의 암호에서 해시 함수를 사용하여 파생됩니다.

클라이언트가 서버와의 보안 연결을 만들려는 경우 클라이언트는 연결하려는 서버가 아닌 KDC에 요청을 보내는 것으로 시작합니다. KDC는 클라이언트와 서버가 서로를 인증하는 데 사용할 고유한 세션 키를 만들어 클라이언트에 보냅니다. KDC는 클라이언트의 master 키와 서버의 master 키 모두에 액세스할 수 있습니다. KDC는 서버의 master 키를 사용하여 서버의 세션 키 복사본을 암호화하고 클라이언트의 master 키를 사용하여 클라이언트의 복사본을 암호화합니다.

KDC는 세션 키를 관련된 각 보안 주체에 직접 전송하여 신뢰할 수 있는 중개자로서의 역할을 수행할 수 있지만 실제로 이 절차는 여러 가지 이유로 작동하지 않습니다. 대신 KDC는 암호화된 세션 키를 모두 클라이언트에 보냅니다. 서버의 세션 키는 세션 티켓에 포함됩니다.