요약
- NNTP의
LIST ACTIVE상태는 특정 클라이언트에 대한 개인화된 권한 판정이 아니라, 서버가 어떤 그룹으로의 게시물을 평소에 어떻게 처리하는지를 보고했습니다. y로 표시된 그룹도 현재 클라이언트를 거부할 수 있었고, 특권을 가진 클라이언트는n으로 표시된 그룹에 게시할 수도 있었습니다.POST응답이 실제 작동 증거로 남았습니다.- 카탈로그 가시성, 인증, 사이트 권한 부여, 기사 주입 그리고 최종 독자 도달은 의도적으로 분리된 통제 지점이었습니다.
권한처럼 보이지만 더 작은 역할을 하던 신호
독자가 서버의 활성 그룹 목록을 연다고 상상해 봅시다. 어느 한 행이y로 끝납니다. 화면은 초록색 작성 버튼을 띄웁니다. 독자는 20분 동안 글을 쓰고POST를 보냈고, 기사 본문이 시작되기도 전에440 Posting not permitted를 받았습니다.
이 과정에서 서버가 고장 났을 필요는 전혀 없습니다. 문제는 해석에 있었습니다. 그 행은 그룹을 설명했고, 거부는 지금 이 연결에서 이 순간의 이 클라이언트를 설명했던 것입니다.
반대 사례는 더욱 알기 쉽습니다.n으로 끝나는 행은 평소 게시가 허용되지 않는다는 뜻이지만,RFC 3977은 특별한 권한을 가진 클라이언트가 거기에 게시할 수 있도록 허용합니다. 규격은 그 권한을 정의하지 않습니다. 카탈로그 플래그가 보편적 권한 체계로 굳어지지 않도록 그 가능성을 일부러 남겨 둔 것입니다.
이것은 인터넷 설계에서 반복되는 문제의 역사적 사례로, 특히 깔끔한 예입니다. 컴팩트한 발견 표면은 독자가 그것이 어떤 종류의 진실을 담는지 알고 있을 때만 유용합니다.
경고는 처음부터 있었습니다
1986년에 발표된RFC 977은LIST응답을 그룹 이름, 마지막 기사 번호, 첫 기사 번호, 게시 플래그의 행들로 정의했습니다. 플래그는y또는n으로, 뉴스그룹으로의 게시가 허용되는지 금지되는지를 나타냈습니다.
다음 문단을 읽기 전까지는 개인적인 것처럼 들립니다. RFC는 목록이 그룹의 게시를 허용한다고 적혀 있어도 클라이언트에 대해서는 게시가 금지될 수 있다고 경고했습니다. 그룹 플래그는 부분적으로 중재(moderated) 또는 다이제스트 그룹이 서로 다른 평상시 경로를 따르기 때문에 존재했습니다. 그리고 그것은 NNTP 서버가 클라이언트에 부여하는 권한과 명시적으로 독립적이라고 규정했습니다.
실제 개인 단위의 결정은 다른 곳에 나타났습니다. 연결 인사말이 그 순간 게시가 가능한지 클라이언트에 알려 주었습니다. 더 결정적으로,POST는 서버가 기사를 받을 준비가 되었으면340을, 설치 환경에 따른 이유로 게시가 금지되었으면440을 돌려 보냈습니다.
따라서 초기 프로토콜은 비슷해 보이지만 서로 다른 청중을 위해 존재하는 사실을 이미 두 개 이상 담고 있었습니다. 목록은 독자가 그룹의 성격을 이해하도록 돕고, 명령 응답은 이 클라이언트가 진행할 수 있는지를 알려 주었습니다.
LIST ACTIVE는 경계를 더 선명하게 만들었다
RFC 3977은 이후 이 형식에LIST ACTIVE라는 이름을 붙이고 그 범위를 더 명확히 했습니다. 필터가 없으면 서버는 클라이언트가GROUP으로 선택할 수 있는 모든 그룹을 나열합니다. 이는 이미 로컬이며 연결 대상의 관점이지, 유스넷 전체의 지도가 아닙니다.
각 행에는 그룹 이름, 상하한 고점(hi/low water mark), 그리고 그 서버에서의 현재 상태가 담깁니다. 전형적인 상태 값은 허용되는 게시를 뜻하는y, 허용되지 않는 게시를 뜻하는n, 게시물을 중재자에게 전달함을 뜻하는m입니다. 알 수 없는 상태는 클라이언트에 어떤 정보도 주지 않으며, 비공개 확장이 표준 의미를 몰래 차용할 수 없습니다.
그다음 결정적인 문장이 옵니다: 상태는 뉴스그룹으로의 게시물이 평소에 어떻게 처리되는지를 나타내며, 반드시 특정 클라이언트에 맞춰 조정되는 것은 아닙니다. 게시가 금지된 클라이언트는y그룹에서도 금지된 채로 남습니다. 특별한 권한을 가진 클라이언트는n그룹에 게시할 수도 있습니다.
"평소에(normal)"라는 단어는 실제로 아키텍처상 역할을 합니다. 그 행을 역량 토큰이 아니라 기준 워크플로우에 대한 진술로 바꿉니다. 목록은 모든 계정, 발신 주소, 세션 모드, 로컬 예외를 평가했다고 주장하지 않으면서도 작성과 표현에 정보를 줄 수 있습니다.
실제 시도에는 자체 증거 사슬이 있었다
RFC 3977에서 서버는POST에 대해 여러 줄 기사 본문을 받기 전에340으로, 게시가 허용되지 않을 때440으로 응답합니다. 본문을 받은 뒤에는 수락이면240, 실패면441로 답합니다. 이 단계들이 중요합니다.
카탈로그 행은 가져오기가 값싼 정보입니다. 본문 이전의 거부는 초안 노출을 피하게 해 줍니다. 본문 이후의 실패는 서버가 내용을 들었으나 수락하지 않았음을 말합니다. 심지어240조차 독자가 이미 기사를 검색할 수 있음을 증명하지 않습니다. 추가 처리, 중재 또는 전송이 남아 있을 수 있습니다.
이 사건들을 하나의 "게시 가능" 배지로 압축하면 유용한 증거가 파괴됩니다. 운영자는 불일치가 낡은 그룹 메타데이터 때문인지, 미인증 세션 상태 때문인지, 계정 정책 때문인지, 본문 검증 때문인지, 중재 라우팅 때문인지, 이후 가시성 때문인지 알아야 합니다. 프로토콜은 각 경계에 구별되는 관측점을 마련해 두었습니다.
인증은 클라이언트를 바꿀 수는 있어도 플래그의 의미를 바꾸지 않았다
RFC 4643은 NNTP 인증을 공식화했습니다.480응답은 명령이나 자원을 사용하기 전에 클라이언트가 인증 및/또는 권한 부여를 받아야 함을 나타냅니다. AUTHINFO가 성공하면 서버는 다른 역량 집합을 광고할 수 있습니다.
그러나 성공이 보편적 접근을 뜻하지는 않습니다. RFC 4643은 서버가 인증을 완료하면서 일부 또는 모든 자원을 거부할 수 있고, 신원이 확인된 뒤502가 영구적 거부를 표시할 수 있다고 말합니다. 자격 증명은 세션 안에 주체(principal)를 확립할 뿐입니다. 그 주체가 무엇을 할 수 있는지는 사이트 정책이 결정합니다.
이 구분은 세 가지 주장을 서로 떨어뜨려 둡니다.LIST ACTIVE는 그룹의 평상시 처리를 보고하고, AUTHINFO는 수락된 신원 전환을 기록하며, 새 명령 응답은 현재 권한 부여를 적용합니다. 어느 하나도 나머지 둘을 안전하게 대신할 수 없습니다.
이 분리는 그룹 이름만으로 키가 구성된 권한 캐시가 안전하지 않은 이유도 설명해 줍니다. 신원, 전송 보호, 엔드포인트, 정책은 모두 바뀔 수 있는데 화면의y/n/m행은 그대로일 수 있습니다.
중재는 허점이 아니라 하나의 경로였다
m상태는 어휘를 완성합니다: 게시물은 그룹 중재자에게 전달될 것입니다. 그러나 이것은 중재자를 인증하거나 기사 승인을 보장하지 않습니다.RFC 5537은 게시 에이전트, 주입 에이전트, 릴레이 에이전트, 서빙 에이전트, 읽기 에이전트, 중재자를 구별하는데, 각각이 기사의 여정에서 서로 다른 부분을 담당하기 때문입니다.
이 구분이 이 이야기의 한계를 정합니다. 클라이언트가 제출을 허용받았다고 모든 필드의 작성자가 되는 것은 아닙니다. 서버가 초안 기사를 받아 들였다고 해서 하류 릴레이나 독자 가시성이 증명되지는 않습니다. 카탈로그가 중재 처리를 가리킨다고 해서 승인 권한이 누구에게 있는지 증명되지 않습니다.
이전의 Sofia Ren의Approved관련 기사는 바로 그 중재자 권한 경계를 다룹니다. 여기서m은 활성 목록이 평상시 처리 경로를 설명한다는 증거로만 의미가 있습니다. 핵심 불일치는 여전히 그룹 정책과 클라이언트 권한 사이에 있습니다.
등록은 별개의 동사들을 보존했다
IANA NNTP 파라미터 레지스트리는LIST,POST,AUTHINFO,READER를 별개의 역량 레이블로 등록합니다. 등록이 어떤 서버가 현재 이들을 제공함을 증명하지는 않지만, 서로 다른 기능에 상호운용 가능한 이름을 제공합니다.
이것은 관료적 장식이 아닙니다. 발견, 제출, 신원, 읽기는 서로 독립적으로 변할 수 있습니다. 이들을 별개로 관찰하는 클라이언트는 인증이나 모드 변경 이후 자신의 모델을 갱신할 수 있습니다. 이것을 하나의 초록불로 합친 제품은 선이 실제로 말한 것보다 더 많은 것을 약속할 위험을 안습니다.
오래 남는 교훈은 증거의 절제입니다. 카탈로그는 많은 그룹을 컴팩트하게 기술하기 때문에 가치가 있습니다. 넓은 기술이 개인화된 결정으로 격상되는 순간에만 위험해집니다. NNTP는 최종 관문을 원래 있어야 할 곳에 두었습니다: 실제 명령 앞에서, 실제 세션 안에서, 기록하고 이의를 제기할 수 있는 응답과 함께.
초록불은 실제였습니다. 단지 당신의 것이 아니었을 뿐입니다.
출처
회원 브리핑
프로필 심층 컨텍스트
올바른 멤버십 등급으로 로그인하면 전체 브리핑과 출처 노트를 볼 수 있습니다.
Strategic Circle 전용
Strategic Circle
모든 독자에게 공개됩니다. 가입 후 로그인하면 프로필 브리핑를 열람할 수 있습니다.
Strategic Circle 가입하기Leadership Alliance 전용
Leadership Alliance
자격을 갖춘 IP 자산 소유자 및 운영진을 위한 콘텐츠입니다. 로그인하면 Leadership Alliance 브리핑을 열람할 수 있습니다.
Leadership Alliance 가입하기





