Ho diversi processi in esecuzione su un sistema che interagiscono tra loro tramite TCP (ad esempio con il protocollo di messaggistica asincrona di twisted).
process1 <=====> broker <=====> process2
C'è un'istanza del server (broker) in esecuzione su un host Linux, che ascolta un socket TCP localhost: port . Esistono anche altri processi, in esecuzione sullo stesso host, che interrogano l'istanza del broker utilizzando il socket tramite TCP (fornito da twisted). Il broker ha accesso a un modulo di sicurezza hardware (HSM).
Attualmente sto pensando agli aspetti di sicurezza di questo design. Sarebbe possibile per un intercettatore, che ha accesso fisico diretto all'host, ascoltare il traffico TCP tra i client e il broker su questo host? Poiché a volte vengono trasferiti dati sensibili, voglio proteggere la comunicazione tra i processi e il broker sull'host.
Come si può fare? C'è sempre il problema di memorizzare un segreto privato. Per il broker non è un problema perché ha accesso a HSM, ma per i processi client che interagiscono con il broker. È difficile nascondere un segreto per un utente malintenzionato che ha accesso fisico all'host. Come si può realizzare l'autenticazione / crittografia tra processi e broker?
Spero tu capisca il mio problema e mi possa aiutare!
MODIFICA: SSL / TLS non sarebbe un buon approccio, poiché comporta un sovraccarico elevato e esiste anche il problema dell'archiviazione sicura per i segreti privati.