2009-10-22 18 views
16

En la configuración del proyecto de estudio visual, puede elegir un archivo de clave de nombre seguro para firmar el ensamblaje. Al crear uno nuevo, puede elegir protegerlo con una contraseña. ¿Cuándo deberías hacer esto? ¿Y cuándo no?¿Cuándo debe proteger un archivo de clave de nombre seguro con una contraseña?

Estoy pensando que, por ejemplo, no sería tan inteligente protegerlo con una contraseña si el proyecto es de código abierto alojado en Codeplex o similar. ¿O debería estar aún protegido? ¿Las personas no podrán descargar la fuente y compilarla si el archivo de clave está protegido? O, ¿cómo funciona esto exactamente?

Respuesta

12

En general, debe protegerlo con una contraseña si no confía en las personas que tienen acceso a ella. Cualquiera que tenga acceso al archivo de clave puede crear un ensamblado con su nombre fuerte (a diferencia del authenticode, no lo están imitando, pero pueden cargar sus ensamblajes en lugar del suyo)

En cuanto al escenario de código abierto que describió , las personas siempre pueden compilar el código; simplemente crean un nuevo archivo de clave, pero los ensamblados que crean no serán cargados por ensamblajes que intenten cargar sus ensamblajes.

+2

Ooh. Entonces, si tengo dos ensambles que están firmados con claves de nombre seguro. Si luego agrego una referencia de uno a otro, solo funcionará con el que se firmó con la clave correcta. – Svish

+2

Si hace referencia a un ensamblado de nombre seguro, no puede reemplazarse en tiempo de ejecución con un ensamblado firmado con una clave diferente (no del todo correcto, pero dejemos las cosas más avanzadas por ahora) –

+0

Y por * en tiempo de ejecución * te refieres a cuando se ejecuta la aplicación, no mientras se está ejecutando, ¿verdad? (Solo para asegurarme de que no entiendo mal: p) – Svish

Cuestiones relacionadas