IT 상식

Kerberos 프로토콜 인증 방식

김모우 2020. 11. 22. 14:14
728x90
반응형

1. Kerberos란?

: 티켓을 기반으로 동작하는 컴퓨터 네트워크 인증 암호화 프로토콜로서 비보안 네트워크에서 통신하는 노드가 보안 방식으로 다른 노드에 대해 식별할 수 있게 허용한다. 클라이언트 서버 모델을 모적으로 개발되었으며, 사용자와 서버가 서로 식별할 수 있는 상호 인증(양뱡향 인증)을 제공한다. Kerberos 프로토콜 메세지는 도청과 재 전송 공격으로부터 보호되며, 대칭 키 암호로 빌드되며 TTP(Trusted Third Party)를 요구한다. 또 특정 인증 구간에서 비대칭 키 암호화 방식을 이용함으로써 선택적으로 공개 키 암호 방식을 사용할 수 있다. 

: Default Port: 88

 

: 서버가 몇대 없고, 사용자의 숫자도 얼마 안되는 경우 각 서버별로 수동으로 유저를 추가하거나 권한을 부여해서 수동으로 관리하는것이 가능하다. 하지만 아래와 같이 점점 서버의 숫자가 많아지고, 유저들도 늘어나는 경우 관리에 드는 비용이 점점 커진다.

  • 각 서버별로 접근 가능한 사용자(=클라이언트)들의 권한을 관리해야하는 경우
  • 서버가 추가될때마다 혹은 유저가 추가/삭제 될때마다 매번 접근가능 유저를 등록하고 관리해야 하는 경우

이런 경우에는 클라이언트/서버 외에 제3의 인증서버(Authentication Server, AS)를 도입 하고, 이와 연동된 티켓 부여 서비스(Ticket Granting Service, TGS)를 통해 티켓을 발급하여 유효한 티켓이 있는 유저만 서비스 서버(Service Server, SS)에 접속을 할 수 있도록 제어하는 커버로스(Kerberos) 프로토콜 을 도입하여 편리하게 관리하는 것이 가능하다.

 

2. 인증 방식

: Kerberos 인증 방식은 두 단계로 구성된다.

A. 초기 인증 - 모든 후속 인증에 대해 허용

: 초기 인증이 이루어지는 방식

: 클라이언트는 KDC(키 배포 센터)에서 TGT(티켓 부여 티켓)을 요청하여 Kerberos 세션을 시작

- TGT는 특정 서비스의 다른 티켓을 얻는 데 필요합니다.

- TGT(티켓 부여 티켓)는 여권과 비슷하다고 생각하십시오.

- TGT(티켓 부여 티켓)는 여권처럼 사용자의 신원을 확인하며 여러 개의 "비자"를 얻을 수 있도록 해줍니다. 여기서 "비자"(티켓)는 외국에 사용하기 위한 것이 아니라 원격 시스템 또는 네트워크 서비스에 사용하기 위한 것입니다. 여권과 비자처럼 TGT(티켓 부여 티켓) 및 기타 여러 티켓의 수명은 제한되어 있습니다. 차이점이라면 "Kerberos화된" 명령은 사용자에게 여권이 있음을 알고 있어 자동으로 비자를 얻는다는 것입니다. 즉, 사용자가 트랜잭션을 직접 수행할 필요가 없습니다.

 

: KDC는 TGT(티켓 부여 티켓)를 만들어 암호화된 형태로 다시 클라이언트로 보냅니다. 클라이언트는 클라이언트의 암호를 사용하여 TGT(티켓 부여 티켓)를 해독합니다.

 

: 이제 유효한 TGT(티켓 부여 티켓)가 생겼으므로, 클라이언트에서는 TGT(티켓 부여 티켓)가 유효한 동안 모든 종류의 네트워크 작업(예: rlogin 또는 telnet)에 대한 티켓을 요청할 수 있습니다. 이 티켓은 보통 몇 시간 동안만 지속됩니다. 클라이언트에서는 고유 네트워크 작업을 수행할 때마다 KDC로부터 해당 작업에 대한 티켓을 요청합니다.

 

B. 후속 인증 - 후속 인증 자체

: 후속 인증이 이루어지는 방식

 

: 클라이언트는 KDC에 신원 증명서로 TGT(티켓 부여 티켓)를 전송하여 KDC로부터 다른 시스템에 대한 원격 로그인용 특정 서비스에 대한 티켓을 요청합니다.

 

: KDC는 특정 서비스에 대한 티켓을 만들어 클라이언트로 보냅니다.

예를 들어 joe라는 사용자가 필요한 krb5 인증과 공유된 NFS 파일 시스템에 액세스하려 한다고 가정합시다. 이 사용자는 이미 인증을 받았기 때문에 즉, 이미 TGT(티켓 부여 티켓)가 있으므로 파일에 액세스하려고 하면 NFS 클라이언트 시스템이 자동으로 그리고 투명하게 KDC로부터 NFS 서비스에 대한 티켓을 얻습니다.

예를 들어 joe라는 사용자가 boston 서버에서 rlogin을 사용한다고 가정합시다. 이 사용자는 이미 인증을 받았기 때문에 즉, 이미 TGT(티켓 부여 티켓)가 있으므로 자동으로 그리고 투명하게 rlogin 명령의 일부로 티켓을 얻습니다. 이 티켓이 있으면 만료될 때까지 원하는 만큼 boston에 원격으로 로그인할 수 있습니다. joe가 denver 시스템에 원격 로그인하고 싶은 경우 1단계에서처럼 또 다른 티켓을 얻습니다.

 

: 클라이언트가 티켓을 서버로 보냅니다.

NFS 서비스를 사용할 경우 NFS 클라이언트가 자동으로 그리고 투명하게 NFS 서비스에 대한 티켓을 NFS 서버로 보냅니다.

 

: 서버에서 클라이언트 액세스를 허용합니다.

이러한 단계에서 서버는 KDC와 통신하지 않습니다. 

 

3. Kerberos Protocol 단점

 

: 커버로스 서버가 SPOF(Single Point Of Failure) 이기 때문에 이 서버가 다운되면 기존에 이미 로그인된 유저를 제외한새롭게 로그인을 시도하는 유저가 서버에 접속하는것이 불가능해진다.

 

: AS, TGS, SS간에 서로 비밀키를 미리 알고있어야 하기때문에 동기화 이슈가 존재한다.

 

: 인증이 한번 완료되면 유효기간이 존재하긴 하지만 티켓이 클라이언트에 보관되므로 티켓이 탈취될 가능성이 있다.

728x90
반응형

'IT 상식' 카테고리의 다른 글

DHCP 프로토콜 동작 원리  (0) 2020.12.14
TCP 통신 중 TIME_WAIT 개념  (0) 2020.12.10
파티션 형식 변경(MBR, GPT)  (0) 2020.12.04
BIOS와 UEFI 모드 차이  (0) 2020.10.25
Samba, SMB, CIFS  (0) 2020.10.25