
De forma predeterminada, Subversion permite a los usuarios guardar su contraseña en texto sin formato en formato ~/.subversion/auth/svn.simple
. Estoy investigando opciones paraalmacenar contraseñas cifradas en svn, pero al menos y lo antes posible, quiero desactivar por completo la capacidad de almacenar contraseñas para todos nuestros usuarios. Estamos ejecutando Subversion 1.6.17.
Puedo desactivar esto dentro del directorio de inicio de un usuario a través del archivo de configuración.
~/.subversion/servidores:
[global]
# Password / passphrase caching parameters:
store-passwords = no
store-plaintext-passwords = no
Sin embargo, el usuario podría cambiar el archivo de configuración si así lo desea. ¿No hay un archivo de configuración svn para todo el sistema? Algunas opciones que he visto:
Opción 1
En 1.8-dev, el script de configuración de Subversion acepta una opción --disable-plaintext-password-storage para omitir la lógica que almacena contraseñas de texto plano y frases de contraseña de certificados de cliente.
Prefiero no actualizar a una versión de desarrollo.
opcion 2
/etc/subversion/config
AFAIK, este archivo de configuración solo se usa cuando un usuario no tiene un archivo de configuración en su directorio de inicio.
Opción 3
Agregue un trabajo cron para eliminar el caché de autenticación del usuario en ~/.subversion/auth/svn.simple
. Entonces, incluso si modifican su archivo de configuración svn, nuestro trabajo cron eliminaría cualquier contraseña almacenada. Sin embargo, incluso ejecutarlo cada minuto no garantiza que nuestro sistema de respaldo no capture los archivos que contienen contraseñas en texto sin formato.
¿Ideas?
Respuesta1
No puedes.
Hagas lo que hagas, tus usuarios pueden omitirlo y almacenar su contraseña en un archivo de texto sin formato de todos modos. Si desactiva la función en el binario del cliente, descargarán o compilarán un cliente diferente. Como regla general, si configura medidas de seguridad desagradables (como tener que escribir una contraseña para cada operación svn), sus usuarios las eludirán de una manera que empeorará la seguridad. (Por ejemplo, escribir un script contenedor que contenga su contraseña. Que dejarán legible en todo el mundo). Así que no hagas eso.
Para reiterar: no se puede, únicamente con medidas técnicas, impedir que los usuarios almacenen su contraseña en un archivo. Puedes prohibirlo, pero si les dificulta la vida, lo harán de todos modos.
Si le preocupa el robo de una computadora portátil o una copia de seguridad, cifre el directorio de inicio de los usuarios. Esto protegerá tanto las contraseñas como los datos. Si todo el directorio de inicio está cifrado, la contraseña de cifrado suele ser la misma que la contraseña de inicio de sesión, por razones de usabilidad. Asegúrese de tener una política de respaldo de contraseñas (por ejemplo, un sobre sellado), ya que perder una contraseña cifrada es irrecuperable.
Si le preocupa la reutilización de contraseñas, imponga una contraseña aleatoria (por lo tanto, única), que escribirán de una vez por todas en su cliente. Por supuesto, tenga un proceso sencillo para cambiar las contraseñas comprometidas.
Respuesta2
Por cierto, incluso antes de cifrar algo, me ocuparía de los permisos de los archivos: simplemente revisé mi propia configuración por curiosidad y descubrí que esto es legible en todo el mundo. Para un archivo que contiene una contraseña clara, me parece un agujero de seguridad.