키 분배 센터 (Key Distribution Center, KDC)
키 분배 센터(Key Distribution Center, KDC)는 각 사용자·서비스와 미리 비밀 키를 하나씩 공유해 둔 신뢰할 수 있는 제3자로서, 서로 통신하려는 두 당사자에게 그때그때 쓸 세션 키를 만들어 안전하게 전달하는 암호 시스템의 구성 요소입니다. 키 교환에 따르는 위험을 줄이고, 어떤 사용자가 어떤 서비스를 언제 쓸 수 있는지 통제하는 시스템에서 주로 쓰입니다.
왜 필요한가
대칭 키 암호만으로 n명이 서로 안전하게 통신하려면 쌍마다 다른 키가 필요해 n(n−1)/2개의 키를 미리 나눠 가져야 합니다. KDC를 두면 각 참여자는 KDC와 공유하는 장기 키 하나만 가지면 되므로 관리할 키가 n개로 줄어듭니다. 두 당사자는 통신할 때마다 KDC에서 새 세션 키를 받고, 세션 키는 짧은 기간만 쓰고 버립니다.
작동 방식
- 사용자 A가 KDC에 서비스 B와 통신하겠다고 요청합니다.
- KDC는 A의 신원과 권한을 확인한 뒤 새 세션 키를 만듭니다.
- KDC는 세션 키를 A의 장기 키로 암호화한 사본과, B의 장기 키로 암호화한 사본(티켓)을 A에게 보냅니다.
- A는 자기 사본을 풀어 세션 키를 얻고 티켓을 B에게 전달합니다. B는 자기 장기 키로 티켓을 풀어 같은 세션 키를 얻습니다.
이 흐름은 1978년 니덤(Needham)과 슈뢰더(Schroeder)가 제안한 니덤-슈뢰더 프로토콜에서 정리되었습니다. 오래된 메시지를 다시 보내는 재전송 공격을 막기 위해 타임스탬프나 일회용 난수(nonce)를 함께 씁니다.
케르베로스의 예
가장 널리 쓰이는 KDC는 케르베로스(Kerberos) 인증 시스템입니다. 케르베로스의 KDC는 두 부분으로 나뉩니다. 인증 서버(AS)는 로그인한 사용자에게 일정 시간 유효한 티켓 발급 티켓(TGT)을 주고, 티켓 발급 서버(TGS)는 TGT를 제시한 사용자에게 개별 서비스용 티켓과 세션 키를 줍니다. 티켓에 유효 기간이 있어 권한을 시간 단위로 제한할 수 있고, 사용자는 비밀번호를 서비스마다 보내지 않아도 됩니다. 회사 네트워크에서 쓰는 마이크로소프트 액티브 디렉터리의 도메인 컨트롤러도 케르베로스 KDC 역할을 합니다.
장점과 한계
이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.