Si tienes un HSM , entonces el pimiento debería estar en ese HSM, porque ese es el objetivo de tener un HSM .
De lo contrario, el pimiento es una clave que debe manejarse como tal. Tener una clave implica la gestión de claves; no debe (y, en realidad, no debe) estar codificado en la fuente. El código fuente se copia en varios lugares: máquina del desarrollador, sistemas de versiones, muchas copias de seguridad ... La clave es realmente una propiedad del servidor instancia (servidor único o conjunto de servidores que utilizan el mismo conjunto de servidores). usuarios registrados) mientras que la fuente se comparte, conceptualmente, entre muchas instancias de servidor.
En Windows, la DPAPI es lo que hará más felices a los auditores, aunque se puede decir que la protección adicional ofrecida por DPAPI no es, de hecho, tan grande. Si reinicia su servidor, se inicia automáticamente; esto significa que, independientemente de dónde coloque el pimiento, el almacenamiento en frío del servidor (contenido del disco duro) es suficiente para recuperar el pimiento. El pimiento tiene la intención de resistir los accesos de lectura de parcial por parte de los atacantes (razón por la cual no lo coloca en la base de datos), pero si el atacante puede leer el registro, entonces tiene mucho control sobre el máquina y probablemente tampoco se verá obstaculizada por DPAPI. Si usa el registro, ajuste los derechos de acceso en esa clave específica para que solo los usuarios relevantes puedan leerlo (normalmente, la cuenta de usuario con la que se ejecuta el servidor).
El uso de un archivo conlleva el riesgo de acceso de lectura a través de un script PHP mal desarrollado que termina volcando el contenido de los nombres de archivos elegidos por el atacante.
En Linux no hay registro ni DPAPI, así que use un archivo de configuración. Se podría tratar de ejecutar el procesamiento de pimienta en un proceso distinto al que se accede a través de algún mecanismo de comunicación entre procesos (por ejemplo, sockets de nivel Unix), y ejecutar el código del servidor real en un chroot .
En todos los casos, usar un pimiento tiene sus propios costos: usted tiene una clave que administrar, es decir, generar de forma segura y mantenerse seguro. Si pierde esa clave, perderá la capacidad de verificar las contraseñas de los usuarios, lo que puede ser muy inconveniente. En ese sentido, la pimienta es más crítica que la clave privada del servidor para su certificado SSL.