부소대장 2024. 2. 28. 19:00
반응형

커버로스(Kerberos)

- 티켓(ticket) 기반 인증 프로토콜

- 대칭키 사용. 윈도우 서버 운영체제의 기본 인증방법으로 활용(LDAP)

- AS(Authentication Server) : 인증 수행하는 서버

- TGS(Ticket Granting Server) : AS에서 인증된 클라이언트에게 티켓을 발급해주는 역할

- SS(Service Server) : 서비스가 구현된 서버. 인증처리가 필요한 서비스

- TGT(Ticket Granting Ticket) : Ticket을 받기 위한 Ticket으로 Client 아이디와 TGS 세션키 등 여러 정보를 TGS 비밀키로 암호화한 Ticket

- Ticket : 사용자 인증을 위한 토큰. 다른 SS와 통신 시 패스워드를 재입력하지 않게 함.

 

 

상세 절차

① Client -> AS

Client는 자신의 ID/PasswordAS에 보내고 TGT를 요청한다.

 

② AS -> Client

AS는 수신받은 계정정보가 데이터베이스에 존재하는지 확인하여 TGTTGS 세션키를 Client에게 전송한다.

TGTClient 아이디, ip주소, TGS 세션키 등 포함하여 TGS 비밀키로 암호화한다.

TGS 세션키는 Client 비밀번호를 이용하여 암호화한다.

 

③ Client -> TGS

Client는 자신의 비밀번호로 암호화된 TGS 세션키를 복호화하여 TGS 세션키를 획득하고, TGS 세션키로 암호화한 Authenticator를 만들어 TGT와 함께 TGS로 보낸다.

AuthenticatorClient 아이디, 타임스탬프를 TGS 세션키로 암호화한다.

 

④ TGS -> Client

TGS는 수신받은 TGTAuthenticator를 복호화하여 Client 아이디가 일치하는지 확인하고 TicketSS 세션키를 발급하여 Client에게 전송한다.

TGTTGS 비밀키로 암호화되어있기 때문에 TGS는 자신의 비밀키로 복호화가 가능하다.

AuthenticatorTGS 세션키로 암호화되어있으며, TGT를 복호화해서 얻은 TGS 세션키로 복호화가 가능하다.

SS 세션키는 TGS 세션키로 암호화한다.

TicketClient 아이디와 SS 세션키 등을 포함하여 SS 비밀키로 암호화한다.

 

 

⑤ Client -> SS

Client는 수신받은 SS 세션키를 복호화하여 새로운 Authenticator를 만들어 Ticket과 함께 SS로 전송한다.

Client는 이미 TGS 세션키를 가지고 있기 때문에 SS 세션키의 복호화가 가능하다.

- 새로운 Authenticator에는 Client 아이디와 타임스탬프를 SS 세션키로 암호화한다.

 

⑥ SS -> Client

SS는 수신받은 TicketAuthenticator를 복호화하여 Client 아이디가 서로 일치하는지 확인하고 Authenticator에 들어있던 타임스탬프를 SS 세션키로 암호화해서 Client에게 전송한다.

TicketSS 비밀키로 암호화되어있기 때문에 SS는 자신의 비밀키로 복호화가 가능하다.

AuthenticatorSS 세션키로 암호화되어있으며, Ticket을 복호화하여 SS 세션키를 획득했기 때문에 복호화가 가능하다.

 

 

Client는 수신받은 타임스탬프가 자신이 보낸 타임스탬프와 일치하는지 확인하여 SS와의 통신을 신뢰할 수 있다.

반응형