본문 바로가기

Library/Cryptography

Kerberos

키 사전 분배 방법에서, 오랜 시간 동안 같은 키를 사용하면 키가 손상되거나 누출될 위험이 있다. 이에 비해, 네트워크 사용자가 필요할 때마다 유효한 키를 발급하는 방법이 있다. 대표적인 것이 Kerberos(그리스식으로는 케르베르스, 영어로는 커버로스라고 읽는다)인데, Client / Server 구조의 대칭키 기반 키 분배 방식이다.

기본적인 Kerberos 모델은 다음과 같은 구성 요소를 가진다.

Cliff : a client
Serge : a server
Trent : a trusted authority
Grant : a ticket-granting server

Trent는 흔히 인증 서버로 알려져 있다. 먼저, Cliff와 Serge는 서로에 대해 어떠한 키 정보도 가지고 있지 않으며, Kerberos는 안전하게 이들에게 키를 분배하는 것이 목적이다. Kerberos의 결과는, Serge가 Cliff를 확인하고, 안전한 session key의 발급이다.

Cliff는 티켓 발급 서비스를 위한 티켓을 Trent에게 요청한다. Trent는 믿을만한 인증 기관이며, 모든 client에 대한 패스워드 정보를 가지고 있다. Trent는 암호화된 client의 패스워드 정보를 티켓으로 돌려준다. Cliff는 최종적으로 Serge가 제공하는 서비스를 제공받기를 원하지만, 서비스를 제공받기 전에 Cliff는 Serge와 접촉해야 한다. Cliff는, 티켓 인증 기관인 Grant에게 티켓을 제공하고, Grant가 이 티켓을 가져간다. 모든 것이 정상적이라면, Grant는 Serge가 제공하는 서비스를 사용할 수 있는, 세션이 열려있는 동안 유효한 티켓을 Cliff에게 발급한다. Cliff는 이제 Serge의 서비스를 사용할 수 있는 티켓을 가지고 있으므로, 이것을 Serge에게 제공한다. Serge는 이 티켓이 유효한지 확인하고, 유효하면 Cliff에게 해당 서비스를 제공한다.


Reference
Wade Trappe, Lawrence Washington, Introduction to Cryptography with Coding Theory, Second Edition, PEARSON Education