veil

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.

  1. Controlla il checkpoint in index.checkpoint.note: la firma del registro, il quorum dei testimoni della tua policy fidata e la sua freschezza. proof e index si riferiscono a quello stesso checkpoint.
  2. Verifica index.entry, l’ultima voce d’indice del checkpoint, con la sua prova di inclusione. Controlla index.value sulla radice di quella voce con index.proof, poi applica le voci di index.tail che riguardano questa scheda.
  3. Controlla ogni elemento di authority dalla sua sola voce del registro: l’inclusione alla posizione i, l’hash dell’intestazione contro il c che dà index.value.auth e la firma di una chiave dell’autorità precedente. La versione 1 dà l’ID della scheda. Segui authorityNext finché è null.
  4. Controlla current: l’hash dell’intestazione è quello di index.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à.
  5. Per un’organizzazione, controlla il membro che label.signer nomina 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.
  6. Controlla le dichiarazioni dello staff in index.statements. La prima è index.value.standing, ogni prev è la i della successiva, e ognuna è firmata da un membro dell’organizzazione Veil con un ruolo che ne ammette l’azione. Leggi le altre pagine da statementsNext finché è null.
  7. Una scheda chiusa risponde 410 con closed. Mostrala chiusa solo quando quella voce di chiusura si verifica.
text
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.

  1. Verifica la firma del record sul prefisso identity-version seguito dai byte esatti di proof.record.
  2. Ricalcola SHA-256 di sale e record. Deve corrispondere a proof.commitment. Per la versione 1 determina anche ID e impronta della scheda.
  3. 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.
  4. Controlla la firma del registro con la chiave attesa e richiedi il quorum della policy fidata. Conta ogni chiave di testimone una volta sola.
  5. 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.
  6. Conserva l’ultimo checkpoint accettato e controlla la coerenza prima di accettarne uno nuovo. Rifiuta un arretramento o una radice diversa alla stessa dimensione.
text
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.