VU#948176: 다수의 TLS 라이브러리가 위임 강... 노트

VU#948176: 다수의 TLS 라이브러리가 위임 강제 적용을 우회할 수 있음

이 문서는 X.509 이름 제약 조건 구현에 관한 13개의 라이브러리별 기록을 상세히 설명합니다. 이 기록들은 다양한 TLS 라이브러리가 이러한 제약 조건을 처리하는 방식의 불일치를 강조하며, 한 라이브러리에서 허용된 이름이 다른 라이브러리에서 거부될 수 있는 상황을 초래합니다. 이러한 문제 중 일부는 해결되었으며, 다른 일부는 아직 검토 중이거나 보안 취약점으로 간주되지 않았습니다. 이름 제약 조건은 인증 기관(CA)을 정의된 네임스페이스 내에 가두도록 설계되었습니다. DNS 이름 대소문자 구분 및 와일드카드 일치 처리에 있어 불일치가 존재하며, GnuTLS 및 Go와 같은 라이브러리는 다양한 동작을 보입니다. pyca/cryptography는 SAN에 대해 제약 조건을 검증하지만 요청된 피어 이름에 대해서는 검증하지 않는 것으로 나타났습니다. 라이브러리는 IP 주소 제약 조건에 대해 IPv4 및 IPv6 매핑 IPv6 형식을 처리하는 방식에서도 차이가 있습니다. URI 처리는 추가적인 불일치를 제시하며, 특히 URI SAN에서 호스트 추출과 관련이 있습니다. AWS-LC 및 s2n-tls는 리프 인증서에 SAN이 없을 때 와일드카드 일반 이름 폴백에 대한 문제를 보고했습니다. Mbed TLS는 특정 구성에서 RFC 5280 요구 사항과 달리 비치명적인 이름 제약 조건을 강제하지 않습니다. 이러한 불일치의 영향은 공격자가 신뢰할 수 있는 서명을 위조하고 권한 부여를 위한 검증 경로를 악용할 수 있을 때만 관련이 있습니다. CERT/CC는 영향을 받은 프로젝트와 함께 수정 노력을 조정하고 있으며, 각 라이브러리에 대해 다양한 상태가 보고되었습니다. 이름 제약 조건에 의존하는 운영자는 라이브러리의 동작을 확인하고 명시적인 SAN 및 발급 정책을 우선적으로 고려해야 합니다.