VU#573195: Go, OpenSSL, Apple, LibreSSL, pyca, wolfSSL RFC 5280 구현에서의 Name-Constraint 불일치
TLS 라이브러리는 X.509 Name Constraints에 대한 다양한 해석을 보여주며, 이로 인해 인증서 수락 또는 거부의 불일치가 발생합니다. 이러한 차이는 구현 결함과 RFC 5280에서 완전히 명시되지 않은 영역에서 비롯됩니다. 특히 DNS 이름 비교가 대소문자를 어떻게 처리하는지에 대한 차이가 존재합니다. IP 주소 처리 또한, 특히 IPv4 매핑 IPv6 주소와 관련하여 다릅니다. URI-authority 파싱은 특정 문자나 구성 요소가 존재할 때 호스트를 추출하는 데 있어 불일치를 나타냅니다. Subject Alternative Names에 대한 와일드카드 일치 의미론은 명확하게 정의되지 않아 추가적인 차이를 유발합니다. 일부 문제는 명백한 구현 결함인 반면, 다른 문제들은 RFC의 명시적인 지침 부족에서 비롯됩니다. 이러한 차이의 영향은 제한적이며, 손상된 신뢰할 수 있는 서명, 취약한 검증 경로, 그리고 권한 부여를 위해 해당 ID를 사용하는 애플리케이션의 조합이 필요합니다. 서비스 메시 또는 CDN과 같은 혼합 환경에서는 동일한 인증서에 대해 일관되지 않은 인증서 검증을 경험할 수 있습니다. CERT/CC는 이러한 문제를 해결하기 위해 영향을 받는 TLS 라이브러리 프로젝트와 협력하고 있습니다. 높은 수준의 보증을 요구하는 운영자는 검증기를 테스트하고, 업데이트를 적용하며, 명시적인 Subject Alternative Names를 사용해야 합니다. 애플리케이션 계층 허용 목록 및 발급 정책 또한 이러한 차이를 완화하는 데 도움이 될 수 있습니다.