□ 커버로스(Kerberos)란?
- 티켓(ticket) 기반의 컴퓨터 네트워크 인증 프로토콜. 클라이언트 서버 모델을 목적으로 개발되었으며 사용자와 서버가 서로 식별할 수 있는 상호 인증(양방향 인증)을 제공한다.
- 보안이 보장되지 않은 네트워크 환경에서 요청을 보내는 유저와 요청을 받는 서버가 서로의 신뢰성을 확보하기위해 사용된다.
* 티켓(ticket) : 유저 아이디를 안전하게 전달하는 데 사용되는 정보 패킷으로, [유저 아이디, 유저 호스트의 IP 주소, 타임 스탬프(time stamp, 시간 기록), 티켓 수명을 정의하는 값, 세션 키] 등을 포함한다
□ 커버로스의 구성요소
- KDC(Key Distribution Center)
: 키 분배 서버(Kerberos에서 가장 중요한 시스템)
: 모든 사용자와 서비스들의 암호화키(비밀키, secret key)를 보유
: 신뢰할 수 있는 제3의 기관으로서 티켓을 생성, 인증서비스를 제공
: 클라이언트와 서비스는 KDC의 무결성을 신뢰하며, 이러한 신뢰는 커버로스 보안의 근간
: 사용자의 패스워드는 비밀키로 변환됨. 이 비밀키는 주체와 KDC 사이에서 "민감한 데이터를 전송"하기 위해 사용되며, "사용자 인증 목적"을 위해서도 사용됨
: TGS와 AS로 구성
- AS(Authentication Service)
: 실질적으로 인증을 수행
: 사용자에 대한 인증을 수행하는 KDC의 부분 서비스
- TGS(Ticket Granting Service)
: 티켓 부여 서비스
: 티켓을 부여하고 티켓을 분배하는 KDC의 부분 서비스
- SS(Service Server, Resource Server)
: 유저가 최종적으로 통신하고자 하는 목적지 서버
- Ticket
: 사용자에 대해 신원과 인증을 확인하는 토큰
: 사용자가 다른 주체들과 통신이 필요할 때마다 패스워드를 입력하지 않도록 도와 줌
- Principals
: 인증을 위하여 커버로스 프로토콜을 사용하는 모든 실체
□ 커버로스의 동작절차
1,2(Request TGT) : 사용자는 워크스테이션에 로그인하고 호스트의 서비스를 요청한다
3(TGT+Session Key) : AS는 사용자가 DB에 접근권한이 있는지 확인한다. 그리고 TGT(Ticket Granting Ticket, 티켓을 받기 위한 티켓) 와 세션키를 생성한다. 그 결과물을 사용자의 패스워드로부터 유도한 키를 사용하여 암호화한다.
4(Request Ticket + Auth) : 워크스테이션은 사용자에게 프롬프트를 통해 패스워드를 묻고, 그것으로 수신되는 메시지를 복호화한 다음(유저는 당연히 자신의 패스워드를 알고 있으므로, AS로부터 받은 정보를 복호화하여 TGS 세션 키를 얻을 수 있다.) 사용자 이름, 네트워크 주소, TGS의 시간이 기록된 티켓과 인증자를 보낸다.
5(Ticket + Session Key) : TGS는 티켓과 인증자를 복호화하고, 요청을 확인하고 요청된 서버에 사용할 티켓을 생성한다.
6(Request Service + Auth) : 워크스테이션은 티켓과 인증자를 서버에 보낸다.
7(Server Authentication) : 서버는 티켓과 인증자가 일치되는지를 확인하고, 서비스에 대한 접근을 허락한다. 만약 쌍방 인증이 필요한 경우라면 서버는 인증자를 반환한다.
□ 특징
- 세션 키는 비밀 키와 다른 개념이다.
- 세션 키는 유저와 서비스 간의 통신에 필요한 키이다.
- 커버로스에서 유저는 TGS, SS와 통신을 하게 되므로, 두 개의 세션 키를 필요로 한다.
- 비밀 키는 서비스가 유저에게 만들어서 보내줄 티켓을 암호화하거나, 서비스가 유저로부터 전달받은 티켓의 복호화를 위해 가지고 있는 키이다.
- 티켓의 복호화를 위해 TGS는 TGS 비밀 키를 가지고 있고, SS는 SS 비밀 키를 가지고 있다.
- 티켓의 암호화를 위해 AS는 TGS 비밀 키를 가지고 있고, TGS는 SS 비밀 키를 가지고 있다.
- 또한 세션 키는 티켓 안에 들어갈 데이터 중 하나이기 때문에 AS는 TGS 세션 키를 가지고 있고, TGS는 SS 세션 키를 가지고 있다.
□ 커버로스의 장단점
장점 | 단점 |
- 데이터의 기밀성과 무결성 보장 - 재생공격 예방 - 개방된 이기종 간의 컴퓨터에서 자유로운 서비스 인증이 가능(SSO) - 대칭키를 사용하여 도청으로부터 보호 |
- 패스워드 사전공격에 약함 - 비밀키, 세션키가 임시로 단말기에 저장되어 침입자에 의해 탈취당할 수 있음 - TimeStamp로 인해 시간동기화 프로토콜이 필요 (요청 시간에 대한 요구가 엄격함(통상적으로 5분). 만약 요청을 주고받는 호스트들 간에 시간 동기화가 되어있지 않을 경우 통신이 불가능) - 비밀키 변경 필요 - KDC가 단일실패지점(SPoF, Single Point of Failure)이 될 수 있음 - KDC는 많은 수의 요청을 처리 가능해야 함(즉, 확장 가능성이 있어야 함) - TGS & AS는 물리적 공격 및 악성코드의 공격에 취약 |
'Study' 카테고리의 다른 글
WEB/WAS 취약점 진단 참고 - WebtoB (1) | 2023.10.27 |
---|---|
Windows Powershell(2) (0) | 2022.08.05 |
Windows Powershell (0) | 2022.08.04 |
Puzzing 기본 (0) | 2021.04.07 |