Pour toute question concernant ce règlement, veuillez la poser sur le forum dédié : ct-policy@chromium.org
Lorsqu'un certificat TLS (Transport Layer Security) d'une connexion est validé dans une application qui active la transparence des certificats, sa conformité est évaluée par rapport à la politique Android de transparence des certificats (CT, Certificate Transparency). Les certificats accompagnés de codes temporels de certificat signé (SCT) qui respectent le présent règlement sont considérés comme conformes à CT.
La conformité CT est atteinte lorsqu'un certificat et un ensemble de SCT associés répondent à un ensemble d'exigences techniques appliquées par les bibliothèques TLS populaires (y compris Conscrypt intégré) lors de la validation du certificat, qui sont définies dans le présent règlement.
États des journaux CT
La conformité CT dans Android est déterminée en évaluant les SCT des journaux CT et en s'assurant que ces journaux sont dans le ou les états corrects au moment de la vérification. Voici les états possibles d'un journal CT :
Pending
Qualified
Usable
ReadOnly
Retired
Rejected
Pour vous aider à comprendre les exigences de conformité CT dans Android, la définition de ces états, les exigences des journaux dans chaque état, ainsi que l'impact de ces états sur le comportement d'Android sont décrits en détail dans la documentation sur le cycle de vie des journaux CT de Chrome.
Certificats conformes à CT
Un certificat TLS est conforme à CT s'il est accompagné d'un ensemble de SCT qui répond à au moins l'un des critères définis plus loin, en fonction de la manière dont les SCT sont fournis à Android. Dans les applications Android appliquant CT, tous les certificats TLS approuvés publiquement doivent être conformes à CT pour être validés. Toutefois, les certificats qui ne sont pas enregistrés dans CT ou qui ne comportent pas suffisamment de SCT ne sont pas considérés comme émis de manière incorrecte.
Lors de l'évaluation d'un certificat pour la conformité CT, Android prend en compte plusieurs facteurs, y compris le nombre de SCT présents, l'opérateur du journal CT qui a émis le SCT et l'état du journal CT qui a émis le SCT, à la fois au moment de la validation du certificat et au moment de la création du SCT par le journal CT.
Selon la façon dont les SCT sont présentés à Android, la conformité CT peut être obtenue en répondant à l'un des critères suivants :
SCT intégrées :
- Au moins un SCT intégré provenant d'un journal CT qui était
Qualified
,Usable
ouReadOnly
au moment de la vérification ; et - Il existe des SCT intégrées provenant d'au moins N journaux CT distincts qui étaient
Qualified
,Usable
,ReadOnly
ouRetired
au moment de la vérification, où N est défini dans le tableau suivant ; et - Parmi les SCT qui répondent à l'exigence 2, au moins deux doivent être émis par des opérateurs de journaux CT distincts reconnus par Android.
- Parmi les SCT qui répondent à l'exigence 2, au moins un SCT doit être émis à partir d'un journal reconnu par Android comme étant conforme à la norme RFC 6962.
Durée de validité du certificat | Nombre de SCT provenant de journaux de certificat de transparence distincts |
---|---|
<= 180 jours | 2 |
> 180 jours | 3 |
SCT distribuées via OCSP ou TLS :
- Au moins deux SCT provenant d'un journal CT qui était
Qualified
,Usable
ouReadOnly
au moment de la vérification ; et - Parmi les SCT qui répondent à l'exigence 1, au moins deux doivent être émis par des opérateurs de journaux CT distincts reconnus par Android.
- Parmi les SCT qui répondent à l'exigence 1, au moins un doit être émis par un journal CT reconnu par Android comme étant conforme à la norme RFC6962.
Pour les SCT intégrées et celles fournies à l'aide d'OCSP ou de TLS, l'unicité de l'opérateur de journal est définie comme ayant des entrées distinctes dans la section des opérateurs de la liste des journaux.
Dans le cas rare où un journal CT change d'opérateur au cours de sa durée de vie, les journaux CT peuvent contenir une liste de previous_operators
, accompagnée de l'horodatage final indiquant que ce journal était exploité par l'opérateur précédent.
Pour éviter que les modifications apportées aux opérateurs de journaux n'invalident les certificats existants, l'opérateur de journal de chaque SCT est déterminé comme étant l'opérateur au moment de l'émission du SCT, en comparant le code temporel du SCT aux codes temporels previous_operators
, le cas échéant.
Remarques importantes
Tant que l'un des critères de conformité CT ci-dessus est rempli par une combinaison de SCT présentés dans le handshake, les SCT supplémentaires, quel que soit leur état, n'affecteront pas l'état de conformité CT d'un certificat, que ce soit positivement ou négativement.
Pour contribuer à la conformité CT d'un certificat, un SCT doit avoir été émis avant l'horodatage Retired
du journal, le cas échéant.
Android utilise le SCT le plus ancien parmi tous les SCT présentés pour évaluer la conformité CT par rapport aux codes temporels du journal CT Retired
.
Cela tient compte des cas extrêmes dans lesquels un journal CT devient obsolète lors du processus d'envoi des demandes d'enregistrement de certificats.
"SCT intégré" désigne un SCT fourni à l'aide de l'extension SignedCertificateTimestampList
X.509v3 dans le certificat lui-même. De nombreux serveurs TLS ne sont pas compatibles avec l'agrafage OCSP ni avec l'extension TLS. Les autorités de certification doivent donc être prêtes à intégrer des SCT dans les certificats émis pour garantir une validation ou un traitement EV réussi dans Android.
Ajout des journaux CT à Android
Les critères permettant aux journaux CT de devenir Qualified
, ainsi que les circonstances pouvant les faire devenir Retired
, sont disponibles dans la Règle relative aux journaux Chrome CT.
Délai d'application des mesures concernant les CT
Chaque jour, Google publie une nouvelle liste de journaux CT contenant un log_list_timestamp
récent. Une fois par jour, les appareils Android tentent de télécharger la dernière version de cette liste à des fins de validation. À tout moment, si aucune liste de journaux n'est disponible sur l'appareil ou si le code temporel de la liste de journaux date de plus de 70 jours, l'application de CT est désactivée.
Ce délai d'expiration offre une assurance essentielle à l'écosystème CT, à savoir que les nouveaux journaux CT peuvent passer à l'état "Utilisable" dans un délai fixe après être passés à l'état Qualified
.
Liste des journaux Android
La liste des journaux Android est publiée dans log_list.json, qui est mis à jour quotidiennement. Cette liste de journaux est proposée sans API stable, ni contrat de niveau de service ni garantie de disponibilité.
Android met sa liste de journaux CT à la disposition des émetteurs de certificats (tels que les autorités de certification) et des moniteurs et auditeurs CT qui souhaitent rester compatibles avec les écosystèmes CT et WebPKI, ou en examiner le contenu.
Une utilisation non autorisée de la liste des journaux CT Android met en danger non seulement vos utilisateurs, mais aussi les utilisateurs Android et l'écosystème CT dans son ensemble. Si vous envisagez d'ajouter l'application de la CT à votre application, utilisez un mécanisme compatible avec la plate-forme Android.
L'utilisation de la liste des journaux CT Android non conforme à ce règlement se fait à vos propres risques et peut entraîner le dysfonctionnement de votre application ou de votre bibliothèque. Android doit pouvoir modifier la liste des journaux CT en réponse aux incidents dans l'écosystème CT afin de maintenir la sécurité des utilisateurs Android. Android peut prendre des mesures pour s'assurer que les dépendances tierces de la liste des journaux CT ne risquent pas d'affecter la capacité d'Android à répondre à de tels incidents, y compris des modifications non annoncées de la liste des journaux pour perturber l'utilisation non autorisée.