Dada una clave de nombre fuerte (archivo snk). ¿Hay algún problema de seguridad al agregar este archivo al control de código fuente para un proyecto de código abierto?¿Algún problema de seguridad al agregar una clave de nombre fuerte al control de código fuente para un proyecto de código abierto?
Respuesta
La respuesta simple es sí y no, para empezar, depende del propósito para el que usted es fuerte al firmar sus ensamblajes.
La página de MSDN en Strong-Name Signing resume los dos propósitos bastante bien.
Strong-naming le otorga a una aplicación o componente una identidad única que otro software puede usar para referirse explícitamente a ella. Por ejemplo, strong-naming permite a los autores y administradores de la aplicación especificar una versión de servicio precisa que se utilizará para un componente compartido. Esto permite que diferentes aplicaciones especifiquen diferentes versiones sin afectar otras aplicaciones. Además, puede usar el nombre fuerte de un componente como evidencia de seguridad para establecer una relación de confianza entre dos componentes.
Cualquier biblioteca distribuida públicamente (DLL) debe tener un nombre seguro firmado, siempre que esté destinado a ser consumido por el usuario final. (es decir, a menos que sea un detalle de implementación o similar)
El propósito principal de la firma que he visto suele ser por razones más técnicas, incluida una identificación única (los espacios de nombres a veces pueden chocar inadvertidamente) y hacer un ensamblado disponible para el GAC. En tales casos, hacer que el archivo de clave esté a disposición del público no tiene implicaciones de seguridad, ya que en principio no se pretendía. No se proporcionan garantías de confianza/origen, pero la identificación única sigue siendo válida. La página de MSDN trata principalmente este escenario; los tiempos cuando debería y no debe firmar una asamblea; y los detalles circundantes.
Sin embargo, si está firmando un ensamblaje por autenticación, específicamente para garantizar al consumidor que el ensamblaje proviene de la fuente solicitada, una clave exotérica (distribuida públicamente) invalida por completo este modelo de confianza. Es decir, cualquiera puede ir modificando el código de su proyecto arbitrariamente, y reconstruir y renunciar a sus ensamblajes de manera correcta, esencialmente falsificando su identidad. La página de MSDN no aborda este uso por desgracia (probablemente porque debe considerarse más ampliamente como parte de una estrategia de seguridad), pero es importante, no obstante.
Finalmente, tenga en cuenta que hay dos tipos de archivos de certificados de claves que el CLR/.NET usa para firmar ensamblajes. El primero es un SNK, como usted menciona; esto no está protegido con contraseña. El segundo es PFX, que en realidad es solo una versión protegida por contraseña de un archivo de clave SNK. Siempre que esta contraseña sea lo suficientemente segura, existe por lo tanto sin problemas de seguridad en la distribución de un PFX asegurado con su software de código abierto. Visual Studio (y la utilidad de generación de la clave de línea de comandos) son, por supuesto, capaces de crear ambos.
- 1. Opción "Agregar al control de código fuente" al crear un nuevo proyecto C# en VS 2010
- 2. Primeros "Error al crear el mapeo" al agregar una solución al control de código fuente TFS
- 3. Xcode: Agregar WorkspaceSettings.xcsettings al control de código fuente
- 4. ¿Debo agregar archivos .vcxproj.filter al control de código fuente?
- 5. ¿Qué pasa si algún código fuente de un proyecto de rieles debe oscurecerse incluso para un proyecto de código abierto?
- 6. ¿Debo proteger mi archivo de clave de nombre seguro para un proyecto de código abierto?
- 7. ¿Qué pensar al hacer un proyecto de código abierto?
- 8. Agregar imágenes al código fuente
- 9. Vinculaciones de asociación de control de código fuente Problema
- 10. ¿Qué archivos deberían pasar al control de código fuente en un proyecto de Flex Builder?
- 11. ¿Hay algún proyecto de ejemplo de código abierto JEE5 EJB3 + JSF de fuente abierta?
- 12. ¿Cómo financiar un proyecto de código abierto?
- 13. ¿Debo agregar .vs10x al control de fuente?
- 14. Control de código fuente para proyectos web
- 15. ¿Hay algún motor AI de código abierto?
- 16. ¿Hay algún virus de código abierto?
- 17. servidor proxy de código abierto C# - ¿algún proyecto/ejemplo?
- 18. certificado SSL Almacenamiento de control de código fuente
- 19. Definición de compilación de TFS: ¿Puedes agregar esto al control de código fuente?
- 20. Compilación de un AST de nuevo al código fuente
- 21. Agregar números de línea al código fuente en vim
- 22. ¿Cómo transfieres un proyecto de código abierto?
- 23. Incluir la clave de la API de Google Maps en un proyecto de código abierto
- 24. ¿Cómo elegir un proyecto de código abierto para unirse?
- 25. Buen código fuente abierto para C++
- 26. fuente libre/abierto editor de código de control de interfaz de usuario para .Net
- 27. Despliegue de Matlab: agregar archivos al control de fuente?
- 28. Código de bytes al código fuente de Java
- 29. Alojando un proyecto de código abierto en varios sitios
- 30. Agregar descripciones de clase al código?
Es posible que también desee ver esta respuesta y extrapolar de forma adecuada para los archivos de clave PFX. –
Noldorin
Y 'sn.exe' es la utilidad de creación/manipulación de nombres fuertes que desea si se ejecuta desde la línea de comandos. Proporciona algunas características justas, la mayoría de las cuales probablemente nunca necesitará. http://msdn.microsoft.com/en-us/library/k5b5tt23%28v=vs.100%29.aspx – Noldorin