Supongo que está trabajando en .Net o quizás en un nivel inferior como C ++. De haber consumido recientemente esas API aquí es lo que recomendaría.
Hay 2 proveedores de configuración protegida disponibles, DPAPI (más apropiado para aplicaciones de escritorio del lado del cliente) y Proveedor RSA . Este último es más apropiado para cifrar web.configs ya que esta es una configuración de clave pública donde solo el servicio ASP.NET tiene la clave privada para descifrar los datos, esto puede incluirse tanto en el usuario como en la máquina, similar a DPAPI.
Aquí es un tutorial antiguo pero de sonido en ASP.Net. Disculpas si no está utilizando .Net, no estaba claro. Aun así, creo que el proveedor de RSA es la forma correcta de ir aquí.
Con respecto a la ruptura del cifrado DPAPI, sí, la mayoría de los ataques deberían organizarse en la máquina de destino, por lo general implicando un intento de contraseña de archivos SAM o secuencias de comandos de restablecimiento de contraseña dirigidas a administradores de sistemas. Documento de conferencia relacionado: interrumpir la conexión fuera de línea de DPAPI: BlackHat 2010 .