본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Terminal Access Controller Access-Control System Plus, TACACS+; 택액스 플러스
네트워크 장비 관리자의 인증·인가·계정 관리(AAA)를 중앙 서버에서 처리하는 프로토콜로, 세 기능을 분리하고 명령 단위 인가를 지원해 장비 관리(device administration)에 주로 쓰인다

라우터·스위치·방화벽이 수백 대인 조직에서 장비마다 로컬 관리자 계정을 두면, 퇴사자 계정 삭제도 비밀번호 변경도 사실상 불가능하다. TACACS+는 장비가 관리자 로그인과 명령 실행을 중앙 서버에 물어보게 해서, 계정과 권한을 한곳에서 관리하고 누가 어떤 명령을 쳤는지 기록으로 남긴다. 원래의 TACACS는 BBN이 MILNET용으로 만든 단순한 UDP 기반 접근통제 프로토콜이었고, 시스코가 이를 확장한 것이 XTACACS이다. TACACS+는 시스코 소속 저자들이 1990년대 후반 인터넷 초안(draft-grant-tacacs-02, 흔히 "The Draft")으로 공개한 차세대 규격으로, AAA 기능 분리와 TCP 사용으로 앞선 두 방식을 개선했다. 이 초안은 끝내 표준이 되지 못한 채 널리 구현되었고, 2020년 9월 RFC 8907이 현장에서 쓰이는 공통 부분을 정보(Informational) 문서로 정리했다.

항목 내용
전송 TCP를 쓰며, IANA가 TCP 49번 포트를 배정했다. 신뢰성 있는 전달은 TCP가 맡는다.
AAA 분리 인증, 인가, 계정 관리가 각각 별도 패킷 유형과 세션으로 처리된다. RFC 8907은 이 분리를 설계의 핵심 요소로 들며, 사실상 세 개의 프로토콜 묶음이라고 설명한다. 세 기능 중 일부만 쓸 수도 있고, 인증은 다른 서버(예: 커버로스)에 맡기고 인가만 TACACS+로 할 수도 있다.
명령 단위 인가 관리자가 명령을 입력할 때마다 장비가 서버에 "이 사용자가 이 명령을 실행해도 되는가"를 물어볼 수 있다. 예를 들어 운영자에게는 조회 명령만, 엔지니어에게는 설정 변경까지 허용한다.
명령 단위 계정 관리 실행한 명령을 서버에 기록해 감사 증적으로 쓴다.
본문 보호 헤더를 뺀 패킷 본문 전체를 공유 비밀과 MD5 해시로 만든 의사 난수열과 XOR해 숨긴다. RADIUS가 비밀번호 속성만 숨기는 것과 대비된다.

본문 보호의 한계

편집 원본 편집

흔히 "TACACS+는 패킷 전체를 암호화한다"고 설명하지만, RFC 8907은 이 방식이 의미 있는 무결성·기밀성·재전송 보호를 제공하지 않으므로 암호화가 아니라 난독화(obfuscation)로 불러야 한다고 명시한다. 데이터 흐름에 접근할 수 있는 공격자는 모든 TACACS+ 패킷을 읽고 바꿀 수 있다고 가정해야 하며, MD5 계산 속도를 이용한 무차별 대입, 알려진 평문 공격에 취약하고 전방 비밀성도 없다. 그래서 RFC 8907은 알려진 클라이언트만 접속하도록 제한하고 전송 경로 전체를 보호하라고 요구한다. 실무에서는 관리 전용망(대역 외 관리망)에 두거나 IPsec으로 보호한다.

2025년 12월 발행된 RFC 9887(Standards Track)은 RFC 8907을 개정해 TACACS+를 TLS 1.3 위에서 쓰는 방법을 정의하고 기존 난독화 방식은 폐기했다. TLS 연결용으로 별도 포트(TCP 300, 서비스 이름 tacacss)를 배정해 평문·난독화 연결과 구분한다.

구분 TACACS+ RADIUS
전송 TCP 49(TLS는 TCP 300) UDP 1812(인증), 1813(계정 관리)
보호 범위 패킷 본문 전체 난독화(TLS 사용 시 전체 암호화) 비밀번호 속성(User-Password)만 MD5 기반으로 숨김
AAA 구조 인증·인가·계정 관리 분리 인증 응답(Access-Accept)에 인가 정보를 함께 실음. 계정 관리는 별도
인가 세밀도 명령 단위 인가 가능 접속 단위 속성(VLAN, 세션 시간 등)
주 용도 네트워크 장비 관리자 접근 통제 네트워크 접속(무선랜 IEEE 802.1x, VPN, 다이얼업) 사용자 인증
표준화 초안 기반, RFC 8907(정보), RFC 9887(표준, TLS) RFC 2865(인증), RFC 2866(계정 관리)

간단히 정리하면 RADIUS는 사용자의 네트워크 접속, TACACS+는 관리자의 장비 관리에 강하다. 두 프로토콜을 함께 쓰는 조직이 많다.

Diameter는 RADIUS의 후속으로 설계된 AAA 프로토콜로, 현행 규격은 RFC 6733이다. TCP나 SCTP를 쓰고(기본 포트 3868), TLS/TCP·DTLS/SCTP 보안 전송과 장애 조치를 지원하며, 주로 이동통신망(LTE 등)의 가입자 인증·과금에 쓰인다.

  • TACACS+ 서버를 이중화한다. 서버 장애 시 장비의 로컬 계정 폴백은 긴급용으로만 남기고 비밀번호를 금고에 보관한다.
  • 공유 비밀은 장비마다 다르게, 충분히 길게 설정하고 주기적으로 바꾼다. 가능하면 TLS(RFC 9887)를 쓴다.
  • 명령 계정 관리 로그를 SIEM으로 보내고, 설정 변경 명령은 변경 관리 기록과 대조한다.
  • TACACS+ 서버는 특권 계정 관리 체계와 연동해 장비 관리자 권한도 기한부로 부여할 수 있다.
  • TACACS+는 TCP 49, RADIUS는 UDP 1812·1813이다.
  • AAA를 분리하고 명령 단위 인가가 가능한 쪽은 TACACS+이다. 네트워크 장비 관리 접근 통제 문제에서는 TACACS+를 고른다.
  • 패킷 본문 전체를 보호하는 쪽은 TACACS+, 비밀번호만 숨기는 쪽은 RADIUS이다. 다만 TACACS+의 보호는 공식적으로 난독화이며 강한 암호화가 아니다.
  • 무선랜·VPN 사용자 접속 인증(802.1X)은 RADIUS가 일반적이다.
  • Diameter는 RADIUS의 후속이며 TCP·SCTP를 쓴다.