Esta es una pregunta un tanto amplia y en realidad es más un problema arquitectónico y filosófico. Buscar un producto en particular a menudo es una mala idea en este sitio, por lo que ofreceré algunos consejos.
¿Cómo se define "nadie más"? ¿Código en la aplicación, otras aplicaciones en la máquina virtual, aplicaciones en otras máquinas virtuales, atacantes que atacan su sitio web, aplicaciones en el host de la máquina virtual, administradores de centros de datos, etc.? Esto abarcará el diseño del sistema.
Ya que estamos hablando de claves, el diseño corto y simple es mover el acceso y el uso de la clave fuera del ámbito de los que la atacan (respuesta útil, ¿verdad?).
Moviéndose hacia afuera:
- Codificado en los binarios de la aplicación (cualquier persona que lea sobre los binarios puede obtener las claves)
- Almacenado en un archivo de configuración en el disco (cualquier persona que lea sobre la configuración puede obtener las claves)
- Almacenado localmente en el almacén de certificados de Windows (solo los administradores locales pueden obtener las claves)
- Almacenado en un almacén de certificados en otra máquina con servicios remotos para acceder (solo los administradores locales en la máquina remota pueden obtener las claves)
- En un módulo de seguridad respaldado por hardware (HSM) (nadie puede obtener las claves)
En cada paso, introduce límites y dificulta el acceso a las teclas. Esos límites existen como servicios autenticados de algún tipo. En general, entregas el trabajo a estos servicios y ellos tocan las teclas, de esa manera tu aplicación no.
La compensación es la complejidad y la capacidad de administración para lograr un nivel de seguridad efectivo.