2009-05-08 14 views

Respuesta

11

nombre de Fuerte firma tiene varios propósitos (aunque no para la protección efectiva contra la manipulación con el programa, ya que es error común) - en su caso, el uso de una clave fuerte para identificar de manera única (y verificar) una versión específica de una asamblea específica, que es requerida por el GAC. El otro uso, que impide la falsificación por parte de otros ensamblajes, no parece necesario en este caso (corríjanme si me equivoco). Por esta razón, creo que es perfectamente aceptable dejar la llave abierta (no protegida con contraseña) e incluir el archivo en control de fuente. Por lo que puedo ver, no vas a detener nada que no quieras con una contraseña que proteja la clave. (Sin embargo, si pudiera proporcionar más detalles sobre el contexto de seguridad, podría tener que revisar esa vista.)

También, vea this MSDN article para una gran discusión detallada sobre cómo usar correctamente la firma de nombres fuertes en general.

+1

¿Podría profundizar en ese concepto erróneo sobre la protección contra la manipulación de un conjunto? Esto no me parece correcto (ver http://stackoverflow.com/questions/369248/can-strong-naming-an-assembly-be-used-to-verify-the-assembly-author/369477#369477), pero tal vez me estoy perdiendo algo? Sin embargo, con un nombre fuerte solo obviamente no es posible verificar la autoridad (que necesitaría un mecanismo de certificado como Authenticode). –

+0

@divo: ¿Qué es incorrecto, exactamente? El problema con la firma segura de claves es que no puede verificar el origen de la clave pública, de modo que puede ser regenerada por otro autor y aún así estar de acuerdo con la autoridad (que luego puede ser alterada). Si piensas que la respuesta vinculada no concuerda con la mía (confío en que no), entonces intenta releerla cuidadosamente (junto con la respuesta de Mehrdad, que también es buena). Aquí hay algunas sutilezas que de ninguna manera son fáciles de entender. – Noldorin

2

Yo diría que incluye una clave de 'desarrollo' en el control de la fuente, para facilitar la construcción y evitar forzar a las personas a manipular la creación y el uso de su propia clave. La clave en el control de la fuente no tiene sentido desde el punto de vista de la seguridad, ya que cualquiera puede firmar con ella. Si las personas quieren firmar su compilación de su proyecto de código abierto, pueden sustituir su clave, que pueden administrar de la manera que quieran.

También podría proporcionar compilaciones para descarga, firmadas con una clave segura (que no se le da a nadie), pero para que la gente quiera usar estos binarios necesitarían confiar en usted. ¿Eres digno de confianza? :)

Cuestiones relacionadas