Vai al contenuto

La verifica dell’integrità delle transazioni con Azure Confidential Ledger

Azure Confidential Ledger garantisce la riservatezza e l’integrità delle transazioni attraverso ricevute crittografiche e claim applicativi.

In un’era dominata dai dati digitali, l’integrità e la riservatezza delle informazioni transazionali sono essenziali. Azure Confidential Ledger di Microsoft rappresenta una soluzione robusta per preservare la privacy e la confidenzialità dei dati, utilizzando tecniche crittografiche avanzate per generare ricevute transazionali. Queste ricevute fungono da prova immutabile dello stato del ledger in un determinato momento, essenziale per aziende che necessitano di un alto livello di fiducia e trasparenza.

La generazione delle ricevute

Il punto di forza delle ricevute generate da Azure Confidential Ledger risiede nella loro capacità di fornire una traccia verificabile di tutte le operazioni di scrittura. Il servizio si avvale del Confidential Consortium Framework (CCF) per garantire l’integrità delle transazioni, utilizzando una struttura dati Merkle tree per memorizzare gli hash di tutti i blocchi transazionali aggiunti al ledger immutabile.

Esempio di struttura dati Merkle Tree nel CCF.

Al completamento di una transazione di scrittura, gli utenti di Azure Confidential Ledger possono ottenere una prova crittografica Merkle, o ricevuta, sull’entry creata nel ledger per verificare l’accuratezza dell’operazione di scrittura. Una ricevuta di scrittura è una prova che il sistema ha registrato la transazione corrispondente e può confermare che l’entry è stata aggiunta con successo al ledger, garantendo che una volta che una transazione è stata impegnata nel ledger, non possa essere alterata o eliminata senza rilevamento.

Claim applicativi

I claim applicativi ampliano ulteriormente le ricevute, consentendo agli utenti di allegare metadati arbitrari a una transazione, che sono riflessi nei payload di risposta delle ricevute di scrittura. Questi metadati includono dettagli specifici del contesto della transazione, come l’ID della collezione e il contenuto d’ingresso di un’operazione di scrittura. I claim applicativi assicurano che il digest dei claim sia firmato in modo sicuro e memorizzato insieme alla transazione stessa, rendendolo non modificabile una volta che la transazione è stata impegnata.

Esempio di claim applicativo allegato a una risposta di ricevuta di scrittura.

Successivamente, i claim applicativi in formato semplice vengono mostrati nel payload della ricevuta per la stessa transazione in cui sono stati aggiunti. Utilizzando i claim in formato semplice, gli utenti possono ricalcolare lo stesso digest dei claim (disponibile nella ricevuta di scrittura) che il ledger ha firmato durante la transazione per verificare l’autenticità dei claim. Il digest dei claim può aiutare a verificare la ricevuta di scrittura, offrendo agli utenti un modo offline per verificare l’autenticità dei claim registrati.

Verifica delle ricevute e dei claim

Il processo di verifica delle ricevute di transazioni di scrittura e dei claim applicativi è semplice e sicuro. Utilizzando prove crittografiche, gli utenti possono confermare indipendentemente l’autenticità e l’integrità di ogni transazione offline, senza dover connettersi al ledger o fidarsi di un’autorità centrale.

La libreria client di Azure Confidential Ledger per Python offre funzioni utili per convalidare le ricevute delle transazioni di scrittura e calcolare il digest dei claim da un elenco di claim applicativi in modo semplice e senza soluzione di continuità. Con questa utilità di verifica, qualsiasi ricevuta di scrittura proveniente da un servizio di Azure Confidential Ledger può essere verificata con facilità e qualsiasi claim applicativo associato alla transazione può essere completamente autenticato.

from azure.identity import DefaultAzureCredentialfrom azure.confidentialledger import ConfidentialLedgerClientfrom azure.confidentialledger.certificate import (    ConfidentialLedgerCertificateClient,)from azure.confidentialledger.receipt import (    verify_receipt,)LEDGER_ID = "acl-test-ledger"  # Sostituire con l'ID del ledger da cui ottenere la ricevuta.TRANSACTION_ID = "2.50"  # Sostituire con l'ID della transazione per ottenere la ricevuta.API_VERSION = "2023-01-18-preview"  # Utilizzare questa versione API per supportare i claim applicativi.# Costruisci un oggetto ConfidentialLedgerClient tramite AAD.ledger_client = ConfidentialLedgerClient(    f"https://{LEDGER_ID}.confidential-ledger.azure.com",    credential=DefaultAzureCredential(),    ledger_certificate_path="service_cert.pem",    api_version=API_VERSION,)### Presupponiamo che la transazione target sia stata registrata nel ledger in un passaggio precedente. ### Si prega di fare riferimento agli esempi e alla documentazione della SDK di Azure Confidential Ledger Python ### per dettagli su come creare un'entry e aspettare che sia registrata.# Ottieni una ricevuta dal ledger per la transazione di input.poller = ledger_client.begin_get_receipt(TRANSACTION_ID)get_receipt_response = poller.result()print(get_receipt_response)try:    # Verifica il contenuto della ricevuta, con claim applicativi opzionali (se presenti)    verify_receipt(        get_receipt_response["receipt"],        ConfidentialLedgerCertificateClient().get_ledger_identity(LEDGER_ID).get("ledgerTlsCertificate"),        application_claims=get_receipt_response.get("applicationClaims", None),    )    print(f"Ricevuta per l'ID della transazione {TRANSACTION_ID} verificata con successo")except ValueError:    print(f"Verifica della ricevuta per l'ID della transazione {TRANSACTION_ID} fallita")    raise

Il metodo decentralizzato e offline di verifica rafforza la sicurezza e l’affidabilità del sistema, rendendo Azure Confidential Ledger una piattaforma ideale per applicazioni che richiedono i massimi livelli di integrità dei dati. Per ulteriori informazioni sull’SDK di Python per il piano dati e le sue utility di verifica delle ricevute, consulta questo codice di esempio.

Conclusione

Azure Confidential Ledger’s ricevute e claim applicativi offrono un valore significativo per le organizzazioni che cercano di garantire l’integrità dei propri dati transazionali. Con un’attenzione particolare all’integrità, alla confidenzialità e alla verificabilità, Azure Confidential Ledger emerge come una soluzione leader nel campo del confidential computing. Che si tratti di gestire transazioni finanziarie, gestione della supply chain o altre operazioni sensibili ai dati, Azure Confidential Ledger offre la sicurezza che i tuoi dati rimangano intatti e affidabili attraverso ricevute transazionali e claim applicativi.

Risorse

Per iniziare con le ricevute di scrittura e i claim applicativi di Azure Confidential Ledger, fai riferimento alla nostra documentazione: