요약

  • RFC 9608은noRevAvail을, 인증 기관이 특정 최종 엔터티(단말) 인증서에 대해 폐지 정보를 공개하지 않을 것임을 정확히 선언하는 문장으로 정의합니다. 경로 처리는 폐지 단계를 건너뛸 뿐이며, 긍정적인 상태를 받는 것이 아닙니다.
  • 단기 자격 증명과 일부 장기 자격 증명에는 이 설계를 정당화할 이유가 있을 수 있지만, 안전성은 이 확장이 표현할 수 없는 실제 탐지, 보고, 봉쇄, 교체 시계에 달려 있습니다.
  • 폐지 없음 라이프사이클 영수증을 최소화한 형태로 두면, 누가 의존을 승인했는지, 왜 프로파일이 폐지를 생략했는지, 어떤 로컬 통제가 남아 있는지, 그리고 자격 증명을 어떻게 교체할지를 보존할 수 있습니다. 이는 Daniel Kade의 편집 제안이며, X.509 확장도 IETF 요구사항도 아닙니다.

집합 오류는 기술적으로 올바른 분기에서 시작됩니다. 경로 검증기는noRevAvail을 보고, 이 인증서에 대해 CRL이나 OCSP 상태가 존재하지 않을 것임을 인식하고, 통상적인 폐지 판정을 생략합니다. 오류는 그 이후, 인터페이스가 “이 단계는 적용되지 않는다”를 “이 자격 증명은 더 이상 의심할 이유가 없다”로 바꾸는 지점에서 도착합니다.

RFC 9608은 그런 주장을 하지 않습니다. 2024년 6월 IETF 제안 표준으로 발표된 이 문서는 RFC 5280을 갱신하여, 발급자가 특정 최종 엔터티 인증서에 대해 폐지 정보를 제공하지 않을 것임을 명시적으로 선언할 수 있게 합니다. 이 확장은 NULL 값을 가지고, non-critical이며, CA 인증서에 나타나서는 안 됩니다.

그 작은 구문은 중요한 정직의 행위를 수행합니다. 의존 주체가 발급자가 존재하지 않을 것이라고 선언한 출처에 시간을 낭비하지 않게 합니다.

그 정직은 불확실성을 좁히지만 변화를 제거하지는 않습니다. 개인 키는 유출될 수 있습니다. 기기는 소유자를 떠날 수 있습니다. 워크로드는 퇴역할 수 있습니다. 서비스는 권한을 철회할 수 있습니다. 발급 운영은 정책에서 벗어날 수 있습니다. 알고리즘은 늙어갑니다. 인증서에 폐지 채널이 없다고 해서 그 어느 사건도 불가능해지지는 않습니다.

“건너뜀”은 검증 분기를 설명한다

RFC 5280의 경로 처리는 통상적으로 인증서가 폐지되지 않았다는 판정을 포함합니다. RFC 9608은 그 분기를 수정합니다.noRevAvail이 존재하거나, OCSP 응답자 전용인ocsp-nocheck확장이 적용되는 경우 폐지 상태 판정은 건너뜁니다. 건너뛴 검사와 통과한 검사 사이의 구분이 거버넌스 사례의 기초입니다.

긍정적인 OCSP 응답은 응답자의 규칙과 시간 맥락에 따른 상태에 대한 단언입니다. CRL 조회는 공개된 객체에 일련번호가 실려 있는지 아닌지를 보여줄 수 있습니다.noRevAvail은 구조적으로 다른 것을 말합니다. CA가 그 범주의 정보를 공개하지 않을 것이라는 것입니다. 검증기는 상태 서비스에서 “좋음”을 배운 것이 아니라, 이 인증서에 대해 상태 서비스를 기대하지 않도록 배운 것입니다.

RFC 9608은 모순적인 신호를 금지함으로써 이 경계를 강화합니다.noRevAvail을 담은 인증서는 CRL Distribution Points, Freshest CRL, 또는 OCSP를 가리키는 Authority Information Access 방식을 동시에 담아서는 안 됩니다. 의존 주체는 그런 모순을 무효로 취급해야 합니다. 이 규칙은 소프트웨어가 서로 양립할 수 없는 두 발급자 선언 중 어느 쪽이 이길지 추측하는 것을 막습니다.

같은 규율이 파서 위에서도 살아남아야 합니다. 폐지 증거를 필수로 요구하는 서비스 정책은 그런 것을 약속하지 않는 인증서 프로파일과 모순됩니다.

안전한 응답은 일반적인 초록 경로 검증 결과가 정책을 지워버리게 두는 것이 아닙니다. 서비스는 이 폐지 없음 클래스를 명시적 대안 통제 모델 아래 수용하거나, 아니면 거부합니다. 프로파일과 애플리케이션은 사고 이후가 아니라 배포 전에 합의해야 합니다.

RFC는 또한ocsp-nocheck의 특수 역할을 보존합니다. 그 확장은 OCSP 응답자 인증서를 위해 존재합니다.noRevAvail은 그 확립된 설계를 흔들어서는 안 되는 산뜻한 대체물이 아닙니다. 공유 구현은 둘 다 만날 수 있지만, 감사 출력에는 어느 규칙이 분기를 건너뛰게 했는지, 어느 자격 증명 클래스가 관련되었는지가 기록되어야 합니다.

짧은 수명은 시계들 사이의 관계다

noRevAvail의 타당한 용법 중 하나는 단기 인증서입니다. 조직이 침해를 탐지하고, 보고하고, 보고를 검증하고, 상태 객체를 만들고, 그 객체를 의존 주체에게 배포하기도 전에 인증서가 만료된다면, 폐지 서비스는 실제로 노출을 줄이지 못할 수 있습니다. 조회를 피하는 것은 유용한 응답 창을 잃지 않으면서 지연과 운영 의존성을 줄일 수 있습니다.

그러나 “단기”는 스스로를 증명하는 형용사가 아닙니다. 10분은 높은 빈도의 서명 시스템에서는 길 수 있고, 연결이 끊긴 센서 네트워크에서는 무시할 수 있습니다. 24시간은 한 사고 프로세스에는 맞고 다른 프로세스에는 못 미칠 수 있습니다. 요구되는 비교는 자격 증명의 남은 유효 수명과, 탐지·판단·봉쇄·교체의 전체 사슬 사이의 비교입니다.

RFC 9608은 수명이 충분히 짧지 않은데 이 확장을 사용하면 공격자에게 기회를 만든다고 경고합니다. 이는 보편적인 수치 임계값이 아니라 시계를 정직하게 모델링하라는 지시입니다. 자동 발급 플랫폼은 몇 시간마다 인증서를 갱신하면서도 도난당한 키가 다음 인증서를 받는 것을 막지 못할 수 있습니다. 빠른 발급은 빠른 침해 탐지가 아니며, 빠른 만료는 잘못된 주체가 갱신할 수 있다면 교체가 아닙니다.

따라서 의존하는 애플리케이션에는notBefore와notAfter이상이 필요합니다. 키 침해가 어떻게 가시화되는지, 누가 발급을 멈출 수 있는지, 로컬 신원을 비활성화할 수 있는지, 새 키를 얼마나 빨리 바인딩할 수 있는지, 그리고 겹침 기간 동안 오래된 자격 증명이 계속 수용되는지 알아야 합니다. 그때에야 수명을 슬로건으로 광고하지 않고 통제로 평가할 수 있습니다.

ACME는 획득이 어떻게 대규모로 자동화될 수 있는지 보여줍니다. 그 자동화는 가치 있지만, 클라이언트가 인증서를 어떻게 획득하고 갱신하는지에 답합니다. 특정 의존 애플리케이션이 폐지 정보 없이 안전하게 운영될 수 있는지는 결정하지 않습니다. 등록 성공, 짧은 유효 기간, 운영 봉쇄는 별개의 속성입니다.

장기 신원은 부담을 다른 곳으로 옮긴다

RFC 9608은 장기 사례도 인정합니다. 공장 설치 기기 신원은 명확히 정의된 만료 없이 설계될 수 있고, 때로 먼 미래의notAfter값으로 표현됩니다. 발급자는 소유자가 설치된 키 자료의 침해를 보고할 채널이 없을 수 있고, 따라서 개별 인증서에 대해 실질적으로 공개할 폐지 정보가 없을 수 있습니다.

먼 미래의 날짜는 라이프사이클 모델의 표현이지, 그 키·소유자·펌웨어·알고리즘·서비스 권한이 그 날짜까지 건전하다는 증거가 아닙니다. 실제로 장기 자격 증명은 이 구분을 더 중요하게 만듭니다. 물리적 기기는 재판매될 수 있습니다. 그 소프트웨어는 지원 종료에 도달할 수 있습니다. 조직적 소유자는 해체될 수 있습니다. 암호 알고리즘은 받아들여질 수 없게 될 수 있습니다. 로컬 애플리케이션은 X.509 객체가 구문상 유효하게 남아 있는 동안 그 기기를 인식하지 않을 수 있습니다.

발급자 통보가 불가능한 곳에서 거버넌스는 실패 통보가 불필요하다고 가장해서는 안 됩니다. 대안 통제면을 찾아야 합니다. 등록 기록, 소유권 바인딩, 보안 하드웨어 증명, 이상 신호, 기기 격리, 서비스 거부 규칙, 키 교체 절차, 제조사·운영사 권고, 그리고 체계적 실패에 대한 트러스트 앵커 대응. 이 통제들은 CRL이나 OCSP와 동등하지 않습니다. 그 가치는 정확히 다른 계층에서 작동한다는 점에 있습니다.

로컬 봉쇄는 정확하게 명명되어야 합니다. 계정 비활성화, 인증서-역할 매핑 제거, 기기 격리, 워크로드 중단은 특정 환경에서의 사용을 막을 수 있습니다. 그 어느 것도 X.509에서 인증서를 폐지하는 것이 아닙니다. 그것들을 폐지라고 부르면 다른 의존 주체에게 잘못된 기대를 만듭니다. 로컬 봉쇄라고 부르면 운영자가 실제로 자기 통제 아래 있는 것을 검증할 수 있습니다.

교체는 또 하나의 독립된 상태입니다. 같은 침해된 키를 인증한다면 새 인증서로는 충분하지 않습니다. 서비스가 여전히 오래된 매핑을 승인한다면 새 키로도 충분하지 않습니다. 성공적인 전환에는 키 생성, 등록, 현재 권한의 바인딩, 배포, 오래된 로컬 수용의 철회, 그리고 정상 트래픽이 이동했다는 증거가 필요합니다. 장기 신원은 PKI 계층의 유일한 구제가 체계적 수준이 되기 전에, 그 전에 그 경로를 갖추어야 합니다.

CA 폐지는 규모에 대한 경고다

RFC 9608의 보안 고려 사항은 오용에 대해 이례적으로 냉정합니다.noRevAvail이 부적절하게 적용되고 의존 주체들이 침해된 인증서를 계속 신뢰한다면, PKI 내에서 그것이 식별하는 유일한 구제는 CA의 폐지입니다. 그것은 인증서별 응답의 편리한 대체물이 아닙니다. 프로파일이나 발급 권한 수준의 오류가 폭발 반경을 하나의 자격 증명에서 전체 모집단으로 확대할 수 있다는 신호입니다.

CA를 폐지하면 그에 연쇄되는 모든 유효한 인증서가 혼란에 빠질 수 있습니다. 트러스트 앵커 변경은 느리고, 고르지 않고, 애플리케이션별일 수 있습니다. 어떤 의존 시스템은 오프라인일 수 있습니다. 다른 시스템은 체인을 고정하거나 서로 다른 일정으로 신뢰를 갱신할 수 있습니다. 필요할 때 CA 폐지가 간단할 것이라고 가정하는 거버넌스 모델은 가장 어려운 의존성을 미뤄둔 것일 뿐입니다.

그 문장은 또한 CA 운영에 대한 신뢰가 왜 중요한지를 명확히 합니다. 발급자는 인증서 정책, 인증 실무 선언서, 프로파일 통제, 인시던트 탐지와 대응을 유지해야 합니다. RFC 3647은 유용한 구분을 제공합니다. 인증서 정책은 클래스나 커뮤니티에 대한 요구사항을 기술하고, 인증 실무 선언서는 발급자가 자기 실무와 통제를 어떻게 구현하는지를 기술합니다. 단일 확장은 그 제도적 기록을 담을 수 없습니다.

의존 주체에게 “이 인증서에는noRevAvail이 있다”는 말은 명명된 정책과 프로파일 버전으로 이어져야 합니다. 왜 이 자격 증명 클래스가 적격이었는가? 그 이유가 짧은 수명, 기기 라이프사이클, 도달 불가능한 주체 모집단 또는 다른 유한한 사례였는가? 어떤 모순적 포인터가 배제되었는가? 발급자가 어떤 모니터링과 인시던트 약속을 했는가? 프로파일이 그 경계 밖에서 사용되면 어떻게 되는가?

신뢰는 영구 승인이 아닙니다. 정책 버전은 바뀌고, 통제는 퇴화하고, 공급자는 합병하고, 알고리즘은 늙어가고, 인시던트 증거는 나타납니다. 서비스는 원래 인증서가 변형되었다고 주장하지 않으면서 수용 결정을 재검토할 수 있어야 합니다. 거버넌스란 증거가 바뀔 때 로컬 의존을 수정하는 능력입니다.

경로 유효성이 현재의 권한을 확정하지는 않는다

유효한 인증 경로는 유한한 집합의 관계를 증명합니다. 서명이 검증되고, 선택한 신뢰 입력 아래 발급자가 연쇄되고, 이름과 제약이 처리되고, 시간 조건이 성립하고, 적용되는 정책 규칙이 성공합니다.noRevAvail과 함께 폐지 분기는 의도적으로 부재합니다. 그 결과는 주체가 여전히 업무 역할을 갖고 있음을, 기기가 여전히 원래 소유자에게 할당되어 있음을, 워크로드가 여전히 승인되어 있음을, 또는 개인 키가 한 번도 복사된 적이 없음을 증명하지 않습니다.

그것들은 X.509의 결함이 아닙니다. 다른 질문들입니다. 문제는 시스템이 하나의 프로토콜 결과를 그 모든 것의 대리물로 사용할 때 시작됩니다. 경로 엔진은 종료된 계약, 자산 처분, 침해된 관리자 계정, 로컬 리스크 판단을 관찰할 수 없습니다. 다른 시스템이 그 증거를 수용에 연결해야 합니다.

Lu Heng의 틀은 규격을 제도 전체로 만들지 않기 때문에 여기서 유용합니다. 규격은 최소 공통 언어를 정의합니다. 채택은 자발적이고 지역화됩니다. 동작하는 코드는 특정 해석을 실행합니다. 관찰된 결과는 미래의 결정에 반영됩니다. RFC 9608은 발급자의 채널 부재 선언을 상호운용 가능하게 만들 수 있지만, 수용하고, 계속하고, 봉쇄하고, 교체하라는 지역화된 결정은 의존 서비스의 책임으로 남습니다.

가장 중요한 상태 표시는 가장 극적이지 않은 것일 수 있습니다. “경로 유효; 폐지는 프로파일에 따라 제공되지 않음; 로컬 수용은 검토일까지 활성.” 각 절에는 소유자가 있고 독립적으로 바뀔 수 있습니다. 전역 초록 배지는 그 구조를 숨깁니다. 다중 상태 기록은 검토 가능하게 만듭니다.

폐지 없음 라이프사이클 영수증

실질적인 수리는 또 하나의 범용 인증서 필드가 아닙니다. 폐지 정보 채널 없이 의존하기로 한 결정을 위한, 로컬이고 최소화된 영수증입니다. 영수증은 수용 시스템과 증거 레지스터 옆에 놓여야 하며, 공개 인증서 안에도, 공개 기기 목록에도 놓여서는 안 됩니다.

발급 또는 최초 수용 시점에 영수증은 인증서와 발급자의 해시, 인증서 프로파일, 관련 CP·CPS 버전,noRevAvail이 적절한 이유, 유효성 모델, 그리고 그것을 수용한 애플리케이션을 바인딩할 수 있습니다. 결정 소유자와 정책 규칙을 이름으로 기록하고, 금지된 CRL·OCSP 포인터가 부재했음을 기록하고, 어느 검증기 분기가 건너뛰어졌는지 식별할 수 있습니다.

계속 운영하는 동안 영수증은 대안적 침해 신호, 키 보관 증거, 기기·워크로드 상태, 발급자 통지, 예정된 검토 또는 만료 시계를 가리킬 수 있습니다. 주체 데이터세트 전체, 개인 키, 독점 토폴로지, 인시던트 자료를 복제해서는 안 됩니다. 참조, 해시, 타임스탬프, 범위가 한정된 결과가 보통 더 적은 노출로 결정을 증명합니다.

대응을 위해 영수증은 로컬 비활성화 경로, 키·인증서 교체 경로, 발급자 에스컬레이션, 트러스트 앵커 비상 계획, 최종 처분을 명명할 수 있습니다. 나중의 검토자는 네 가지 질문에 답할 수 있어야 합니다. 누가 폐지 없이 의존을 수용했는가, 어떤 유한한 근거 위에서인가, 어떤 신호가 그 결정을 다시 열 수 있는가, 그리고 오래된 권한은 실제로 어떻게 철회되었는가.

영수증은 CRL, OCSP 응답 또는 IETF 명령인 것처럼 꾸며서는 안 됩니다. 전역 상태를 만들지 않고 인증서 의미론을 바꾸지 않습니다. 의존하는 조직이 부재한 폐지를 명시적 운영 조건으로 취급했다는, 영구적 안전 약속이 아니라는 증거입니다.

명제들을 분리해 두어라

시스템은 이제 더 정확한 이야기를 할 수 있습니다. 발급자는 최종 엔터티 프로파일을 선택하고 폐지 정보를 공개하지 않을 것임을 선언했습니다. 인증서 구문은 이를 준수했고 모순적 상태 포인터를 담지 않았습니다. 경로 검증기는 폐지 분기를 건너뛰었습니다. 애플리케이션은 명명된 정책 아래 그 자격 증명 클래스를 수용했습니다. 동작 중인 증거는 범위 안에 남았습니다. 증거가 바뀌었을 때, 로컬 소유자가 사용을 봉쇄하고 키를 교체하거나 발급자 수준 실패를 에스컬레이션했습니다.

그 명제 중 어느 하나가 실패해도 다른 것들이 모두 거짓이 되지는 않습니다. 인증서는 구문상 올바르게 파싱되는 동안 로컬 권한이 끝났을 수 있습니다. 단기 자격 증명은 빠르게 만료되는 동안 도난당한 키가 여전히 갱신할 수 있습니다. 기기 신원은 암호적으로 유효한 채로 소유권이 바뀔 수 있습니다. 발급자는 자기 프로파일을 따르는 동안 애플리케이션이 그 프로파일이 더 이상 자기 리스크에 맞지 않는다고 판단할 수 있습니다.

RFC 9608은 부재를 명시적으로 만들어 상호운용성을 개선합니다. 거버넌스의 성취는 그 명시적 부재를 상상의 증거로 만들지 않는 것입니다. 폐지 경로가 없다는 것은 폐지 경로가 없다는 뜻입니다. 어떤 사건도 신뢰 철회를 정당화할 수 없다는 뜻이 아닙니다.

출처