.net visual-studio

.net - ¿Dónde se almacena la contraseña de clave de nombre seguro?



visual-studio (1)

Normalmente no me molesto en firmar mis ensamblajes .NET, así que no sé mucho más allá de la mecánica básica de esto. Para un proyecto pequeño en el que estoy trabajando, era necesario firmar, y creé una nueva clave, protegida con una contraseña.

Esperaba que me pidieran esta contraseña en algún momento al volver a compilar el ensamblaje, pero nunca tuve que ingresarla en ningún lugar después de crear el archivo de clave. Esto parece anular el propósito de la contraseña que protege la clave en primer lugar.

Me imagino que la contraseña está en caché en algún lugar, pero ¿dónde? ¿Está en algún tipo de almacenamiento privado? Si le doy a alguien más mi directorio de soluciones completo con el archivo de clave, ¿se me pedirá la contraseña que ingresé o podrá firmar el ensamblaje sin la contraseña?

Hay muchos artículos en Internet sobre claves de nombre seguro y cómo usarlos, pero por alguna extraña razón, todos ellos pasan por alto cómo Visual Studio utiliza realmente la contraseña.

Actualización: el reinicio de Visual Studio (y Windows) no tiene efecto, por lo que el almacenamiento en caché parece ser persistente. Eliminar el archivo .suo no cambia el hecho de que no se necesita una contraseña para firmar el ensamblaje.


Consulte la documentación del cuadro de diálogo Crear clave de nombre seguro .

La información de la contraseña se almacena en la base de datos de almacenamiento criptográfico de su computadora.

Otra información de CLR Inside Out: Uso de firmas de nombres fuertes .

Puede instalar la clave privada en un contenedor de claves utilizando listas de control de acceso restrictivo (ACL) para evitar el acceso no autorizado al contenedor de claves. Alternativamente, puede almacenar la clave privada en una tarjeta inteligente u otro dispositivo de hardware separado. La herramienta sn.exe le permite usar un proveedor de servicios criptográficos (CSP) diferente para la firma. Eche un vistazo a la opción –c en la documentación de sn.exe.