Android 인증서 투명성 정책

이 정책에 관한 질문은 CT 정책 포럼( ct-policy@chromium.org)에 문의하세요.

연결의 전송 계층 보안 (TLS) 인증서가 검증되면 Android 인증서 투명성 (CT) 정책을 준수하는지 평가됩니다. 이 정책을 충족하는 서명된 인증서 타임스탬프 (SCT)가 포함된 인증서는 CT 규정을 준수하는 것으로 간주됩니다.

CT 규정 준수는 인증서 검증 중에 인기 있는 TLS 라이브러리(기본 제공 Conscrypt 포함)에서 시행하는 일련의 기술 요구사항을 충족하는 인증서와 함께 제공되는 SCT 집합을 통해 달성됩니다. 이러한 요구사항은 이 정책에 정의되어 있습니다.

CT 로그 상태

Android의 CT 규정 준수는 CT 로그의 SCT를 평가하고 검사 시점에 이러한 로그가 올바른 상태에 있는지 확인하여 결정됩니다. CT 로그가 가질 수 있는 가능한 상태 집합은 다음과 같습니다.

  • Pending
  • Qualified
  • Usable
  • ReadOnly
  • Retired
  • Rejected

Android의 CT 규정 준수 요구사항을 이해하는 데 도움이 되도록 이러한 상태의 정의, 각 상태의 로그 요구사항, 이러한 상태가 Android 동작에 미치는 영향은 Chrome 문서의 CT 로그 수명 주기 설명에 자세히 설명되어 있습니다.

CT 규정을 준수하는 인증서

TLS 인증서는 SCT가 Android에 전달되는 방식에 따라 나중에 정의된 기준 중 하나 이상을 충족하는 SCT 집합이 포함된 경우 CT 규정을 준수 합니다. Android의 CT 시행 앱에서는 모든 공개적으로 신뢰할 수 있는 TLS 인증서가 성공적으로 검증되려면 CT 규정을 준수해야 합니다. 하지만 CT에 로깅되지 않거나 SCT가 충분하지 않은 인증서는 잘못 발급된 것으로 간주되지 않습니다.

CT 규정 준수를 위해 인증서를 평가할 때 Android는 SCT의 수, SCT를 발급한 CT 로그를 운영하는 사용자, 인증서가 검증되는 시점과 CT 로그에서 SCT를 생성한 시점 모두에서 SCT를 발급한 CT 로그의 상태를 비롯한 여러 요소를 고려합니다.

SCT가 Android에 표시되는 방식에 따라 다음 기준 중 하나를 충족하여 CT 규정 준수를 달성할 수 있습니다.

삽입된 SCT:

  1. 검사 시점에 Qualified, Usable 또는 ReadOnly였던 CT 로그의 삽입된 SCT가 하나 이상 있습니다.
  2. 검사 시점에 Qualified, Usable, ReadOnly 또는 Retired였던 고유한 CT 로그가 N개 이상에서 삽입된 SCT가 있습니다. 여기서 N은 다음 표에 정의되어 있습니다.
  3. 요구사항 2를 충족하는 SCT 중에서 Android에서 인식하는 고유한 CT 로그 운영업체에서 발급한 SCT가 2개 이상 있어야 합니다.
인증서 수명 고유한 CT 로그의 SCT 수
<= 180일 2
> 180일 3

OCSP 또는 TLS를 통해 전달되는 SCT:

  1. 검사 시점에 Qualified, Usable 또는 ReadOnly였던 CT 로그의 SCT가 2개 이상 있습니다.
  2. 요구사항 1을 충족하는 SCT 중에서 Android에서 인식하는 고유한 CT 로그 운영업체에서 발급한 SCT가 2개 이상 있어야 합니다.

삽입된 SCT와 OCSP 또는 TLS를 사용하여 전달되는 SCT 모두의 경우 로그 운영업체 고유성은 운영업체 섹션 내에 별도의 항목이 있는 것으로 정의됩니다.

CT 로그가 수명 중에 운영업체를 변경하는 드문 경우 CT 로그에는 선택적으로 이 로그가 이전 운영업체에서 운영한 최종 타임스탬프와 함께 previous_operators 목록이 포함됩니다. 로그 운영업체 변경으로 인해 기존 인증서가 손상되지 않도록 각 SCT의 로그 운영업체는 SCT 발급 시점의 운영업체로 결정됩니다(있는 경우 SCT 타임스탬프와 previous_operators 타임스탬프 비교).

중요 참고사항

이전의 CT 규정 준수 기준 중 하나가 핸드셰이크에 표시된 SCT의 조합으로 충족되는 한 SCT의 상태와 관계없이 추가 SCT는 인증서의 CT 규정 준수 상태에 긍정적 또는 부정적 영향을 미치지 않습니다.

인증서의 CT 규정 준수에 기여하려면 로그의 Retired 타임스탬프가 있는 경우 이 타임스탬프 전에 SCT가 발급되어야 합니다. Android는 표시된 모든 SCT 중에서 가장 빠른 SCT를 사용하여 CT 로그 Retired 타임스탬프에 대한 CT 규정 준수를 평가합니다. 이는 인증서 로깅 요청을 제출하는 중에 CT 로그가 Retired되는 극단적인 사례를 고려합니다.

'삽입된 SCT'는 인증서 자체 내에서 SignedCertificateTimestampList X.509v3 확장 프로그램을 사용하여 전달되는 SCT를 의미합니다. 많은 TLS 서버가 OCSP 스테이플링 또는 TLS 확장 프로그램을 지원하지 않으므로 CA는 Android에서 성공적인 검증 또는 EV 처리를 보장하기 위해 발급된 인증서에 SCT를 삽입할 준비를 해야 합니다.

CT 로그를 Android에 추가하는 방법

CT 로그가 Qualified가 될 수 있는 기준과 Retired가 될 수 있는 상황은 Chrome CT 로그 정책에서 확인할 수 있습니다.

CT 시행 시간 초과

Google은 매일 새로운 log_list_timestamp가 포함된 새로운 CT 로그 목록을 게시합니다. Android 기기는 하루에 한 번 검증 목적으로 이 목록의 최신 버전을 다운로드하려고 시도합니다. 특정 시점에 기기에서 로그 목록을 사용할 수 없거나 로그 목록의 타임스탬프가 70일보다 오래된 경우 CT 시행이 사용 중지됩니다. 이 시간 초과는 CT 생태계에 새로운 CT 로그가 Qualified가 된 후 정해진 시간 내에 안전하게 Usable로 전환될 수 있다는 중요한 보장을 제공합니다.

Android 로그 목록

Android 로그 목록은 매일 업데이트되는 log_list.json에 게시됩니다. 이 로그 목록은 안정적인 API, SLA 또는 가용성 보장 없이 제공됩니다.

Android는 CT 및 WebPKI 생태계와 호환성을 유지하거나 해당 생태계의 콘텐츠를 조사하려는 인증서 제출자 (예: 인증 기관) 및 CT 모니터와 감사자를 위해 CT 로그 목록을 제공합니다.

Android CT 로그 목록에 대한 무단 의존은 사용자뿐만 아니라 Android 사용자 및 CT 생태계 전체를 위험에 빠뜨립니다. 앱에 CT 시행을 추가하는 방법을 알아보려면 Android 플랫폼에서 지원하는 메커니즘을 사용하세요.

이 정책과 일치하지 않는 Android CT 로그 목록을 사용하는 것은 사용자의 책임이며 애플리케이션 또는 라이브러리가 손상될 수 있습니다. Android는 Android 사용자의 안전과 보안을 유지하기 위해 CT 생태계의 인시던트에 대응하여 CT 로그 목록을 변경할 수 있어야 합니다. Android는 무단 사용을 방해하기 위해 로그 목록에 예고 없이 변경하는 것을 비롯하여 CT 로그 목록에 대한 서드 파티 종속 항목이 이러한 인시던트에 대응하는 Android의 기능을 위험에 빠뜨리지 않도록 조치를 취할 수 있습니다.

이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.

최종 업데이트: 2026-06-14(UTC)