Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
oak — Controllo significativo dei dati nei sistemi distribuiti. | Kitploit
Strumenti/GitHubGitHub/project-oak/oak
Sicurezza dell'Infrastruttura CloudSicurezza Sistemi EmbeddedSicurezza dei ContenitoriVirtualizzazione per la SicurezzaCrittografiaPrivacySicurezza HardwareSicurezza della Supply ChainAutenticazionePaper e Ricerca
GitHub
1.5k149381 giorno faRevisionato da Kitploit
project-oak/oak

oak

Controllo significativo dei dati nei sistemi distribuiti.

Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Project Oak Logo

Oak è una piattaforma software per la creazione di sistemi distribuiti che forniscono, in modo trasparente, asserzioni verificabili (o falsificabili) dall'esterno sul comportamento del sistema.

Oak fornisce componenti di base utilizzati per costruire Enclave Application, ovvero applicazioni isolate dall'host su cui vengono eseguite e attestabili da remoto.

In questo documento ci concentriamo sui sistemi distribuiti composti da "nodi" eterogenei; un nodo può essere un'Enclave Application in esecuzione su un server (ad es. data center privato, provider cloud pubblico, ecc.), un'applicazione normale in esecuzione su un dispositivo client (ad es. telefono, laptop), un normale servizio HTTP o gRPC, un sistema di storage, ecc. Quando due nodi comunicano tra loro, uno o entrambi possono essere Enclave Application. Per ogni interazione tra due nodi, li indichiamo come "initiator" e "responder". Evitiamo i termini "client" e "server" per questi ruoli, perché in alcuni casi il nodo "initiator" potrebbe in realtà essere in esecuzione su un "server" - tutte le combinazioni sono possibili.

Un'Enclave Application in un sistema distribuito Oak può attestarsi da remoto verso altri nodi: ciò consiste nel fornire prove della propria identità software e hardware, vincolate a chiavi crittografiche locali (memorizzate in hardware a prova di manomissione, che garantisce che le chiavi non possano essere esfiltrate o copiate), firmate in ultima istanza da una o più root of trust software o hardware disponibili sull'host di quel nodo. L'identità software di un'Enclave Application consiste in misurazioni (ovvero digest / hash) dei binari eseguibili che contribuiscono ad essa, nonché in dati aggiuntivi (ad es. configurazione).

Root of Trust

Oak si concentra sui Trusted Execution Environments (TEE) basati su VM (ad es. AMD SEV-SNP, Intel TDX) come root of trust hardware per le Enclave Application. Ciò consente a un'Enclave Application di fornire un report di attestazione remota firmato da chiavi vincolate all'hardware nel TEE, che non sono accessibili al provider del servizio. Queste chiavi sono in ultima istanza radicate nel produttore del TEE (ad es. AMD, Intel); ciò riduce (idealmente, elimina) la necessità di fidarsi del provider del servizio di quel nodo per validare le sue prove, distribuendo la fiducia tra più attori non collusi.

Comunicazione cifrata

All'avvio, ogni Enclave Application genera una coppia di chiavi locale e vincola la chiave pubblica alle proprie prove. Quando un nodo intende comunicare con un'Enclave Application (come initiator o responder), viene stabilito un canale cifrato end-to-end tra i due nodi. Nell'ambito della creazione del canale, ciascun nodo fornisce anche le proprie prove (se presenti) all'altro nodo e può utilizzare le prove fornite dall'altro nodo per stabilirne l'affidabilità, prima di decidere se scambiare dati con esso.

Questo canale cifrato e attestato fornisce:

  • Riservatezza: ciascun nodo sa che i dati inviati su di esso possono essere letti solo dall'altro nodo
  • Integrità: ciascun nodo sa che i dati ricevuti su di esso devono essere stati scritti dall'altro nodo
  • Autenticità: ciascun nodo conosce l'identità del binario in qualsiasi nodo attestato che elabora i dati che invia sul canale.

Architettura split

Al fine di minimizzare la superficie di attacco e la Trusted Computing Base (TCB) di un'Enclave Application, Oak incoraggia un'architettura split:

  • Enclave Application: un binario compilato (in modo riproducibile) da codice open source, in esecuzione all'interno del TEE. L'Enclave Application ha accesso alle chiavi di decifratura legate alle prove di attestazione; decifra le richieste in arrivo dagli altri nodi, le elabora, cifra le risposte e le invia di nuovo attraverso il canale di comunicazione. Questo è il binario associato alle dichiarazioni verificabili esternamente. Nessun altro binario ha accesso alle richieste in arrivo in chiaro.

  • Host Application: un binario che viene eseguito nell'ambiente del server host (non attendibile) e che funge da front-end per l'Enclave Application; espone un endpoint gRPC raggiungibile dall'esterno da altri nodi. Questo binario gestisce sempre e solo dati cifrati; il suo compito principale è creare e mantenere un'istanza dell'Enclave Application nel TEE e inoltrare i dati cifrati da e verso l'Enclave Application. Può anche contenere logica proprietaria necessaria per interagire con il control plane o con altri sistemi interni necessari per l'esecuzione sull'infrastruttura del fornitore di servizi.

Questa architettura implica che il fornitore di servizi non sarebbe in grado di sostituire il binario dell'Enclave Application con uno diverso (potenzialmente malevolo) senza essere rilevato. Se il fornitore di servizi introducesse una backdoor nell'Enclave Application, dovrebbe firmare il binario e pubblicarlo in un log verificabile tramite il processo Transparent Release, il che renderebbe la backdoor irreversibilmente visibile agli osservatori esterni.

Sealed Computing

Un uso canonico di Oak è la creazione di applicazioni di sealed computing che preservano la privacy.

In un'applicazione di sealed computing, un nodo (di solito un dispositivo client) invia dati a un'enclave application (di solito un server), che elabora i dati senza che il fornitore di servizi che ospita l'enclave application possa vedere gli input, gli output o gli effetti collaterali del calcolo.

Quello che segue è un diagramma architetturale semplificato.

architectural_overview

Sistema operativo

Oak supporta due varianti di sistemi operativi all'interno del TEE, su cui possono essere distribuite le Enclave Applications:

  • Oak Restricted Kernel: un microkernel personalizzato estremamente minimale, scritto appositamente, che supporta solo una singola CPU e una singola applicazione. Impone restrizioni molto severe su ciò che l'applicazione può fare, esponendo all'applicazione solo un insieme molto limitato di syscall. Le applicazioni Oak Restricted Kernel sono adatte ai casi in cui la revisione dell'intera base di codice attendibile all'interno del TEE è fondamentale e le funzionalità limitate e le prestazioni ridotte rappresentano un compromesso accettabile. Idealmente, un singolo esperto umano dovrebbe essere in grado di revisionare il codice dell'Oak Restricted Kernel nella sua interezza in un paio di settimane.
Scarica lo strumento