Scenario : Ho un'applicazione A che contiene dati sensibili. Ho un'applicazione B che deve elaborare i dati. A fornirà un'interfaccia web. B invierà chiamate per ottenere i dati richiesti da A.
Requisiti : Vorrei proteggere il sistema in modo tale che A trasferisca i dati solo a istanze reali di B. Per quanto possibile, vorrei impedire a qualsiasi essere umano di effettuare una chiamata ad A, fingendo di essere B
Soluzioni considerate : Questa domanda è stata più vicina alle mie esigenze: Come rendere le comunicazioni sicure tra i server Tuttavia, ciò comporta la memorizzazione di alcune informazioni sul client (segreto condiviso, certificato, chiave pubblica / privata), sia codificate che salvate da qualche parte sul server. Sebbene ciò impedisca alle parti esterne di attaccare il sistema, gli amministratori o gli sviluppatori per il servizio B avranno accesso a questi "segreti" e saranno in grado di simulare una chiamata da B.
Domanda : È possibile implementare uno schema di autenticazione dell'applicazione che nemmeno gli sviluppatori / gli amministratori possono falsificare? Sono aperto a soluzioni che implicano controlli procedurali, separazione delle responsabilità e altre tecniche in combinazione con controlli software / crittografici