Two-way Trust

양방향 신뢰 관계는 서로가 서로를 신뢰하여 리소스에 접근할 수 있고, 각 도메인 객체가 다른 도메인에 마이그레이션 가능한 관계를 의미합니다. 일반적인 신뢰 모델에서 A ↔ B ↔ C 사이의 양방향 신뢰 관계가 구축되어 있을 때 A는 자동으로 C와의 양방향 신뢰 관계를 갖습니다.

또한 도메인 간의 트러스트 관계 혹은 단일 루트 도메인은 포레스트 단위로 취급되는데, 이때 각 포레스트 간의 신뢰 관계 또한 도메인 간의 신뢰 관계와 유사하게 구성됩니다. 단, 포레스트 관계에서는 A ↔ B ↔ C 환경에서 A 포레스트와 C 포레스트가 양방향 신뢰 관계를 갖는 전이성이 없으며 별도로 설정해야 합니다.

양방향 신뢰 관계는 일방향 신뢰 관계가 서로에게 이어진 형태이기 때문에 신뢰 계정은 양 도메인에 모두 생성됩니다.

양방향 신뢰 관계에서 할 수 있는 공격 행위는 일방향 인바운드 신뢰를 이용해 할 수 있는 공격과 동일합니다.

외부 도메인의 서비스에 접근 시 커버로스는 다음 단계를 거칩니다.

  1. 사용자는 도메인에 인증하여 TGT 발급 요청(AS-REQ)

  2. KDC는 사용자의 자격 증명을 확인 후 TGT 발급(AS-REP)

  3. 사용자는 외부 도메인 서비스에 대한 서비스 티켓을 요청(TGS-REQ)

  4. KDC는 요청한 서비스가 외부 도메인임을 인지하고 레퍼럴 티켓 발급(TGS-REP)

  5. 사용자는 레퍼럴 티켓을 통해 외부 도메인 KDC에 서비스 티켓 요청

  6. 외부 도메인은 레퍼럴 티켓을 복호화하여 확인 후 서비스 티켓 발급

  7. 사용자는 외부 서비스 이용

내부 도메인에 대한 TGS-REQ에서는 realm 필드를 내부 도메인으로 지정하되 sname-string 필드는 외부 SPN으로 지정합니다. 이때 KDC는 요청 들어온 SPN이 내부에 없을 경우 트러스트 관계가 있는지 확인 한 뒤, 있다면 외부 도메인의 SPN이라 여겨 레퍼럴 티켓을 발급합니다. 이 과정에서 KDC는 외부 도메인의 SPN 목록을 열거할 권한이 없기 때문에, 존재하지 않는 SPN을 입력하더라도 레퍼럴 티켓 자체는 반환됩니다.

TGS-REQ(내부 도메인)
TGS-REP(내부 도메인)

발급된 티켓을 가지고 외부 도메인에 서비스 티켓을 요청합니다. 이때는 처음 sname-string 필드에 명시했던 외부 도메인의 SPN을 기입하여 최종적으로 서비스에 대한 접근권을 획득합니다.

TGS-REQ(외부 도메인)
TGS-REP(외부 도메인)

Last updated

Was this helpful?