요약

  • RFC 10015는 TLS 1.2 및 DTLS 1.2 클라이언트가 여러 구식 유한체 디피–헬만 및 정적 RSA 키 교환을 제공하지 않아야 하고(MUST NOT), 서버도 선택하지 않아야 한다고 규정한다. 정적 ECDH 및 고정 DH 클라이언트 인증서 유형은 여전히 “권장하지 않음(SHOULD NOT)” 수준이며, 운영은 이 구분을 유지해야 한다.
  • IANA의D플래그는 표준 판단을 기록한다. 이는 코드, 구성, 재로드, 엣지 리스너, 클라이언트 제안, 서버 선택 또는 예외 경로가 바뀌었음을 입증하지 않는다. 사용 중단 종결 영수증이 이 서로 다른 사실들을 하나로 모을 수 있다.

레지스트리 항목은 바뀌었다. 보안 대시보드는 초록으로 변했다. 그러나 오래된 호스트명 뒤에 잊힌 TLS 종단 장치 하나는 여전히 대시보드가 “사용 중단”이라 부르는 스위트를 협상할 수 있었다. 색상 변화는 그 프로세스에 아무런 영향을 주지 않았다.

이것이 바로RFC 10015가 드러내는 거버넌스 문제다. 이 문서는 TLS 1.2 및 DTLS 1.2 키 교환의 보안 태세에 대한 표준 트랙 업데이트다. 잘 이해된 암호학적 위험 집합에 대한 규범적 답을 더 정밀하게 만든다. 그러나 배포를 측정하거나, 구현을 제거하거나, 플릿을 검증한다고 주장하지는 않는다. 표준 상태와 실행 상태는 서로 다른 대상이다.

이 구분이 중요한 이유는 레지스트리 메타데이터가 유난히 자동화하기 쉽기 때문이다. 컴플라이언스 시스템은 IANA 표를 수집하고,D를 보고, 이를 정책 규칙으로 매핑해 통제 완료로 표시할 수 있다. 이 워크플로는 “완료”가 정책 원본이 업데이트되었다는 뜻일 때만 유용하다. 만약 노출된 어떤 엔드포인트도 해당 메커니즘을 제공하거나 선택할 수 없다는 뜻으로 받아들여지면, 대시보드는 분류를 측정으로 격상시킨 것이다.

표준은 하나의 단일한 대상을 은퇴시킨 것이 아니다

RFC 10015는 여러 계열을 다루며, 그 동사는 서로 바꿔 쓸 수 없다. TLS 1.2 및 DTLS 1.2에서 클라이언트는 비임시(non-ephemeral) 유한체 디피–헬만 스위트를 제공해서는안 되고(MUST NOT), 서버도 선택해서는안 된다. 같은 금지가 해당 프로토콜 버전의 임시 유한체 DHE 스위트에도 적용된다. 정적 RSA 키 교환 스위트 역시 제공/선택이금지된다(MUST NOT).

정적 ECDH 스위트는 다른 지위를 가진다:권장하지 않음(SHOULD NOT). 이 문서가 다루는 고정 디피–헬만 클라이언트 인증서 유형 역시권장하지 않음이다. SHOULD NOT에 대한 예외에는 검토를 견딜 수 있는 이유가 필요하지만, MUST NOT 위반과 의미상 동일하지는 않다. 둘을 같은 빨간 셀로 뭉뚱그린 통제는 표준이 의도적으로 보존한 정보를 파괴한다.

버전 경계도 똑같이 중요하다.RFC 8996은 이미 TLS 1.0과 TLS 1.1을 사용 중단시켰다.RFC 5246은 TLS 1.2를 정의하고,RFC 8446은 TLS 1.3을 위한 키 합의를 재설계했다. RFC 10015는 TLS 1.3에서 유한체 임시 디피–헬만을 명시적으로 허용하며, 이 문서가 다루는 TLS 1.2의 약점이 모든 버전에서의 모든 FFDHE 사용을 금지하는 것은 아니다.RFC 7919는 협상된 유한체 그룹의 역사와 작동 방식의 일부로 남아 있다.

정적 RSA 키 교환은 RSA의 모든 사용과 혼동해서도 안 된다. 어떤 서비스는 정적 RSA 키 전송을 사용하지 않는 프로토콜 구성 안에서 RSA 인증서와 RSA 서명을 사용할 수 있다. 따라서 인증서 목록에서 “RSA”라는 단어를 검색하는 것은 잘못된 질문에 답하는 일이다. 근거는 협상된 키 교환 경로를 식별해야 한다.

암호학적 이유는 장식이 아니다. 순방향 비밀성이 없는 방식은 장기 키가 나중에 유출될 경우 과거 세션을 노출한다. 재사용된 유한체 DH 키는 타이밍 및 그룹 선택 위험을 수반하고, 재사용된 ECDH 키는 무효 곡선, 부채널, 결함 공격 위험을 지닌다. 정적 RSA는 Bleichenbacher 계열 실패 모드의 긴 기록을 그대로 유지하며, 해로운 키 재사용과 프로토콜 간 가능성을 만든다.RFC 9325와RFC 9847은 배포된 TLS 지침을 과거의 가용성이 아니라 축적된 근거에 맞추려는 더 넓은 IETF 노력의 일부다.

D플래그가 입증하는 것

IANA TLS 파라미터 레지스트리는 이제 해당 암호 스위트와 네 개의 ClientCertificateType 값에 Recommended 열에D표시를 하고 RFC 10015를 인용한다. IANA 표기법에서D는 discouraged, 즉 권장하지 않음을 뜻한다. 정확한 규범적 강도는 인용된 사양에서 나오며, SHOULD NOT 또는 MUST NOT을 반영할 수 있다.

이 플래그가 입증하는 것은 한정된 사실이다. 공개 레지스트리의 권장 상태다. 이는 린터, 코드 검토, 조달 정책, 마이그레이션 대기열을 구동할 수 있다. 그러나 다음 중 어느 것도 입증할 수 없다:

  1. 암호 라이브러리가 더 이상 해당 스위트를 구현하지 않는다;
  2. 제품의 출시 기본값이 더 이상 이를 활성화하지 않는다;
  3. 로컬 구성에서 제거되었다;
  4. 실행 중인 프로세스가 해당 구성을 로드했다;
  5. 모든 리스너, SNI 이름, 프록시, 로드 밸런서, 지역 엣지에 배포가 전달되었다;
  6. 클라이언트가 제공을 중단했다;
  7. 서버가 선택을 중단했다;
  8. 예외 경로나 롤백 이미지가 이를 복원할 수 없다.

이들은 하나의 사실의 변형이 아니다. 서로 다른 소유자와 시계를 가진 연속적인 통제 표면이다.

능력, 제안, 선택, 관측

네 가지 상태는 별도의 열에 담을 가치가 있다.능력은 코드가 해당 교환을 수행할 수 있음을 뜻한다.제안은 클라이언트가 특정 핸드셰이크에 넣는 것이다.선택은 서버가 그 제안에서 고르는 것이다.관측은 스캐너나 텔레메트리 시스템이 우연히 본 것이다.

라이브러리는 정책이 모든 제안을 막는 동안에도 능력을 유지할 수 있다. 서버 구성이 구식 스위트를 언급하더라도 더 강한 규칙이 이기기 때문에 절대 선택하지 않을 수 있다. 프로브는 선택을 관측하지 못하면서 SNI 전용 리스너, UDP DTLS 서비스, 내부 엣지, 조건부 레거시 경로를 놓칠 수 있다. 반대로 금지된 계열만 의도적으로 제안하는 통제된 음성 테스트는 일반적인 최신 클라이언트 연결보다 훨씬 많은 것을 확립할 수 있지만, 그것이 도달한 종단 지점과 구성 경로에 한해서만 그렇다.

RFC 9147의 DTLS 1.3은 목록에 프로토콜과 전송 계층을 왜 포함해야 하는지를 다시 강조한다. TCP 리스너만을 대상으로 한 TLS 전용 스캔은 DTLS 통제를 종결할 수 없다. 전역 구성 파일도 관리형 어플라이언스, 임베디드 종단 장치, 별도로 관리되는 리버스 프록시가 로드한 것을 증명하지 못한다.

사용 중단을 종결 과제로 만들기

유용한 산출물은 노출된 각 서비스에 대한사용 중단 종결 영수증이다. 첫 번째 항목은 RFC 항목, 레지스트리 식별자, 프로토콜 버전, 규범적 강도를 명명한다. 이는 정적 ECDH의 SHOULD NOT이 정적 RSA의 MUST NOT과 같은 예외 등급으로 조용히 바뀌는 것을 막고, 이름이 TLS 1.2 계열과 비슷하다는 이유만으로 TLS 1.3 FFDHE 구성이 제거되는 일을 막는다.

두 번째 항목은 실효적인 통제 지점을 식별한다: 저장소 또는 구성 권한, 커밋된 버전, 렌더링된 정책, 소프트웨어 빌드, 컨테이너 또는 어플라이언스 릴리스, 리스너, SNI 이름, 주소, 포트, 전송 계층, 업스트림 프록시. 종단이 분산되어 있을 때 “플릿 정책 업데이트됨”은 충분하지 않다.

세 번째 항목은 활성화를 기록한다: 재시작, 재로드, 핫 정책 갱신 또는 관리형 배포; 시간; 변경 식별자; 대상 집단; 완료된 집단; 실패한 대상; 롤백 버전. 파일 diff는 의도의 증거다. 프로세스 신원과 로드된 정책에 대한 증거가 실행에 더 가깝다.

네 번째 항목은 행동을 기록한다. 음성 제안 프로브는 금지된 선택만 제시하고 거부를 기대한다. 선택 프로브는 현실적인 대안들을 실행하고 협상된 결과를 기록한다. 텔레메트리는 시간에 걸쳐 제안과 선택을 찾지만, 커버리지 경계와 샘플링 손실을 유지해야 한다. 영수증은 결코 “관측되지 않음”을 “불가능”으로 바꾸지 않는다.

마지막 항목은 예외와 의존 항목을 담당한다. 클라이언트, 사업 기능, 범위, 보완 통제, 책임 있는 소유자, 승인, 만료, 종료 테스트를 명명한다. 의존 클라이언트의 마이그레이션과 호환성 경로의 제거를 기록한다. 만료 없는 예외는 다리가 아니다. 그것은 두 번째 정책이다.

이 영수증은 Daniel Kade의 거버넌스 제안이며, RFC 10015가 부과하는 요구 사항이 아니다. 그 목적은 기계 판독 가능한 표준 변화가 배포에 대한 기계 생성 허구가 되는 것을 막는 데 있다.

더 안전한 자동화 판정

보안 자동화는 지원할 수 있는 가장 강한 사실을 보고해야 한다: “레지스트리에서 사용 중단”, “구성 제거됨”, “재로드 검증됨”, “음성 프로브 거부됨”, “명시된 커버리지 내에서 선택 없음 관측”, “예외 만료”. 관련된 모든 종단 경로가 닫히기 전에는 이들을 “비활성화됨”으로 압축해서는 안 된다.

이 어휘는 인시던트 대응도 개선한다. 금지된 선택이 나타나면, 팀은 실패가 원본 정책, 렌더링, 배포, 리스너 목록, 예외 통제, 의존성 마이그레이션 중 어디에 있는지 찾아낼 수 있다. 단일 컴플라이언스 비트에는 그런 인과성 경로가 없다.

표준 과정은 구식 메커니즘을 명명하고, 규격을 준수하는 TLS 1.2 및 DTLS 1.2 피어가 더 이상 하지 말아야 하거나 권장되지 않는 행동이 무엇인지 밝힘으로써 자기 몫을 다했다. 운영 거버넌스는 그 문장 뒤에서 시작된다. 이제 질문은 스위트가 권장되지 않는지가 아니라, 어떤 실행 중인 엔드포인트가 여전히 금지된 선택을 할 수 있는지, 그리고 어떤 근거가 그 가능성을 은퇴시킬 것인지이다.

출처