[Infra] 커버로스(kerberos) 인증 개념 정리

업데이트:

커버로스(kerberos) 인증 개념 정리

참고링크

서버 접근 권한 관리 인증 프로토콜

서버와 클라이언트 수가 아주 많아지면 서버마다 유저별 접근권한 관리하는게 힘들어집니다. 그래서 등장한 것이 커버로스(kerberos). 커버로스를 이용하면 티켓을 가진 유저만 서버에 접속할 수 있도록 제어할 수 있으므로 서버 접근 권한 관리가 한결 편해집니다. 이 티켓은 비 암호화 네트워크에서 신원을 증명할 때 사용됩니다.

키 분배 센터(KDC)

커버로스는 인증 프로토콜임과 동시에 키분배센터(KDC, Key Distribution Center)입니다. 즉 사용자는 사용자는 A와 B가 비밀통신을 원할 때 KDC에게 작업시간을 포함하는 세션키를 요구하게 되고 KDC는 키를 생성하여 A와 B가 복호할 수 있도록 암호화된 상태로 키를 전달하는 방법입니다.

커버로스 구조

커버로스 프로토콜은 대칭키 방식으로 작동되고, 서비스 서버 이외에 인증서버가 따로 존재합니다. 즉, 서비스 서버, 인증 서버, 클라이언트와 같이 세가지로 구성되어 있는 구조입니다.

Keytab이란

Keytab은 “키 테이블”의 줄임말로 서비스를 제공하는 모든 호스트에는 Keytab로컬 파일이 있습니다. keytab에는 서비스 키라고 하는 해당 서비스에 대한 주체가 포함되어 있습니다. 서비스키는 서비스가 KDC(키분배 센터)에 대해 자신을 인증하는데 사용되며, Kerberos 및 서비스 자체를 통해서만 알려집니다.

kinit

kinit은 커버로스 적용된 시스템에 로그인 할 때 사용하는 명령어 입니다. 아래와 같이 kinit 명령어를 입력하면 비밀번호를 입력하는 칸이 나오고, 비밀번호를 입력한 후 티켓을 받은 후 원하는 시스템에 로그인 할 수 있습니다. 사용법은 다음과 같습니다.

$ kinit

kinit 명령어 옵션 중에는 -kt 옵션이 있는데, 해당 옵션을 사용할 경우, 비밀번호나 키체인 방식으로 인증하는 것이 아니라 키탭(Keytab)파일을 통해 인증하도록 해줍니다. 사용법은 다음과 같습니다.

// $ kinit -kt 키탭경로 USERID@DOMAIN
$ kinit -kt ~/abc/.keytab/abc.keytab abc@10.123.123.123