IT보안 학습

커버로스(Kerberos) 인증 총정리

김구티2 2023. 12. 28. 16:41

1. 커버로스 인증의 개념

언제나 케르베로스라고 부르고 싶은 커버로스 인증은 중앙집중형 사용자 인증 프로토콜로, 사용자를 서버에, 서버를 사용자에 인증하는 기능을 갖추었다. 커버로스 인증에서는 서버와 데이터베이스가 클라이언트 인증에 사용된다. 커버로스는 KDC(Key Distribution Center)로 알려진 타사의 신뢰할 수 있는 서버로 실행되며, 대칭키 암호화 기법에 바탕을 둔 티켓 기반의 인증 프로토콜이라 할 수 있다. 3A를 지원하는 것으로 아주 잘 알려져 있는데, 여기서 3A는 Authentication(인증), Authorization(인가), Accounting(과금)이다. 이를 AAA 서버라 부르기도 한다.

 

2. 커버로스의 구성 요소

- 인증 서버(AS): 인증 서버는 TGS(티켓 부여 서비스)에 대한 초기 인증을 수행한다. 실질적 인증을 수행한다고 볼 수 있다.

- 티켓 부여 서비스(TGS): 서버에 대한 티켓을 발행한다. 티켓을 만들고 세션 키를 포함한 Principals에 티켓을 분배하는 KDC의 한 부분인 것이다.

- 데이터 베이스: 인증 서버는 데이터베이스에 대한 사용자의 엑세스 권한을 확인한다.

- 키 분배 센터(KDC): TGS+AS로 구성되며, 사용자와 서비스 암호화 키를 유지하고, 인증 서비스를 제공하며 세션 키를 만들고 분배한다.

- Principals: 인증을 위하여 커버로스 프로토콜을 사용하는 모든 실체를 이르는 개념이다.

- Ticket: 인증 토큰을 말한다.

 

3. 커버로스 개요

1단계: 사용자가 AS에 인증을 한다. 따라서 사용자가 티켓 부여 서비스를 요청하는 것이다.

2단계: AS는 데이터베이스를 사용하여 사용자의 엑세스 권한을 확인한 후, 사용자에게 시작 티켓을 세션 키를 제공한다. 결과는 사용자의 비밀번호를 통해 암호화된다.

3단계: 메시지 암호 해독을 비밀번호를 사용하여 수행된 다음, 티켓을 TGS로 보낸다. 이때 티켓에는 사용자 이름 및 네트워크 주소와 같은 것들이 포함되어 있다.

4단계: TGS는 사용자가 보낸 티켓을 해독하고 인증자는 요청을 확인한 다음, 서버에서 서비를 요청하기 위한 티켓을 생성한다.

5단계: 사용자는 티켓과 인증자를 서버로 보낸다.

6단계: 서버는 티켓과 인증자를 확인한 다음, 서비스에 대한 엑세스를 생성한다. 이제 이 사용자는 서비스에 엑세스할 수 있게 된 것이다.

 

4. 커버로스의 제한사항 및 오류

커버로스에는 몇몇 제한사항이 존재한다. 우선, 커버로스와 함께 사용하기 위해 네트워크 서비스를 개별적으로 수정해야 하고, 항상 켜져 있는 커버로스 서버가 있어야만 한다. 시분할 환경에서는 잘 작동하지 않으며, 모든 비밀번호는 단일 키로 암호화하여 저장된다. 이 커버로스도 사실 나온지 꽤나 오래된 녀석인지라 공격자들에겐 많이 분석된 대상이기도 하다. 공격자는 티켓 위조, Brute Force Attack, 맬웨어 사용 등을 통해 암호화를 다운그레이드 하는 등의 커버로스를 공격할 방법을 수없이 찾아왔다. 그럼에도 커버로스는 여전히 엑세스 보안 프로토콜로 선택받고 있다. 이는 커버로스가 새로운 위협에 맞서기 위해 계속해서 강력한 암호화 알고리즘을 사용할 수 있는 유연성 덕분일 것이라 생각한다. 

728x90

'IT보안 학습' 카테고리의 다른 글

데이터베이스 총정리  (2) 2023.12.29
FIDO2 총정리  (0) 2023.12.29
리눅스 부팅 총정리  (0) 2023.12.28
리눅스 총정리  (0) 2023.12.28
RAID 총정리  (1) 2023.12.27