커버로스란?
커버로스란?
티켓 기반의 컴퓨터 네트워크 인증 프로토콜 입니다. 클라이언트 서버 구조에서 사용자와 서버가 서로 식별할 수 있는 상호 인증(양방향 인증)을 제공합니다. 커버로스는 클라이언트 <-> 서버 외 제 3의 컴퓨터가 클라이언트의 사용자를 인증합니다. 인증을 통해 서버는 클라이언트의 사용자가 올바른 사용자인지 확인하게 되고 클라이언트 <-> 서버간 통신이 가능해집니다.
티켓이란?
유저 아이디를 안전하게 전달하는 데 사용되는 정보패킷 입니다. 티켓에는 '유저아이디, 호스트IP, 타임스탬프, 티켓수명, 세션키' 가 포함이 됩니다.
왜 커버로스를 사용하는것인가?
네트워크 환경에서 유저와 서버의 신뢰성을 확보하기 위해 사용됩니다. 커버로스는 중앙집중형 인증방식으로 한번의 인증으로 여러서비스를 이용할 수 있는 통합인증(SSO, Single Sign On)기능을 제공합니다. 서버의 수가 점점 많아지고, 유저의 수도 많아져서 사용자와 권한에 대한 관리 비용이 높아지는 경우에 활용될 수 있다.
커버로스 관련 주요 개념
KDC(Key Distributjion Center) : 키 분배센터, AG, TGS포함함
AS (Authentication Server) : 인증서버, TGS비밀키를 알고있음
TGS (Ticket Granting Server) : 티벳발급서버, SS비밀키를 알고있음
SS(Service Server) : 서비스 서버 (유저가 통신하고 싶어하는 서버)
TGT(Ticket Granting Ticket, 티켓을 받기 위한 티켓)
커버로스 인증 절차
① 유저는 유저 아이디(암호화되지 않은 일반 텍스트)를 인증서버(AS)로 전송한다. (로그인 요청)
② 인증서버(AS)는 전송받은 아이디가 데이터베이스에 있는지 확있하고 있다면 TGS세션키(user pw암호화)와 TGT(TGS비밀키로 암호화)를 생성해서 유저에게 보낸다.
- TGS세션키 : user pw로 암호화를 했기때문에 복호화 가능
- TGT : (유저는) TGS비밀키로 암호화를 했기때문에 복호화 불가능
③ 유저는 인증서버(AS)로부터 받은 정보를 이용해 TGS 세션키를 얻고, Authenticator를 만들어 TGT와 함께 TGS에 보낸다.
- Authenticator : 유저 아이디와 타임스탬프를 TGS 세션키로 암호화한 데이터
TGS는 유저로부터 받은 TGT와 Autenticator를 복호화하여 유저 아이디가 일치하는지 확인
④ 3번에서 유저아이디와 일치한다면 유저에게 티켓과 SS 세션키를 발급해준다.
- TGS는 유저에게 SS와 통신할 권한을 주기 위해서 SS세션키와 티켓을 발급
- SS 세션키는 TGS세션키로 암호화
- 티켓은 유저 아이디와 SS세션키 등을 SS비밀키로 암호화
⑤ 유저는 TGS로 부터 받은 SS세션키를 복호화하여 또다른 Authenticator를 만들고 티켓과 함께 SS에 보낸다.
- 유저는 TGS 세션키가 있으므로 SS세션키 복호화 가능
- Authenticator : 유저 아이디와 타임스탬프를 SS 세션키로 암호화한 데이터
⑤ SS는 유저로 부터 받은 Autehenticator와 티켓을 복호화하여 유저 아이디가 일치하는지 확인한 후,
⑥ 일치한다면 Authenticator에 들어있던 타임스탬프를 SS 세션키로 암호화하여 유저에게 보낸다. 유저는 받은 데이터를 SS 세션키로 복호화하여 5번에서 SS에게 보낸 타임스탬프와 일치하는지 여부를 확인한다.
- 두 개의 타임스탬프가 서로 일치한다면, SS를 신뢰할 수 있다는 의미이다.
- SS는 최종적으로 유저가 요청을 보내려는 서버이므로, 이 단계까지 성공적으로 수행됐다면 유저와 서버는 서로를 신뢰하는 통신이 가능해진다.
커버로스의 단점
- 사용자 몰림으로 인해 과도한 티켓 생성 시 서버 부하가 발생할 수 있다.
- AS 다운 시 인증과정이 중단된다.
- 각 서버의 시간 설정이 잘못되어있는 경우 인증 과정에서 문제가 발생한다.
- 프로토콜의 표준화가 진행되지 않아 서버마다 구현이 상이하다.
- 패스워드 유출시 무의미(패스워드 추측 공격에 취약)
- 인증값, 티켓 등이 임시로 사용자에게 저장되므로 탈취당할수 있음
- 인증서버 또는 티켓발급 서버(KDC)에 문제발생시 전체 인증에 문제가 발생할 수 있음(단일오류지점(SPOF))
- 사용자 패스워드 변경시 비밀키도 변경해야됨
커버로스의 장점
- 기밀성과 무결성 보장
- 재생공격 예방
- 이기종간 서비스 인증 가능
- 대칭키를 사용하여 도청으로부터 보호