이 정책에 관한 질문은 CT 정책 포럼(ct-policy@chromium.org)으로 보내 주세요.
인증서 투명성을 선택한 앱에서 연결의 전송 계층 보안 (TLS) 인증서가 확인되면 Android 인증서 투명성 (CT) 정책을 준수하는지 평가됩니다. 이 정책을 충족하는 서명된 인증서 타임스탬프 (SCT)가 포함된 인증서는 CT를 준수한다고 합니다.
CT 규정 준수는 인증서 및 인증서 유효성 검사 중에 널리 사용되는 TLS 라이브러리(Android의 내장 Conscrypt 포함)에서 시행하는 기술 요구사항 집합을 충족하는 일련의 SCT를 통해 이루어지며, 이러한 요구사항은 이 정책에 정의되어 있습니다.
CT 로그 상태
Android의 CT 규정 준수는 CT 로그에서 SCT를 평가하고 이러한 로그가 확인 시 올바른 상태인지 확인하여 결정됩니다. CT 로그가 있을 수 있는 상태 집합은 다음과 같습니다.
Pending
Qualified
Usable
ReadOnly
Retired
Rejected
Android의 CT 규정 준수 요구사항을 이해하는 데 도움이 되도록 이러한 상태의 정의, 각 상태의 로그 요구사항, 이러한 상태가 Android 동작에 미치는 영향을 Chrome 문서의 CT 로그 수명 주기 설명에서 자세히 설명합니다.
CT 규정 준수 인증서
TLS 인증서가 CT 규정을 준수하는 경우 SCT가 Android에 전송되는 방식에 따라 나중에 정의된 기준 중 하나 이상을 충족하는 SCT 세트가 함께 제공됩니다. Android의 CT 시행 앱에서는 모든 공개적으로 신뢰할 수 있는 TLS 인증서가 CT를 준수해야 유효성 검사를 통과할 수 있습니다. 하지만 CT에 로깅되지 않거나 SCT가 충분하지 않은 인증서는 잘못 발급된 것으로 간주되지 않습니다.
Android는 CT 규정 준수를 위해 인증서를 평가할 때 인증서가 확인되는 시점과 CT 로그에서 SCT가 생성된 시점 모두에서 SCT의 개수, SCT를 발급한 CT 로그를 운영하는 사용자, SCT를 발급한 CT 로그의 상태를 비롯한 여러 요소를 고려합니다.
SCT가 Android에 표시되는 방식에 따라 다음 기준 중 하나를 충족하면 CT 규정을 준수할 수 있습니다.
삽입된 SCT:
- 확인 시
Qualified
,Usable
또는ReadOnly
였던 CT 로그의 삽입된 SCT 1개 이상 - 검사 시
Qualified
,Usable
,ReadOnly
또는Retired
였던 고유한 CT 로그가 N개 이상 있으며, 여기서 N은 다음 표에 정의되어 있습니다. - 요구사항 2를 충족하는 SCT 중 Android에서 인식하는 별도의 CT 로그 운영자로부터 발급된 SCT가 2개 이상이어야 합니다.
- 요구사항 2를 충족하는 SCT 중 Android에서 RFC 6962를 준수하는 것으로 인식하는 로그에서 발급된 SCT가 하나 이상 있어야 합니다.
인증서 전체 기간 | 고유한 CT 로그의 SCT 수 |
---|---|
180일 미만 | 2 |
180일 초과 | 3 |
OCSP 또는 TLS를 통해 전송된 SCT:
- 확인 시
Qualified
,Usable
또는ReadOnly
였던 CT 로그의 SCT 2개 이상 - 요구사항 1을 충족하는 SCT 중 Android에서 인식하는 별도의 CT 로그 운영자로부터 발급된 SCT가 2개 이상이어야 합니다.
- 요구사항 1을 충족하는 SCT 중 하나 이상은 Android에서 RFC6962를 준수하는 것으로 인식하는 CT 로그에서 발급되어야 합니다.
삽입된 SCT와 OCSP 또는 TLS를 사용하여 전송된 SCT 모두 로그 운영자 고유성은 log_list.json의 운영자 섹션 내에 별도의 항목이 있는 것으로 정의됩니다.
CT 로그가 전체 기간 동안 연산자를 변경하는 드문 상황에서는 CT 로그에 선택적으로 previous_operators
목록이 포함되며, 이 목록에는 이 로그가 이전 연산자에 의해 운영된 최종 타임스탬프가 포함됩니다.
로그 연산자 변경으로 인해 기존 인증서가 손상되지 않도록 각 SCT의 로그 연산자는 SCT 타임스탬프를 previous_operators
타임스탬프(있는 경우)와 비교하여 SCT 발급 시의 연산자로 결정됩니다.
중요사항
핸드셰이크에 표시된 SCT 조합으로 위의 CT 규정 준수 기준 중 하나가 충족되는 한, SCT의 상태와 관계없이 추가 SCT는 인증서의 CT 규정 준수 상태에 긍정적이든 부정적이든 영향을 미치지 않습니다.
인증서의 CT 규정을 준수하려면 로그의 Retired
타임스탬프(있는 경우) 전에 SCT가 발급되어야 합니다.
Android는 CT 로그 Retired
타임스탬프에 대한 CT 규정 준수를 평가하기 위해 제공된 모든 SCT 중 가장 빠른 SCT를 사용합니다.
이렇게 하면 인증서 로깅 요청을 제출하는 과정에서 CT 로그가 '사용 중지됨'이 되는 특이 사례를 고려할 수 있습니다.
'삽입된 SCT'는 인증서 자체 내에서 SignedCertificateTimestampList
X.509v3 확장 프로그램을 사용하여 전송된 SCT를 의미합니다. 많은 TLS 서버가 OCSP 스태플링 또는 TLS 확장 프로그램을 지원하지 않으므로 CA는 Android에서 유효성 검사 또는 EV 처리를 성공적으로 수행할 수 있도록 발급된 인증서에 SCT를 삽입할 준비를 해야 합니다.
Android에 CT 로그를 추가하는 방법
CT 로그가 Qualified
가 되는 기준과 Retired
가 되는 상황은 Chrome CT 로그 정책에서 확인할 수 있습니다.
CT 시정 조치 시간 초과
Google은 매일 최신 log_list_timestamp
가 포함된 새 CT 로그 목록을 게시합니다. Android 기기는 하루에 한 번 인증 목적으로 이 목록의 최신 버전을 다운로드하려고 시도합니다. 특정 시점에 기기에서 사용 가능한 로그 목록이 없거나 로그 목록의 타임스탬프가 70일이 지난 경우 CT 시정 조치가 사용 중지됩니다.
이 제한 시간은 새 CT 로그가 Qualified
이 된 후 일정 시간 내에 Usable(사용 가능)로 안전하게 전환할 수 있다는 중요한 보장을 CT 생태계에 제공합니다.