Pour toute question concernant cette règle, veuillez contacter le forum sur la règle de transparence des certificats : ct-policy@chromium.org
Lorsqu'un certificat TLS (Transport Layer Security) d'une connexion est validé, sa conformité à la règle de transparence des certificats (CT) Android est évaluée. Les certificats accompagnés d'horodatages de certificats signés (SCT) qui respectent cette règle sont considérés comme conformes à la transparence des certificats.
La conformité à la transparence des certificats est obtenue lorsqu'un certificat et un ensemble d'horodatages de certificats signés qui l'accompagnent 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 cette règle.
États des journaux de transparence des certificats
La conformité à la transparence des certificats dans Android est déterminée en évaluant les horodatages de certificats signés des journaux de transparence des certificats et en s'assurant que ces journaux sont dans le ou les états appropriés au moment de la vérification. Les états possibles d'un journal de transparence des certificats sont les suivants :
PendingQualifiedUsableReadOnlyRetiredRejected
Pour vous aider à comprendre les exigences de conformité à la transparence des certificats 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 l'explication du cycle de vie des journaux de transparence des certificats de la documentation Chrome.
Certificats conformes à la transparence des certificats
Un certificat TLS est conforme à la transparence des certificats s'il est accompagné d'un ensemble d'horodatages de certificats signés qui répondent à au moins l'un des critères définis plus loin, en fonction de la manière dont les horodatages de certificats signés sont fournis à Android. Dans les applications Android qui appliquent la transparence des certificats, tous les certificats TLS approuvés publiquement doivent être conformes à la transparence des certificats pour être validés. Toutefois, les certificats qui ne sont pas enregistrés dans la transparence des certificats ou qui ne comportent pas suffisamment d'horodatages de certificats signés ne sont pas considérés comme émis de manière incorrecte.
Lors de l'évaluation de la conformité d'un certificat à la transparence des certificats, Android prend en compte plusieurs facteurs, y compris le nombre d'horodatages de certificats signés présents, l'opérateur du journal de transparence des certificats qui a émis l'horodatage de certificat signé et l'état du journal de transparence des certificats qui a émis l'horodatage de certificat signé, à la fois au moment de la validation du certificat et au moment où l'horodatage de certificat signé a été créé par le journal de transparence des certificats.
En fonction de la manière dont les horodatages de certificats signés sont présentés à Android, la conformité à la transparence des certificats peut être obtenue en respectant l'un des critères suivants :
Horodatages de certificats signés intégrés :
- Au moins un horodatage de certificat signé intégré provenant d'un journal de transparence des certificats qui était
Qualified,UsableouReadOnlyau moment de la vérification ; et - Il existe des horodatages de certificats signés intégrés provenant d'au moins N journaux de transparence des certificats distincts qui étaient
Qualified,Usable,ReadOnlyouRetiredau moment de la vérification, où N est défini dans le tableau suivant ; et - Parmi les horodatages de certificats signés qui répondent à l'exigence 2, au moins deux horodatages de certificats signés doivent être émis par des opérateurs de journaux de transparence des certificats distincts reconnus par Android ; et
| Durée de vie du certificat | Nombre d'horodatages de certificats signés provenant de journaux de transparence des certificats distincts |
|---|---|
| <= 180 jours | 2 |
| > 180 jours | 3 |
Horodatages de certificats signés fournis via OCSP ou TLS :
- Au moins deux horodatages de certificats signés provenant d'un journal de transparence des certificats qui était
Qualified,UsableouReadOnlyau moment de la vérification ; et - Parmi les horodatages de certificats signés qui répondent à l'exigence 1, au moins deux horodatages de certificats signés doivent être émis par des opérateurs de journaux de transparence des certificats distincts reconnus par Android ; et
Pour les horodatages de certificats signés intégrés et ceux fournis à 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 de transparence des certificats change d'opérateur au cours de sa durée de vie, les journaux de transparence des certificats contiennent éventuellement une liste de previous_operators, accompagnée de l'horodatage final indiquant que ce journal était géré par l'opérateur précédent.
Pour éviter que les modifications apportées à l'opérateur de journal n'interrompent les certificats existants, l'opérateur de journal de chaque horodatage de certificat signé est déterminé comme étant l'opérateur au moment de l'émission de l'horodatage de certificat signé, en comparant l'horodatage de certificat signé aux horodatages previous_operators, le cas échéant.
Remarques importantes
Tant que l'un des critères de conformité à la transparence des certificats précédents est rempli par une combinaison d'horodatages de certificats signés présentés lors de la négociation, les horodatages de certificats signés supplémentaires, quel que soit leur état, n'affecteront pas positivement ou négativement l'état de conformité à la transparence des certificats d'un certificat.
Pour contribuer à la conformité d'un certificat à la transparence des certificats, un horodatage de certificat signé doit avoir été émis avant l'horodatage Retired du journal, s'il existe.
Android utilise l'horodatage de certificat signé le plus ancien parmi tous les horodatages de certificats signés présentés pour évaluer la conformité à la transparence des certificats par rapport aux horodatages Retired du journal de transparence des certificats.
Cela tient compte des cas extrêmes dans lesquels un journal de transparence des certificats est mis hors service lors du processus d'envoi des requêtes d'enregistrement de certificat.
Un "horodatage de certificat signé intégré" est un horodatage de certificat signé fourni à l'aide de l'extension X.509v3 SignedCertificateTimestampList dans le certificat lui-même. De nombreux serveurs TLS ne sont pas compatibles avec l'agrafage OCSP ni l'extension TLS. Les autorités de certification doivent donc être prêtes à intégrer des horodatages de certificats signés dans les certificats émis pour garantir la validation ou le traitement EV dans Android.
Ajout de journaux de transparence des certificats à Android
Les critères permettant aux journaux de transparence des certificats de devenir Qualified, ainsi que les
circonstances qui peuvent les rendre Retired, sont disponibles dans la règle relative aux journaux de transparence des certificats Chrome
.
Délai d'application de la transparence des certificats
Chaque jour, Google publie une nouvelle liste de journaux de transparence des certificats contenant un log_list_timestamp actualisé. Une fois par jour, les appareils Android tentent de télécharger la dernière version de cette liste à des fins de vérification. À tout moment, si aucune liste de journaux n'est disponible sur l'appareil ou si l'horodatage de la liste de journaux date de plus de 70 jours, l'application de la transparence des certificats est désactivée.
Ce délai d'expiration offre une assurance essentielle à l'écosystème de transparence des certificats que les nouveaux journaux de transparence des certificats peuvent passer en toute sécurité à l'état "Utilisable" dans un délai fixe après être devenus 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, sans contrat de niveau de service ni sans garantie de disponibilité.
Android met sa liste de journaux de transparence des certificats à la disposition des personnes qui envoient des certificats (telles que les autorités de certification) et des moniteurs et auditeurs de transparence des certificats qui souhaitent rester compatibles avec les écosystèmes de transparence des certificats et WebPKI, ou en examiner le contenu.
Une dépendance non autorisée à la liste des journaux de transparence des certificats Android met en danger non seulement vos utilisateurs, mais aussi les utilisateurs Android et l'écosystème de transparence des certificats dans son ensemble. Si vous envisagez d'ajouter l'application de la transparence des certificats à votre application, utilisez un mécanisme compatible avec la plate-forme Android.
L'utilisation de la liste des journaux de transparence des certificats Android en dehors de cette règle se fait à vos propres risques et peut entraîner une défaillance de votre application ou de votre bibliothèque. Android doit pouvoir apporter des modifications à la liste des journaux de transparence des certificats en réponse aux incidents survenus dans l'écosystème de transparence des certificats 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 de transparence des certificats ne compromettent pas 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.