Simple Signing System (S3)
Gestione dei Certificati X.509 e Firma Digitale
Home > Architettura > Server S3Log di Log Sicuro Firmato
Server S3LogL+S3LogS che permette di raccogliere messaggi di log generati da programmi applicativi distribuiti sulla rete, e di proteggerli in modo altamente sicuro, con tecniche di firma digitale (ovvero firmarli digitalmente con le credenziali di firma di un operatore certificato) prima di registrarli su un file centrale di log. Il server opera con una tecnica Stealth-RAM (ISAAC-Driven Continuous Camellia-Key Auto-Refresh) per proteggere le credenziali di firma dell'operatore certificato.
S3Log è un prodotto software della suite Simple Signing System (S3) orientatato a gestire la protezione con tecniche di firma digitale di stream di informazioni, ovvero di sequenze di file di log o di file grafici e/o sonori, in modalità non presidiata, garantendo la non modificabilità delle informazioni registrate. Lo scenario tipico di S3Log prevede:
Il processo S3LogS mantiene, durante la sua vita attiva, le credenziali di firma dell'operatore in un'area di memoria protetta da uno schema proprietario (MutingBox), in base al quale il contenuto protetto varia con continuità la sua forma senza perdere le proprie informazioni. Questo approccio permette di garantire la validità della firma digitale apposta con continuità dal Server S3LogS ai file dello Stream Target senza la necessità di un continuo presidio dell'operatore.
S3LogS può limitare la propria azione alla generazione di file firmati in formato PKCS7, o estendere il processo di firma alla apposizione di una marca temporale auto-certificata, generando file SMIME contenenti sia i file PKCS7 firmati che la marca temporale di tali file.
A tal scopo è necessario che sul sistema su cui il Server S3LogS opera sia attivo un processo di mantenimento della data/ora di sistema in base al protocollo NTP, e che tale processo sia costantemente attivo e connesso tramite la rete Internet ai propri nodi NTP di primo livello (stratum-1) per garantire l'allineamento della data/ora di sistema.
Per ogni Stream Target da firmare viene attivato un processo S3LogS dedicato (e il relativo processo S3LogL), che risponde al proprio Client S3Log su una porta TCP riservata. Su un sistema possono operare più coppie S3LogS/S3LogL per la firma di differenti Stream Target: ogni server utilizza una porta TCP riservata per ricevere i comandi client, e una porta TCP riservata per ricevere i dati da accumulare nel file di log.
La comunicazione tra Client S3Log e Server S3Log viene effettuata mediante una connessione SSL/TCP, con l'adozione di appositi certficati di navigazione. Su questa connessione certificata il Client S3Log trasmette al Server S3Log, in fase di attivazione, le credenziali di firma in formato PKCS12, opportunamente protette da una frase di passo che viene trasmessa in formato protetto. La frase di passo viene riassegnata automaticamente dal Server S3Log. Le credenziali dell'operatore e la relativa frase di passo sono mantenute dal Server S3LogS nell'area di memoria mutante (MutantBox).
L'architettura S3Log è illustrata nella figura seguente.

Il servizio S3Log è implementato con il supporto di due processi:
I due processi operano con il supporto di due file:
I log sono raccolti in un file di log (LogFile) come sequenze di messaggi (testata + dati), inizialmente non ancora firmati. Periodicamente il servizio S3Log provvede a firmare l'ultima sequenza raccolta. Di conseguenza il LogFile è un insieme ordinato temporalmente di sequenze firmate ed eventualmente di una sequenza (l'ultima) non ancora firmata. Ogni sequenza è costituita da un insieme variabile di messaggi, in cui ogni messaggio viene marcato con l'Hash del messaggio precedente della sequenza (ad esclusione del primo che mantiene l'Hash della propria area dati).
La figura seguente illustra lo schema del servizio S3Log. Il processo S3LogS viene armato per la firma da un operatore, che trasmette su un canale sicuro (SSL) il certificato e la chiave segreta di firma, che sono poi mantenuti in una meroria interna protetta (stealth memory di tipo MutantBox).

Quando viene armato il processo S3LogS crea il processo S3LogL, il quale opera su una porta TCP dedicata. I processi applicativi comunicano i messaggi di log al processo S3LogL, che li accumula nel LogFile nell'ultima sequenza non firmata (Building Sequence). Il processo S3LogS si attiva periodicamente, e firma l'ultimo messaggio della Building Sequence trasformandola in una Signed Sequence.
La validità del meccanismo di firma su una Signed Sequence è dato dalla catena di Hash che ogni messaggio mantiene relativamente al messaggio precedente (ad eccezione del primo che mantiene l'Hash della propria area dati). La firma viene apposta sull'ultimo messaggio della sequenza. La figura seguente illustra il meccanismo di raccolta dei messaggi nella Building Sequence e l'azione di firma di quest'ultima che viene così trasformata in una Signed Sequence.

Simple Signing System è un prodotto software di
Clizio Merli Consulente