Android Sertifika Şeffaflığı Politikası

Lütfen bu Politikayla ilgili sorularınızı CT Politikası forumuna yönlendirin: ct-policy@chromium.org

Bir bağlantının Taşıma Katmanı Güvenliği (TLS) sertifikası, Sertifika Şeffaflığı'nı etkinleştiren bir uygulamada doğrulandığında Android Sertifika Şeffaflığı (CT) Politikası'na uygunluk açısından değerlendirilir. Bu Politikayı karşılayan İmzalı Sertifika Zaman Damgaları (SCT'ler) ile birlikte verilen sertifikaların CT uyumlu olduğu söylenir.

CT Uygunluğu, sertifika doğrulaması sırasında popüler TLS kitaplıkları (yerleşik Conscrypt dahil) tarafından uygulanan ve bu Politikada tanımlanan bir dizi teknik koşulu karşılayan bir sertifika ve beraberindeki SCT'ler ile sağlanır.

CT Günlüğü Durumları

Android'de CT Uygunluğu, CT günlüklerindeki SCT'lerin değerlendirilmesi ve bu günlüklerin kontrol sırasında doğru durumda olmasının sağlanmasıyla belirlenir. Bir CT günlüğünün bulunabileceği olası durumlar şunlardır:

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

Android'de CT uyumluluğuyla ilgili şartları anlamanıza yardımcı olmak için bu durumların tanımı, her durumdaki günlüklerin şartları ve bu durumların Android davranışını nasıl etkilediği, Chrome'un dokümanlarındaki CT Günlüğü Yaşam Döngüsü Açıklayıcısı'nda ayrıntılı olarak açıklanmıştır.

CT'ye Uygun Sertifikalar

Bir TLS sertifikası, SCT'lerin Android'e nasıl iletildiğine bağlı olarak, daha sonra tanımlanan ölçütlerden en az birini karşılayan bir dizi SCT ile birlikte gönderiliyorsa CT uyumlu olur. Android'in CT'yi zorunlu kılan uygulamalarında, başarılı bir şekilde doğrulamak için herkese açık olarak güvenilen tüm TLS sertifikalarının CT uyumlu olması gerekir. Ancak CT'ye kaydedilmeyen veya yeterli SCT'ye sahip olmayan sertifikaların yanlış verilmiş olduğu düşünülmez.

Android, CT uyumluluğu için bir sertifikayı değerlendirirken SCT'lerin sayısı, SCT'yi veren CT günlüğünü kimin işlettiği ve SCT'yi veren CT günlüğünün hem sertifika doğrulandığı sırada hem de SCT, CT günlüğü tarafından oluşturulduğu sırada bulunduğu durum gibi çeşitli faktörleri göz önünde bulundurur.

SCT'lerin Android'e nasıl sunulduğuna bağlı olarak, CT uyumluluğu aşağıdaki ölçütlerden birini karşılayarak sağlanabilir:

Yerleştirilmiş SCT'ler:

  1. Kontrol sırasında Qualified, Usable veya ReadOnly olan bir CT günlüğünden en az bir yerleştirilmiş SCT ve
  2. Kontrol sırasında Qualified, Usable, ReadOnly veya Retired olan en az N farklı CT günlüğünden yerleştirilmiş SCT'ler vardır. N, aşağıdaki tabloda tanımlanmıştır ve
  3. 2. koşulu karşılayan SCT'ler arasında, Android tarafından tanınan farklı CT Log Operatörleri tarafından verilmiş en az iki SCT olmalıdır ve
  4. 2. koşulu karşılayan SCT'ler arasında, Android tarafından RFC 6962 uyumlu olarak tanınan bir günlükten verilmiş en az bir SCT olmalıdır.
Sertifikanın geçerlilik süresi Farklı CT günlüklerinden alınan SCT'lerin sayısı
<= 180 gün 2
> 180 gün 3

OCSP veya TLS üzerinden sunulan SCT'ler:

  1. Kontrol sırasında Qualified, Usable veya ReadOnly olan bir CT günlüğünden alınmış en az iki SCT ve
  2. 1. koşulu karşılayan SCT'ler arasında, Android tarafından tanınan farklı CT Log Operatörleri tarafından verilmiş en az iki SCT olmalıdır ve
  3. 1. koşulu karşılayan SCT'ler arasında, Android tarafından RFC6962 uyumlu olduğu kabul edilen bir CT günlüğünden verilmiş en az bir SCT olmalıdır.

Hem yerleştirilmiş SCT'ler hem de OCSP veya TLS kullanılarak sunulanlar için günlük operatörü benzersizliği, günlük listesinin operatörler bölümünde ayrı girişlere sahip olmak olarak tanımlanır.

Bir CT günlüğünün kullanım ömrü boyunca operatör değiştirdiği nadir durumlarda, CT günlükleri isteğe bağlı olarak previous_operators listesi içerir. Bu listeye, günlüğün önceki operatör tarafından işletildiği son zaman damgası da eşlik eder. Günlük operatörü değişikliklerinin mevcut sertifikaları bozmasını önlemek için her SCT'nin günlük operatörü, SCT veriliş zamanındaki operatör olarak belirlenir. Bu işlem, SCT zaman damgası varsa previous_operators zaman damgalarıyla karşılaştırılarak yapılır.

Önemli notlar

El sıkışma sırasında sunulan SCT'lerin bir kombinasyonu yukarıdaki CT Uygunluğu kriterlerinden birini karşıladığı sürece, SCT'nin durumundan bağımsız olarak ek SCT'ler, sertifikanın CT Uygunluğu durumunu olumlu veya olumsuz yönde etkilemez.

Bir sertifikanın CT Uygunluğu'na katkıda bulunmak için, varsa SCT'nin, Log'un Retired zaman damgasından önce verilmiş olması gerekir. Android, CT uygunluğunu CT günlüğü Retired zaman damgalarına göre değerlendirmek için sunulan tüm SCT'ler arasındaki en eski SCT'yi kullanır. Bu, sertifika günlüğü isteklerinin gönderilmesi sırasında bir CT günlüğünün kullanımdan kaldırıldığı uç durumları açıklar.

"Yerleştirilmiş SCT", sertifikanın kendisinde SignedCertificateTimestampList X.509v3 uzantısı kullanılarak sağlanan bir SCT anlamına gelir. Birçok TLS sunucusu OCSP Stapling'i veya TLS uzantısını desteklemediğinden CA'lar, Android'de başarılı doğrulama veya EV işlemi sağlamak için verilen sertifikalara SCT'leri yerleştirmeye hazır olmalıdır.

CT günlükleri Android'e nasıl eklenir?

CT günlüklerinin nasıl Qualified olabileceği ve hangi durumlarda Retired olabileceğiyle ilgili ölçütleri Chrome CT Günlük Politikası'nda bulabilirsiniz.

CT Enforcement Timeout

Google her gün yeni bir CT günlüğü listesi yayınlar. Bu liste, yeni bir log_list_timestamp içerir. Android cihazlar, doğrulama amacıyla bu listenin en son sürümünü günde bir kez indirmeye çalışır. Herhangi bir zamanda cihazda günlük listesi yoksa veya günlük listesinin zaman damgası 70 günden eskiyse CT zorunluluğu devre dışı bırakılır. Bu zaman aşımı, CT ekosistemine yeni CT günlüklerinin Qualified olduktan sonra belirli bir süre içinde güvenli bir şekilde Kullanılabilir durumuna geçebileceği konusunda önemli bir güvence sağlar.

Android günlük listesi

Android günlük listesi, günlük olarak güncellenen log_list.json dosyasında yayınlanır. Bu günlük listesi, kararlı bir API, HDS veya kullanılabilirlik garantisi olmadan sunulur.

Android, CT ve WebPKI ekosistemleriyle uyumlu kalmak veya bu ekosistemlerin içeriklerini incelemek isteyen sertifika gönderenler (ör. sertifika yetkilileri) ve CT izleyicileri ile denetçileri için CT günlük listesini kullanıma sunar.

Android CT günlük listesine yetkisiz bir şekilde güvenmek yalnızca kullanıcılarınızı değil, Android kullanıcılarını ve CT ekosistemini de tehlikeye atar. Uygulamanıza CT zorunluluğu eklemeyi düşünüyorsanız Android platformu tarafından desteklenen bir mekanizma kullanın.

Android CT günlük listesini bu politikaya uygun olmayan şekilde kullanmak kendi sorumluluğunuzdadır ve uygulamanızın veya kitaplığınızın bozulmasına neden olabilir. Android, Android kullanıcılarının güvenliğini ve emniyetini korumak için CT ekosistemindeki olaylara yanıt olarak CT günlük listesinde değişiklik yapabilmelidir. Android, CT günlük listesindeki üçüncü taraf bağımlılıklarının, Android'in bu tür olaylara yanıt verme yeteneğini riske atmamasını sağlamak için adımlar atabilir. Bu adımlar arasında, yetkisiz kullanımı engellemek için günlük listesinde önceden duyurulmamış değişiklikler yapmak da yer alır.