Verifica una scheda in modo indipendente
Controlla le versioni firmate di una scheda, il suo posto nell’indice del registro e i testimoni del registro.
Una ricerca o un riepilogo aiutano a trovare la scheda. Scarica la scheda completa per avere la prova. La pagina normale della scheda e il widget eseguono già questi controlli nel browser del lettore. Un’integrazione che mostra un proprio verdetto verificato deve controllare la prova.
Leggi format in GET /v1/log prima di scegliere i controlli. Il registro in uso, log.veil.rip/staging-1, è in formato 2, e un registro in formato 2 nomina anche l’organizzazione Veil in staffOrg. Il formato 1 è fermo su log.veil.rip/test-1: resta leggibile e non prende versioni nuove.
Formato 2: il percorso dell’indice#
Una scheda in formato 2 porta quello che serve a questi controlli: proof per la versione corrente, index per il pacchetto d’indice della scheda, authority per le versioni che cambiano chi può firmare e current con intestazione, corpo e firma correnti. Il lavoro non cresce con la lunghezza della storia della scheda.
- Controlla il checkpoint in
index.checkpoint.note: la firma del registro, il quorum dei testimoni della tua policy fidata e la sua freschezza.proofeindexsi riferiscono a quello stesso checkpoint. - Verifica
index.entry, l’ultima voce d’indice del checkpoint, con la sua prova di inclusione. Controllaindex.valuesulla radice di quella voce conindex.proof, poi applica le voci diindex.tailche riguardano questa scheda. - Controlla ogni elemento di
authoritydalla sua sola voce del registro: l’inclusione alla posizionei, l’hash dell’intestazione contro ilcche dàindex.value.authe la firma di una chiave dell’autorità precedente. La versione 1 dà l’ID della scheda. SeguiauthorityNextfinché è null. - Controlla
current: l’hash dell’intestazione è quello diindex.value.latest, l’ha firmata una chiave dell’autorità in vigore, lo stato mostrato ha la radice della sua intestazione e le chiavi coincidono con l’autorità. - Per un’organizzazione, controlla il membro che
label.signernomina in ogni versione di autorità e in quella corrente. Quel membro aveva il ruolo e firmava con una chiave attiva della propria scheda in quel punto del registro. - Controlla le dichiarazioni dello staff in
index.statements. La prima èindex.value.standing, ogniprevè laidella successiva, e ognuna è firmata da un membro dell’organizzazione Veil con un ruolo che ne ammette l’azione. Leggi le altre pagine dastatementsNextfinché è null. - Una scheda chiusa risponde 410 con
closed. Mostrala chiusa solo quando quella voce di chiusura si verifica.
veil-rubrica:identity-version:v2
<canonical label>
veil-rubrica:statement-entry:v2
<canonical entry without signature>
veil-rubrica:close-entry:v2
<canonical entry without signature>Conserva token, ID, ultima versione verificata e la sua autorità. Alla visita dopo rifiuta un indice che indica una versione più vecchia o che cambia versioni di autorità già verificate. La verifica completa legge ogni versione da GET /v1/identities/{n}/versions, dalla versione 1, e controlla ogni corpo, firma e operazione senza l’indice.
Una firma composita richiede che si verifichino sia Ed25519 sia ML-DSA-65. Controlla la freschezza con abbastanza controfirme valide da soddisfare il quorum. Un quorum non recente può provare la storia lasciando incerto lo stato corrente.
Formato 1 su test-1#
Questi passi valgono solo per una scheda servita da un registro in formato 1, oggi log.veil.rip/test-1, che è fermo. Rifiuta una scheda in formato 1 quando GET /v1/log dice formato 2.
- Verifica la firma del record sul prefisso identity-version seguito dai byte esatti di proof.record.
- Ricalcola SHA-256 di sale e record. Deve corrispondere a proof.commitment. Per la versione 1 determina anche ID e impronta della scheda.
- Controlla che proof.entry contenga token e impegno della scheda. Ricalcola la foglia RFC 6962 e segui la prova di inclusione fino alla radice del checkpoint.
- Controlla la firma del registro con la chiave attesa e richiedi il quorum della policy fidata. Conta ogni chiave di testimone una volta sola.
- Verifica la catena delle versioni, inclusi prev, autorità della chiave firmataria e ogni impegno fino alla versione 1. Segui i cursori finché la catena è completa.
- Conserva l’ultimo checkpoint accettato e controlla la coerenza prima di accettarne uno nuovo. Rifiuta un arretramento o una radice diversa alla stessa dimensione.
veil-rubrica:identity-version:v1
Leggi le risorse del registro#
GET /v1/log indica il registro usato dalla rubrica. Le sue risorse stanno sotto l’URL HTTPS dell’origine. La stringa vkey completa contiene anche ID e dati della chiave pubblica e non è un indirizzo di pagina.
- GETLeggi lo stato del registroIdentifica il registro attivo e leggi checkpoint e stato dei testimoni visti dal server.
/v1/log - GETLeggi un checkpoint firmatoLeggi dimensione e radice Merkle firmate dal registro.
/{log}/checkpoint - GETLeggi una policy dei testimoniLeggi la chiave del registro, le chiavi dei testimoni e la regola del quorum.
/{log}/policy - GETLeggi le controfirme dei testimoniLeggi l’ultima controfirma conservata di ogni testimone configurato.
/{log}/witnesses - GETLeggi le tessere degli hash MerkleLeggi le tessere C2SP degli hash per prove di inclusione e coerenza.
/{log}/tile/{level}/{index} - GETLeggi i pacchetti delle vociLeggi i pacchetti C2SP delle voci pubbliche del registro.
/{log}/tile/entries/{index}