커버로스 란?

snooby·2022년 8월 12일
1

☁ Cloud

목록 보기
14/24
post-thumbnail

저희 회사는 서버를 접속할 때 커버로스로 접속하는 방법을 사용합니다.
대체 커버로스가 뭔지 알고 쓰는 멋진 개발자가 되기 위해 공부해봅니다. ㅎㅎ

커버로스 프로토콜

커버로스는 티켓기반의 컴퓨터 네트워크 인증 프로토콜 입니다.
보안이 보장되지 않은 네트워크 환경에서 요청을 보내는 유저와 요청을 받는 서버가 서로의 신뢰성을 확보하기 위해 사용하는 것입니다.

티켓

티켓 기반의 컴퓨터 네트워크 인증 프로토콜이라고 했는데요.
여기서 티켓이 뭐고 왜 쓰이는 걸까요?

커버로스에서 사용하는 티켓은 유저 아이디를 안전하게 전달하는 데 사용되는 정보 패킷입니다.
티켓에 포함하는 정보에는 "유저 아이디, 유저 호스트의 IP주소, 타임스탬프, 티켓 수명을 정의하는 값, 세션 키" 등이 있습니다.
이러한 정보를 담은 티켓은 발급하는 서버의 비밀키로 암호화됩니다.

커버로스 프로토콜 동작과정

  1. 유저는 자신의 아이디를 AS에 보내서 TGT를 요청한다.
    AS : 요청을 보내는 유저의 아이디와 패스워드 인증하고 통신을 위한 티켓을 발급해주는 서버
    TGT : 접속하고자 하는 목적지 서버와 통신하기 위한 티켓을 유저에게 발급해주는 서비스
  2. AS는 전송받은 아이디가 AS의 데이터베이스에 있는지 확인하고, 있다면 두가지 정보를 생성해서 유저에게 보내준다.
    두가지 정보 : 요청을 봰ㄴ 유저의 패스워드를 통해 만든 키로 암호화한 TGS 세션키 & TGT (암호화된 티켓)
  3. 유저는 AS로 부터 받은 정보로 TGS 세션키 얻고, Authenticator를 만들어 TGT와 함께 TGS에 보내준다.
  4. TGS는 유저로부터 받은 TGT와 Authenticator를 복호화하여 유저 아이디가 일치하는지 확인하고, 일치한다면 유저에게 티켓과 목적지 서버 세션 키를 발급해준다.
  5. 유저는 TGS로부터 암호화된 목적지 서버 세션 키와 티켓을 받고, 암호화된 목적지 서버 세션 키를 복호화하여 또 다른 Authenticator를 만들어 티켓과 함께 목적지 서버에게 보내준다.
  6. 목적지 서버는 유저로부터 받은 Authenticator와 티켓을 복호화하여 유저 아이디가 일치하는지 확인한 후, 일치한다면 Authenticator에 들어 있던 타임 스탬프를목적지 서버SS 세션 키로 암호화하여 유저에게 보내준다
  7. 목적지 서버는 유저로부터 받은 Authenticator와 티켓을 복호화하여 유저 아이디가 일치하는지 확인한 후, 일치한다면 Authenticator에 들어 있던 타임 스탬프를 목적지 서버 세션 키로 암호화하여 유저에게 보내준다
  8. 유저는 답신받은 데이터를 목적지 서버 세션 키로 복호화하여 앞서 목적지 서버에게 보낸 타임 스탬프와 일치하는지의 여부를 체크한다.

커버로스 단점

  1. 커버로스 서버는 하나이기 때문에 서버가 다운될 경우, 새로운 유저는 로그인할 수가 없다. 따라서 여러 개의 서버를 운용하는 등 서버가 작동하지 않을 때를 대비할 수 있는 메커니즘을 구현해야 한다.
  2. 요청 시간에 대한 요구가 엄격하다(통상적으로 5분). 만약 요청을 주고받는 호스트들 간에 시간 동기화가 되어있지 않을 경우 통신이 불가능하다.

커버로스 접속 방법

kinit 접속자아이디@서버

커버로스 접속 비밀번호 변경

접속 후 kpasswd

profile
DevOps 🐥

0개의 댓글