Per eventuali domande su queste norme, invia un'email al forum relativo alle norme relative ai contenuti correlati alla criminalità: ct-policy@chromium.org
Quando il certificato TLS (Transport Layer Security) di una connessione viene convalidato in un'app che attiva la trasparenza dei certificati, viene valutata la conformità ai criteri di trasparenza dei certificati (CT) di Android. I certificati accompagnati da timestamp dei certificati firmati (SCT) chesoddisfano queste norme sono considerati conformi ai timestamp dei certificati.
La conformità al CT viene raggiunta tramite un certificato e un insieme di SCT associati che soddisfano un insieme di requisiti tecnici applicati dalle librerie TLS più diffuse (inclusa Conscrypt integrata in Android) durante la convalida del certificato, che sono definiti in queste norme.
Stati dei log CT
La conformità ai CT in Android viene determinata valutando gli SCT dai log CT e assicurandosi che questi log siano nello stato corretto al momento del controllo. L'insieme di stati possibili di un log CT è:
Pending
Qualified
Usable
ReadOnly
Retired
Rejected
Per aiutarti a comprendere i requisiti per la conformità ai CT in Android, la definizione di questi stati, i requisiti dei log in ogni stato e l'impatto di questi stati sul comportamento di Android sono descritti in dettaglio nella spiegazione del ciclo di vita dei log CT della documentazione di Chrome.
Certificati conformi a CT
Un certificato TLS è conforme al CT se è accompagnato da un insieme di SCT chesoddisfano almeno uno dei criteri definiti in seguito, a seconda di come gli SCT vengono inviati ad Android. Nelle app di Android che richiedono la verifica della conformità al CT, tutti i certificati TLS considerati attendibili pubblicamente devono essere conformi al CT per essere validati correttamente. Tuttavia, i certificati che non vengono registrati nel CT o che hanno SCT insufficienti non sono considerati emessi erroneamente.
Quando valuta un certificato per la conformità a CT, Android prende in considerazione diversi fattori, tra cui il numero di SCT presenti, chi gestisce il log CT che ha emesso lo SCT e lo stato del log CT che ha emesso lo SCT, sia al momento della convalida del certificato sia al momento della creazione dello SCT da parte del log CT.
A seconda di come vengono presentati gli SCT ad Android, la conformità ai CT può essere ottenutasoddisfacendo uno dei seguenti criteri:
SCT incorporati:
- Almeno un SCT incorporato da un log CT con stato
Qualified
,Usable
oReadOnly
al momento del controllo; e - Esistono SCT incorporati di almeno N log CT distinti che erano
Qualified
,Usable
,ReadOnly
oRetired
al momento del controllo, dove N è definito nella tabella seguente; e - Tra gli SCT che soddisfano il requisito 2, almeno due devono essere emessi da operatori di log CT distinti come riconosciuti da Android; e
- Tra gli SCT che soddisfano il requisito 2, almeno uno deve essere emesso da un log riconosciuto da Android come conforme allo standard RFC 6962.
Lifetime del certificato | Numero di SCT da log CT distinti |
---|---|
<= 180 giorni | 2 |
> 180 giorni | 3 |
SCT inviati tramite OCSP o TLS:
- Almeno due SCT da un log CT con stato
Qualified
,Usable
oReadOnly
al momento del controllo; e - Tra gli SCT che soddisfano il requisito 1, almeno due devono essere emessi da operatori di log CT distinti come riconosciuti da Android; e
- Tra gli SCT che soddisfano il requisito 1, almeno uno deve essere emesso da un log CT riconosciuto da Android come conforme a RFC6962.
Sia per gli SCT incorporati sia per quelli pubblicati utilizzando OCSP o TLS, l'unicità dell'operatore di log è definita come la presenza di voci separate nella sezione degli operatori di log_list.json.
Nei rari casi in cui un log CT cambi operatore durante il suo ciclo di vita,
i log CT possono contenere facoltativamente un elenco di previous_operators
, accompagnato dal
timestamp finale che indica quando questo log è stato gestito dall'operatore precedente.
Per evitare che le modifiche all'operatore di log causino l'interruzione dei certificati esistenti, l'operatore di log di ogni SCT viene determinato come l'operatore al momento dell'emissione dell'SCT, confrontando il timestamp dell'SCT con i timestamp di previous_operators
, se presenti.
Note importanti
Se uno dei criteri di conformità ai certificati di trasporto viene soddisfatto da una combinazione di SCT presentati nell'handshake, gli SCT aggiuntivi, indipendentemente dal loro stato, non influiscono in modo positivo o negativo sullo stato di conformità ai certificati di trasporto di un certificato.
Per contribuire alla conformità al CT di un certificato, è necessario che sia stato emesso un SCT prima del timestamp Retired
del log, se esistente.
Android utilizza l'SCT più antico tra tutti quelli presentati per valutare la conformità ai token di traccia in base ai timestamp del log Retired
dei token di traccia.
Questo tiene conto dei casi limite in cui un log CT viene ritirato durante la procedura di invio delle richieste di registrazione dei certificati.
Per "SCT incorporato" si intende uno SCT inviato utilizzando l'estensione SignedCertificateTimestampList
X.509v3 all'interno del certificato stesso. Molti server TLS non supportano la funzionalità OCSP Stapling o l'estensione TLS, pertanto le CA devono essere preparate a incorporare gli SCT nei certificati emessi per garantire la convalida o il trattamento EV in Android.
Come vengono aggiunti i log CT ad Android
I criteri per cui i log CT possono diventare Qualified
, nonché le circostanze che possono causare questo stato, sono riportati nei Criteri dei log CT di Chrome.Retired
Timeout applicazione CT
Ogni giorno Google pubblica un nuovo elenco di log CT contenente un nuovo
log_list_timestamp
. Una volta al giorno, i dispositivi Android tenteranno di scaricare la versione più recente di questo elenco a scopo di verifica. In qualsiasi momento, se sul dispositivo non è disponibile alcun elenco di log o se il timestamp dell'elenco di log è precedente a 70 giorni, l'applicazione del CT verrà disattivata.
Questo timeout fornisce all'ecosistema CT la garanzia fondamentale che i nuovi log CT
possono passare in modo sicuro a Utilizzabile entro un periodo di tempo prestabilito dopo
divenire Qualified
.