2009-08-25 8 views
5

Me gustaría conocer algunas de las mejores prácticas con respecto a la firma de código. Tenemos una aplicación basada en Eclipse y consideramos que sería apropiado firmar nuestros complementos. Esto planteó muchas preguntas:Código de firma como parte del proceso de compilación

  • CAN/En caso de que la clave privada sea en control de código fuente?

  • ¿Deberíamos firmar el código como parte de nuestro proceso de creación nocturno o como parte de nuestro proceso de lanzamiento?

  • ¿Debe el código estar firmado automáticamente, o hay un motivo por qué eso debería ser un paso manual?

Mi inclinación es decir, "Sí", "noche", y "automáticamente", pero pude ver un argumento para firmar solamente los productos de liberación. Incluso podría argumentar que SQA debería firmar el código después de haberlo verificado, aunque eso realmente interferiría con nuestro proceso de lanzamiento.

¿Cómo lo gestionan otras personas?

Respuesta

7

Depende de qué tan seguro desee que sea su clave privada, puede que no sea algo a lo que desee que tenga acceso pleno un empleado temporal con acceso a la fuente.

En mi trabajo, hacemos lo siguiente:

binarios "señal de prueba" como parte de nuestro diario construye con un facturado clave. Esto requiere un certificado raíz de prueba en las máquinas para confiar en los binarios, pero no serán confiables si los bits se implementan fuera de la empresa.

Semanalmente (y para versiones externas), firmamos con la clave real. Esto se hace a través de un proceso separado, algo manual. Solo unas pocas personas tienen acceso a la clave para firmar el producto.

3

Puedo decirte cómo he visto esto en un gran cuerpo. Los desarrolladores individuales podían construir el código, pero no podían firmarlo. Eso sería una construcción privada. La máquina de integración de Contiguos descartaría las compilaciones nocturnas firmadas con una clave almacenada en el almacén de claves de la máquina de compilación, que sería una clave de prueba firmada por una autoridad de certificación corporativa (es decir, una clave de confianza solo dentro del corp). La compilación oficial solo podría estar firmada por máquinas controladas con la firma oficial de confianza mundial firmada, clave de firma almacenada en módulos de hardware en la sala de acceso controlado.

La idea es que una clave privada realmente debería tener una sola copia en el mundo (como máximo, una extra para el depósito en garantía). El valor total de la clave se deriva de su privacidad, no de otra cosa. El momento está disponible para toda tu organización, es tan bueno como ponerlo en la bahía pirata.

Cuestiones relacionadas