요약

  • Roughtime 개정판 19는 연쇄적이고 서명된 교환을 통해 최소 한 대의 서버가 인과 순서와 불일치하는 시간을 제공했음을 증명할 수 있는 실험적 와이어 프로토콜을 정의합니다. 이 증명은 어느 서버가 잘못되었는지 특정하지 않고도 모순을 확립할 수 있습니다.
  • 이 초안은 신뢰 서버 목록과 부정행위 보고서의 형식을 명시하지만, 목록 유지 관리, 보고서 수용, 심판 및 제명 정책은 명시적으로 범위 밖으로 둡니다. 이 절차들은 암호학이 제거하는 구현 세부 사항이 아니라 보안에 필수적인 사항입니다.
  • 휴대 가능한 제명 수신증(portable impeachment receipt)은 보고서 해시, 귀속 한계, 승인된 검토, 처분, 이전 및 신규 서명 목록 해시, 배포 증거, 클라이언트 채택, 정정 경로를 하나로 묶어야 합니다. 이는 Daniel Kade의 거버넌스 제안이지 IETF 요구 사항이 아닙니다.

시간 응답은 진위성이 확인되면서도 틀릴 수 있다

보안 시간은 어색한 의존 관계에서 시작됩니다. 인증서는 검증되기 전에 대체로 정확한 시계를 필요로 하는 경우가 많은 반면, 장기 보관 후 나온 기기는 시간을 알아내기 전에 인증된 인프라를 필요로 할 수 있습니다. Roughtime은 이런 클라이언트에게 대략적이고 인증된 시간 구간을 제공하고, 신뢰 서버들이 서로 모순될 때 외부 증거를 남기도록 설계되었습니다.

현재 사양은draft-ietf-ntp-roughtime-19입니다. 2026년 3월 17일에 실험적(Experimental) 지위를 의도한 채 발행되었습니다. IESG가 그날 이를 승인했고, Datatracker는 현재 이를 RFC 편집자 대기열에 두고 있습니다. 9월 4일에는 프로덕션 지위가 진행 중(Second Edit)으로 이동했습니다. 이는 중요한 절차적 사실이지만, 개정판 19는 발행될 때까지 인터넷 초안(Internet-Draft)으로 남아 있습니다. 이 증거 패키지에서 RFC 번호는 없습니다.

가장 단순하게는, 클라이언트가 새 nonce를 보냅니다. 서버는 중점(midpoint)과 반경(radius)을 포함한 서명된 응답을 반환합니다. 이는 수학적으로 정확한 순간에 대한 주장이 아니라, 서버가 실제 시간이 그 안에 있다고 말하는 구간입니다. 응답은 Merkle 트리를 통해 클라이언트의 nonce에 커밋합니다. 따라서 서명은 특정 장기 키의 소유자가 그 요청을 본 뒤에 응답을 생성했음을 보여줄 수 있습니다.

이것은 인증이지 진실이 아닙니다. 완전히 유효한 서명이라도 잘못 구성된 시계, 침해된 서버 또는 의도적으로 거짓인 구간을 포괄할 수 있습니다. Roughtime의 독특한 단계는 클라이언트가 측정을 연쇄하도록 허용하는 것입니다. 한 응답에서 파생된 자료가 다음 요청의 일부가 되므로, 서명된 구간들을 교환이 발생했어야 하는 순서와 대조해 검증할 수 있습니다.

구간들이 그 인과 순서에 맞지 않는다면, 클라이언트는 스크린샷이나 주장보다 강한 것을 손에 넣습니다. 모순을 입증하는 데 필요한 요청, 응답, 무작위 자료, 공개 키를 보존할 수 있습니다. 보고서는 독립적으로 검증 가능합니다. 그러나 논리적 결론은 한정되어 있습니다. 최소 한 대의 서버가 잘못된 시간을 보냈다는 것뿐입니다. 많은 연쇄에서 수학만으로는 어느 쪽인지 특정하지 못합니다.

첫 번째 거버넌스 규칙이 여기서 직접 도출됩니다. 서명은 하나의 진술을 하나의 키에 귀속시킵니다. 연쇄된 모순은 그 진술들이 모두 참일 수 없음을 확립합니다. 어느 사실도 자동으로 잘못을 올바른 참여자에게 귀속시키지 않습니다.

초안은 스스로 제도적 경계를 긋는다

개정판 19는 패킷 밖에 남겨진 작업에 대해 이례적으로 솔직합니다. 신뢰 서버 목록을 유지·배포하고 부정행위 보고서를 처리하는 생태계에 대한 운영 경험이 필요하다고 명시합니다. 문서는 의도적으로 자신을 와이어 프로토콜과 두 가지 데이터 형식으로 한정합니다. 목록이 어떻게 유지되고, 어떻게 배포되며, 어떤 정책이 그것을 지배하는지는 정의하지 않습니다.

이 경계는 프로토콜 개요에도 다시 나타납니다. 보고서가 제명으로 이어지려면 별도의 검토 및 제명 메커니즘이 필요하며, 이를 정의하는 것은 범위를 벗어납니다. 보고 섹션은 보고서를 수용하거나 거부하는 운영 규칙이 범위를 벗어난다고 말합니다. 보안 고려 사항은 신뢰 서버 목록 유지와 위반 사항 심판을 위한 인프라와 절차가 보안에 필수적이라고 말합니다.

이는 패킷에 필드를 하나 더 추가해서 고칠 수 있는 결함이 아닙니다. 기능의 분리입니다. 와이어 프로토콜은 좁은 사건을 검증 가능하게 만들 수 있습니다. 생태계는 누가 증거를 받는지, 어떻게 검증하는지, 충분한지 여부, 어떤 조치가 따르는지, 그 조치를 어떻게 공표하는지, 클라이언트가 언제 이를 채택하는지를 결정해야 합니다.

보고서를 “부정행위(malfeasance)”라고 부르면 이 분리가 가려질 수 있습니다. 일상 언어에서 이 단어는 잘못된 의도를 암시합니다. 증거가 실제로 드러내는 것은 오류, 침해, 키 오용, 결함 있는 시간 입력 또는 원인 조사가 아직 필요한 다른 실패일 수 있습니다. 초안의 결과는 모순 증명이지 동기에 대한 판정이 아닙니다.

따라서 운영자는 보고서의 유효성을 자동적 유죄 판정으로 만들어서는 안 됩니다. 올바른 첫 상태는검증된 모순, 귀속 대기입니다. 이 표기는 암호학이 뒷받침하는 가장 강한 사실을 보존하면서, 파일명으로부터 확실성을 빌리지 않습니다.

서버 목록은 신뢰 프로그램이지 전화번호부가 아니다

Roughtime의 장기 공개 키는 신뢰의 뿌리입니다. 클라이언트는 같은 주체가 운영하지 않는 최소 세 대의 가동 중인 서버 목록이 필요합니다. 감지된 부정행위에 대한 지식이 미래의 측정을 바꿀 수 있도록, 어떤 서버가 여전히 신뢰할 만한지에 대한 인식을 갱신해야 합니다.

초안은 그 목록을 위한 공통 JSON 형식을 정의합니다. 항목은 이름, 주소, 버전, 장기 공개 키를 담을 수 있습니다. 이 객체는 원본 목록과 보고서용 HTTPS 엔드포인트를 식별할 수도 있습니다. 이 형식에 대한 지원은 선택 사항이며, 클라이언트는 다른 구성 메커니즘을 사용할 수 있습니다.

이 선택 가능성은 구조적으로 중요합니다. 형식은 이식성을 가능하게 하지만, 단일 보편 목록 발행자를 임명하지는 않습니다. 운영체제 공급자가 목록을 선별할 수 있습니다. 기업이 자체 목록을 유지할 수 있습니다. 연구 커뮤니티가 또 다른 목록을 공표할 수 있습니다. 서로 다른 클라이언트는 출처를 서로 다르게 가중하거나 개정판을 거부할 수 있습니다. 상상된 글로벌 관할권에서 무효 참여자가 되지 않고도 서로 다른 신뢰 집합을 형성할 수 있습니다.

그럼에도 목록 유지 관리는 권력 표면입니다. 키를 추가하면 클라이언트가 그 서명된 구간을 증거로 다루도록 초대하는 셈입니다. 키를 제거하면 채택하는 클라이언트들에서 그 서버가 미래 측정에서 배제될 수 있습니다. 제거를 지연하면 알려진 문제에 클라이언트가 노출된 채 남을 수 있습니다. 침묵 속 복원은 기존 보고서가 다른 곳에 남아 있더라도 제도적 기억을 지워버릴 수 있습니다.

따라서 유지 관리자는 주소 배포자 이상이지만 주권자 미만입니다. 그 결정은 그 목록을 선택하고 개정판을 채택하기로 한 클라이언트와 조직을 통해서만 효력을 갖습니다. 지속적인 질문은 목록 발행자가 “Roughtime에 대한 권위”를 갖는지 여부가 아니라, 어떤 클라이언트가 어떤 한정된 선정 결정을 어떤 갱신 및 탈출 조건 아래 그 발행자에게 위임했는가입니다.

증거는 보고 경로를 살아남아야 한다

클라이언트가 모순을 감지하고 기술적으로 가능하다면, 초안은 보고서를 생성하고 사용자에게 경고하며 다른 측정을 수행하라고 말합니다. 서버 목록이 보고서 URL을 제공한다면, 클라이언트는 HTTPS로 그곳에 보고서를 보내야 합니다.

보고서 형식은 요청 및 응답 바이트, 공개 키, 필요한 무작위 자료를 포함한 응답 객체들의 순서 있는 열을 보존합니다. 암호학적 검사를 재현하기에 충분합니다. 형식은 검사관의 서사를 담을 필요가 없습니다.

널리 퍼진 실패는 다른 운영 위험을 만듭니다. 많은 클라이언트가 같은 문제 서버를 발견하고 증거를 동시에 전송할 수 있습니다. 그래서 초안은 지수 백오프를 요구하고 한정된 재시도 타이밍을 권고합니다. 또한 서명 검사나 다른 프로토콜 검사의 실패만을 이유로 부정행위 보고서를 보내는 것을 금지합니다. 인과적 모순 증거에는 특정한 의미가 있습니다.

백오프는 수신자를 보호하지만, 거버넌스가 사라질 수 있는 대기열을 만듭니다. 클라이언트가 다음 재시도 시간만 보존하고 고유한 보고서를 폐기하면, 과부하 중에 증거가 유실될 수 있습니다. 수신 서비스가 서버 신원만으로 중복을 제거하면 서로 다른 연쇄를 하나로 묶어 실패의 규모나 위상을 가릴 수 있습니다. 모든 재시도를 새 사건으로 세면 겉보기 합의를 만들어낼 수 있습니다.

방어 가능한 수신자는 보고서를 내용 주소로 관리하고, 판단 없이 내구성 있는 보관을 확인하며, 바이트 단위 동일한 증거를 묶고 서로 다른 연쇄를 보존해야 합니다. 속도 제한은 전송을 지배해야 하지 진실을 지배해서는 안 됩니다. 제출 수신증은 “저장됨” 또는 “이미 보유 중”이라고 말해야 하지, 결코 “서버 제명됨”이라고 말해서는 안 됩니다.

귀속은 제한된 추론이다

세 서버가 하나의 연쇄에 나타나고 구간들이 모순된다고 가정하십시오. 첫 번째와 세 번째는 서로 일치하는 반면 가운데 응답이 불가능할 수 있습니다. 이 패턴은 가운데 키에 대한 강한 증거일 수 있지만, 검토는 여전히 모든 서명과 nonce 연결을 검증하고, 허용되는 구간 경계를 재구성하고, 윤초와 반경 처리를 점검하며, 결함 있거나 불완전한 수집을 배제해야 합니다.

다른 경우는 더 덜 깨끗합니다. 두 응답이 독립적 닻 없이 충돌할 수 있습니다. 여러 서버가 같은 운영자, 상류 시계 또는 소프트웨어 결함을 공유할 수 있습니다. 서비스 소유자가 올바르게 행동했는데도 키가 침해되었을 수 있습니다. 클라이언트가 사용한 목록 자체가 낡았거나 변조되었을 수 있습니다. 겉보기 이상치가 조직적 실패 집단에서 유일하게 올바른 증인일 수 있습니다.

Roughtime은 증거가 휴대 가능하고 응답이 지속적인 서버 신원을 담고 있기 때문에 도움이 됩니다. 그러나 귀속 모델을 명시할 필요를 없애지는 않습니다. 검토자는 증거가 하나의 키를 특정하는지, 후보 집합을 남기는지, 아니면 미해결 모순만을 증명하는지 공표해야 합니다. 외부 증거 — 운영자 원격 측정, 키 보관 기록, 독립 시간 소스 — 가 결론을 바꾼다면, 그 증거와 그 권위를 별도로 명명해야 합니다.

첫 번째 유효한 모순에서 자동 폐기를 하는 것은 귀속이 공짜라고 가장하는 방식으로 속도를 최적화하는 것입니다. 확실성 없이는 절대 행동하지 않는 것은 증거를 무용하게 만드는 방식으로 제도적 안락함을 최적화하는 것입니다. 실용적인 중간은 단계적 처분입니다. 한정된 조건 아래 격리 또는 가중치 하향, 조사, 근거 공표, 그리고 명시적 만료와 함께 제거·복원·유지입니다.

NTS는 다른 경계를 보호한다

RFC 8915로 표준화된 Network Time Security는 TLS를 키 확립에, 인증된 암호화를 NTP 교환에 사용합니다. 클라이언트에게 동기화 패킷이 선택된 서버로부터 왔으며, 명시된 모델 내에서 재전송되거나 변경되지 않았다는 암호학적 보증을 제공합니다.

이 보증은 필수적입니다. 그럼에도 인증된 서버의 시계를 올바르게 만들 수는 없습니다. Roughtime은 기기가 NTS 키 확립 인증서를 검증할 만큼의 시간을 얻도록 돕고, 서명된 시간 제공자들 사이의 모순을 노출할 수 있습니다. 두 메커니즘은 서로 다른 질문에 답하기 때문에 상호 보완적입니다.

RFC 9523의 Khronos 메커니즘은 또 다른 비교 대상입니다. 시간 이동 공격자에 대비한 NTP 서버 선정과 필터링을 강화합니다. Roughtime은 외부에서 입증 가능한 모순을 강조합니다. 선정은 휴대 가능한 고발 없이 한 클라이언트를 보호할 수 있고, 휴대 가능한 증거는 다음 신뢰 집합을 선정하지 않으면서 책임성을 지지할 수 있습니다.

RFC 8633은 이미 복수 시간 소스와 모니터링을 권고하고, RFC 7384는 악의적 소스 위협과 시간 및 보안 서비스 사이의 순환 의존성을 기술합니다. 이 문서들 어느 것도 목록 발행자의 제도적 선택이 암호학에서 저절로 나오게 하지 않습니다. 운영자는 진위성 있는 전송, 올바른 시간, 모순의 증거, 신뢰를 바꿀 권위 사이의 경계를 지켜야 합니다.

휴대 가능한 제명 수신증

빠져 있는 다리는 생태계를 중앙집중화하지 않고 설계될 수 있습니다. 이를휴대 가능한 제명 수신증이라 부르십시오. 새로운 Roughtime 메시지가 아닙니다. 목록 제공자의 결정과 클라이언트의 채택을 독립적으로 검열할 수 있게 하는 운영자 대상 기록입니다.

수신증은 불변 증거로 시작합니다. 부정행위 보고서의 내용 해시, 완전한 순서 있는 연쇄, 검증 소프트웨어와 버전, 모든 서명 및 nonce 연결에 대한 결과, 클라이언트가 사용한 신뢰 서버 목록의 정확한 해시입니다. 수집 맥락은 최소화하여, IP 주소나 기기 신원이 분석에 실질적으로 기여하지 않는 한 보존되지 않아야 합니다.

다음 섹션은 귀속을 기록합니다. 하나의 키가 특정되었는지, 여러 키가 후보로 남는지, 모순이 미해결인지를 기술합니다. 승인된 검토자를 명명하고, 이해 상충을 선언하고, 프로토콜 검증과 외부 운영 증거를 구분하며, 처분의 사유 코드, 신뢰도, 만료를 제시합니다.

조치는 별도 섹션입니다. 키가 격리, 제거, 재가중 또는 복원되면, 수신증은 이전 및 신규 목록 해시, 버전 또는 일련번호, 서명자, 효력 발생 시각을 기록합니다. 사람이 읽을 수 있는 설명은 그 기계 검증 가능한 사실들을 대체하지 않고 수반합니다. 잠정 조치는 명시된 증거로 갱신되지 않는 한 만료되어야 합니다.

배포에는 자체 증명이 주어집니다. 수신증은 공표 엔드포인트, 아카이브 또는 투명성 위치, 클라이언트에 제공되는 서명된 목록 객체를 식별합니다. 공표가 곧 채택이라고 주장하지 않습니다. 클라이언트 집단은 이전 및 신규 해시, 설치 지연, 거부 사유에 대한 프라이버시 보호 집계를 보고할 수 있습니다. 로컬 목록을 사용하는 기업은 공공 발행자의 기록을 위조하지 않고 다른 결정을 문서화할 수 있습니다.

마지막으로 수신증은 정정을 제공합니다. 서버 운영자는 귀속에 이의를 제기하고, 키 침해를 보여주고, 시계 소스를 바로잡거나 키를 교체할 수 있습니다. 검토자는 원본을 삭제하지 않고 잘못된 처분을 철회할 수 있습니다. 클라이언트는 역사의 조용한 재작성이 아니라 또 하나의 서명된 전환으로 복원을 볼 수 있습니다.

이 제안은 개정판 19의 규범적 텍스트가 아니라 Daniel Kade의 편집 설계입니다. 그 목표는 글로벌 심판소를 만드는 것이 아닙니다. 증명, 판정, 공표, 채택이라는 네 가지 사건이 “폐기(revoked)”라는 단어 하나로 압축되는 것을 막는 것입니다.

로컬 채택이 신뢰가 실제로 바뀌는 지점이다

가장 강한 공적 처분도 그것을 받지 않는 기기에는 아무 효과가 없습니다. 반대로 로컬 운영자는 공공 목록이 바뀌기 전에 키를 제거할 수 있습니다. 신뢰는 보도 자료가 아니라 운영 상태입니다.

그렇다면 입증된 모순에 대한 성공적 대응은 클라이언트 경계에서 측정되어야 합니다. 어떤 목록 해시가 설치되어 있는가? 언제 가져왔는가? 서명이 검증되었는가? 로컬 정책이 이를 수용했는가? 캐시된 또는 고정된 구성이 이를 무시했는가? 제거 후에도 최소 세 대의 독립적 가동 서버가 남아 있는가? 그 변경이 막으려던 위험보다 보안 부트스트랩을 더 불안정하게 만들었는가?

얇은 허리(thin-waist) 원칙이 여기서 유용합니다. 증거와 휴대 가능한 목록 형식은 표준화하십시오. 미래의 정책 선택은 코드를 돌리는 참여자들에게 남겨두십시오. 목록 제공자는 권고할 수 있습니다. 클라이언트는 채택, 지연, 포크 또는 거부할 수 있습니다. 비채택은 도덕적 위반이 아니지만, 운영자는 자신이 감수하기로 선택한 위험에 대해 여전히 책임이 있습니다.

Roughtime의 성취는 좁은 종류의 불일치를 부인하기 어렵게 만드는 것입니다. 그 절제는 부인 불가능한 증거가 다음에 누구를 신뢰해야 하는지 결정한다고 가장하지 않는 것입니다. 견고한 생태계는 이 두 성질을 모두 보존해야 합니다.

출처