요약

  • 새 개인 초안은 에이전트 이름 아래 발급자, OAuth 클라이언트, 전용 대상이 담긴 DNS 기록을 두고 수신자가 권한 없는 증명 토큰을 확인하도록 한다.
  • 기록 삭제는 에이전트 철회가 아니다. 새 수신자는 연결 없는 발신자로 처리할 수 있다. 새 토큰을 막으려면 클라이언트를 비활성화하고 기존 토큰의 유효 기간도 계산해야 한다.

문패를 떼자 처음 온 경비원이 신분증을 묻지 않는다. 10월 20일 초안이 구별하는 두 권한을 혼동하면 생기는 장면이다. 에이전트 이름 아래의 _agent-oauth TXT 기록에는 토큰 발급자, OAuth 클라이언트 ID와 전용 대상이 실린다. 기록은 확인할 곳을 가리킨다. 발급 서버의 전원은 아니다.

에이전트는 운영 기관의 인가 서버에서 JWT 접근 토큰을 받아 호출에 넣는다. 수신자는 DNS와 발급자의 공개키를 조회한 뒤 서명, 클라이언트, 대상, 토큰 나이를 비교한다. 유효한 연결 기록이 있으면 토큰을 요구하고, 잘못된 기록이면 호출을 거절한다. 기록이 없으면 연결 없는 발신자에게 적용하는 평소 정책으로 돌아간다.

그 토큰은 접근 허가증이 아니다. 초안은 권한을 싣지 말고 일반 자원 서버가 받아들이지 않는 전용 대상을 쓰라고 한다. 발신자 이름은 보호된 통신 경로나 DPoP 같은 키 결합 토큰으로 따로 확인한다. 연결 검사를 마친 뒤에도 어떤 작업을 허용할지는 수신자가 정한다. 한쪽의 DNS 기록으로 다른 쪽의 운영 권한을 만들 수는 없다.

DNS 기록만 없애 보자. 에이전트를 처음 만나는 수신자는 연결을 찾지 못해 보통 규칙을 적용한다. 과거 유효한 기록을 본 수신자는 DNS 조회가 잠시 실패해도 토큰을 계속 요구하고, 성공한 조회로 삭제를 확인해야 그 상태를 바꾼다. 네트워크 장애가 검사 우회가 되어서는 안 되기 때문이다. 초안의 철회 절은 기록 제거가 에이전트 철회 방식이 아니라 새 수신자에게 연결 토큰을 요구하지 않게 하는 행위라고 명시한다.

새 토큰 발급을 멈추려면 운영자가 인가 서버에서 OAuth 클라이언트를 비활성화해야 한다. 이미 받은 토큰은 자체 만료나 수신자의 최대 허용 나이까지 쓸 수 있고 DNS와 키 캐시 시간도 지연에 들어간다. 초안은 일반적인 최대 나이로 120분 이하를 권하며, 결제나 운영 시스템 변경처럼 결과가 빠른 작업에는 5~15분을 예로 든다. 실제 배포에서 측정한 철회 속도는 제시하지 않는다.

가짜 DNS 응답은 공격자 클라이언트로 연결을 바꾸고, 답변 차단은 기억 없는 수신자에게 연결을 숨길 수 있다. 초안은 영역 서명과 DNSSEC 검증을 권한다. IETF 등록 기록의 상태는 여전히 I-D Exists다. 종료 시험은 기록 삭제, 클라이언트 비활성화, 옛 토큰 만료를 따로 실행해야 한다.