정보보안 일반 - 커버로스 프로토콜(Kerberos Protocol) – 서버 접근 권한 관리
다음의 장·단점을 가진 인증기술은?
[보기]
- 장점 : 데이터의 기밀성, 무결성 보장
- 단점 : 키 분배센터(인증서버 & 티켓발급서버)에 오류 발생
① 커버로스(Kerberos) 프로토콜
② OTP 인증
③ ID/패스워드 인증
④ 메시지 출처 인증
서버가 몇대 없고, 사용자의 숫자도 얼마 안되는 경우 각 서버별로 수동으로 유저를 추가하거나 권한을 부여해서 수동으로 관리하는것이 가능하다. 하지만 아래와 같이 점점 서버의 숫자가 많아지고, 유저들도 늘어나는 경우 관리에 드는 비용이 점점 커진다.
- 각 서버별로 접근 가능한 사용자(=클라이언트)들의 권한을 관리해야하는 경우
- 서버가 추가될때마다 혹은 유저가 추가/삭제 될때마다 매번 접근가능 유저를 등록하고 관리해야 하는 경우
이런 경우에는 클라이언트/서버 외에 제3의 인증서버(Authentication Server, AS)를 도입 하고, 이와 연동된 티켓 부여 서비스(Ticket Granting Service, TGS)를 통해 티켓을 발급하여 유효한 티켓이 있는 유저만 서비스 서버(Service Server, SS)에 접속을 할 수 있도록 제어하는 커버로스(Kerberos) 프로토콜 을 도입하여 편리하게 관리하는 것이 가능하다.
커버로스(Kerberos)는 "티켓"(ticket)을 기반으로 동작하는 컴퓨터 네트워크 인증 암호화 프로토콜로서 비보안 네트워크에서 통신하는 노드가 보안 방식으로 다른 노드에 대해 식별할 수 있게 허용한다. 클라이언트 서버 모델을 목적으로 개발되었으며 사용자와 서버가 서로 식별할 수 있는 상호 인증(양방향 인증)을 제공한다. 커버로스 프로토콜의 메시지는 도청과 재전송 공격으로부터 보호된다. 커버로스는 대칭 키 암호로 빌드되며 TTP(신뢰된 서드 파티)를 요구한다. 또, 특정 인증 구간에서 비대칭 키 암호 방식을 이용함으로써 선택적으로 공개 키 암호 방식을 사용할 수 있다. 커버로스는 기본으로 포트 88을 사용한다.
프로젝트 아테나가 제공하는 네트워크 서비스를 보호할 목적으로 MIT가 개발하였다.
Kerberos Protocol 동작 순서
참고: 아래 설명에서 encrypt(키, 데이터)는 키값으로 데이터를 암호화 한다는 뜻이다.
- 클라이언트가 ID/PWD 또는 공개키 등으로 클라이언트의 머신에 먼저 로그인
-
클라이언트가 아래 메시지를 AS로 전송
- User ID (암호화 되지않은 일반 텍스트)
- AS는 User ID가 DB에 존재하는지 찾아본 후 존재하는 경우 아래 두 메시지를 리턴
- encrypt(key: 클라이언트 PWD기반 비밀키, data: “TGS 세션키”)
- 티켓을 발급받을 수 있는 티켓(Ticket-Granting-Ticket, TGT) = encrypt(TGS 비밀키, “Client ID, 주소, 유효기간, TGS 세션 키”)
- 클라이언트는 아래 두 메시지를 TGS로 전송 (TGS 세션키는 수신한 메시지를 복호화해서 획득)
- Authenticator = encrypt(key: TGS 세션키, data: “Client ID, timestamp”)
- TGT (클라이언트는 TGS 비밀키를 모르기때문에 복호화 또는 데이터 조작 불가)
- TGS는 전달받은 TGT(TGS 비밀키로 복호화 가능), 암호화된 Authenticator (TGS 세션키로 복호화 가능)를 모두 복호화 해서 안에 담긴 Client ID가 일치하는지 확인하여 일치할 경우 아래 두 메시지를 리턴
- encrypt(key: TGS 세션키, data: SS 세션키)
- Ticket = encrypt(key: SS 비밀키, data: “Client ID, 주소, 유효기간, SS 세션키”)
- 클라이언트는 아래 두 메시지를 SS로 전송
- Authenticator = encrypt(key: SS 세션키, data: “Client ID, timestamp”)
- Ticket
- SS는 전달받은 Ticket, Authenticator를 복호화 해서 안에 담긴 Client ID일치 확인 후 일치할 경우 아래 메시지를 리턴
- encrypt(key: SS 세션키, data:Authenticator안에 담겨있던 timestamp)
-
클라이언트는 전달받은 timestamp와 자신이 Authenticator에 담아보냈던 timestamp의 값이 일치하는 확인 후, 일치할경우 실제 작업을 시작한다.
Kerberos Protocol 단점
- 커버로스 서버가 SPOF(Single Point Of Failure) 이기 때문에 이 서버가 다운되면 기존에 이미 로그인된 유저를 제외한 새롭게 로그인을 시도하는 유저가 서버에 접속하는것이 불가능해진다.
- AS, TGS, SS간에 서로 비밀키를 미리 알고있어야 하기때문에 동기화 이슈가 존재한다.
- 인증이 한번 완료되면 유효기간이 존재하긴 하지만 티켓이 클라이언트에 보관되므로 티켓이 탈취될 가능성이 있다.
'IT > 정보보안' 카테고리의 다른 글
정보보안 일반 - 스트림 암호 (0) | 2019.08.26 |
---|---|
정보보안 일반 - 키 분배 프로토콜 (0) | 2019.08.26 |
정보보안 일반 - PRNG, HRNG, TRNG (0) | 2019.08.26 |
정보보안 일반 - 전수 공격, 통계적 분석 공격, 차분 공격, 선형 공격, 수학적 분석 공격 (0) | 2019.08.23 |
정보보안 일반 - Diffie-Hellman 프로토콜 (0) | 2019.08.23 |
댓글